@@ -95,6 +95,15 @@ public async Task CreateTable()
9595 DefaultValueSql = "'x'" ,
9696 IsNullable = true ,
9797 } ,
98+ new AddColumnOperation
99+ {
100+ Name = "COLLA" ,
101+ Table = "People" ,
102+ ClrType = typeof ( string ) ,
103+ MaxLength = 20 ,
104+ IsNullable = true ,
105+ Collation = "UNICODE_CI_AI"
106+ } ,
98107 } ,
99108 PrimaryKey = new AddPrimaryKeyOperation
100109 {
@@ -125,6 +134,7 @@ public async Task CreateTable()
125134 ""SSN"" char(11),
126135 ""DEF_O"" VARCHAR(20) DEFAULT _UTF8'test',
127136 ""DEF_S"" VARCHAR(20) DEFAULT 'x',
137+ ""COLLA"" VARCHAR(20) COLLATE UNICODE_CI_AI,
128138 PRIMARY KEY (""Id""),
129139 UNIQUE (""SSN""),
130140 FOREIGN KEY (""EmployerId"") REFERENCES ""Companies"" (""Id"") ON UPDATE NO ACTION ON DELETE NO ACTION
@@ -201,6 +211,15 @@ public async Task CreateTableScript()
201211 DefaultValueSql = "'x'" ,
202212 IsNullable = true ,
203213 } ,
214+ new AddColumnOperation
215+ {
216+ Name = "COLLA" ,
217+ Table = "People" ,
218+ ClrType = typeof ( string ) ,
219+ MaxLength = 20 ,
220+ IsNullable = true ,
221+ Collation = "UNICODE_CI_AI"
222+ } ,
204223 } ,
205224 PrimaryKey = new AddPrimaryKeyOperation
206225 {
@@ -231,6 +250,7 @@ public async Task CreateTableScript()
231250 ""SSN"" char(11),
232251 ""DEF_O"" VARCHAR(20) DEFAULT _UTF8'test',
233252 ""DEF_S"" VARCHAR(20) DEFAULT 'x',
253+ ""COLLA"" VARCHAR(20) COLLATE UNICODE_CI_AI,
234254 PRIMARY KEY (""Id""),
235255 UNIQUE (""SSN""),
236256 FOREIGN KEY (""EmployerId"") REFERENCES ""Companies"" (""Id"") ON UPDATE NO ACTION ON DELETE NO ACTION
@@ -272,6 +292,23 @@ public async Task AddColumn()
272292 Assert . AreEqual ( NewLineEnd ( @"ALTER TABLE ""schema"".""People"" ADD ""NewColumn"" DECIMAL(18,2) NOT NULL;" ) , batch [ 0 ] . CommandText ) ;
273293 }
274294
295+ [ Test ]
296+ public async Task AddColumnWithCollation ( )
297+ {
298+ var operation = new AddColumnOperation ( )
299+ {
300+ Table = "People" ,
301+ Name = "NewColumn" ,
302+ ClrType = typeof ( string ) ,
303+ MaxLength = 10 ,
304+ IsNullable = false ,
305+ Collation = "UNICODE_CI_AI" ,
306+ } ;
307+ var batch = await Generate ( new [ ] { operation } ) ;
308+ Assert . AreEqual ( 1 , batch . Count ( ) ) ;
309+ Assert . AreEqual ( NewLineEnd ( @"ALTER TABLE ""People"" ADD ""NewColumn"" VARCHAR(10) COLLATE UNICODE_CI_AI NOT NULL;" ) , batch [ 0 ] . CommandText ) ;
310+ }
311+
275312 [ Test ]
276313 public async Task DropColumn ( )
277314 {
@@ -456,6 +493,29 @@ public async Task AlterColumnRemoveSequenceTrigger()
456493 Assert . AreEqual ( NewLineEnd ( @"ALTER TABLE ""People"" ALTER COLUMN ""Col"" TYPE INTEGER;" ) , batch [ 2 ] . CommandText ) ;
457494 }
458495
496+ [ Test ]
497+ public async Task AlterColumnCollation ( )
498+ {
499+ var operation = new AlterColumnOperation ( )
500+ {
501+ Table = "People" ,
502+ Name = "Col" ,
503+ ClrType = typeof ( string ) ,
504+ MaxLength = 10 ,
505+ IsNullable = false ,
506+ Collation = "UNICODE_CI_AI" ,
507+ OldColumn = new AddColumnOperation ( )
508+ {
509+ ClrType = typeof ( string ) ,
510+ MaxLength = 10 ,
511+ IsNullable = false ,
512+ } ,
513+ } ;
514+ var batch = await Generate ( new [ ] { operation } ) ;
515+ Assert . AreEqual ( 3 , batch . Count ( ) ) ;
516+ Assert . AreEqual ( NewLineEnd ( @"ALTER TABLE ""People"" ALTER COLUMN ""Col"" TYPE VARCHAR(10) COLLATE UNICODE_CI_AI;" ) , batch [ 1 ] . CommandText ) ;
517+ }
518+
459519 [ Test ]
460520 public async Task RenameColumn ( )
461521 {
0 commit comments