@@ -1281,6 +1281,9 @@ public void Timediff()
1281
1281
[ Fact ]
1282
1282
public void CanReadJsonValue ( )
1283
1283
{
1284
+
1285
+ if ( st . Version < new Version ( 5 , 7 ) ) return ;
1286
+
1284
1287
st . execSQL ( "DROP TABLE IF EXISTS test" ) ;
1285
1288
st . execSQL ( "CREATE TABLE test(Id int NOT NULL PRIMARY KEY, jsoncolumn JSON)" ) ;
1286
1289
@@ -1305,6 +1308,8 @@ public void CanReadJsonValue()
1305
1308
[ Fact ]
1306
1309
public void CanUpdateJsonValue ( )
1307
1310
{
1311
+ if ( st . Version < new Version ( 5 , 7 ) ) return ;
1312
+
1308
1313
st . execSQL ( "DROP TABLE IF EXISTS test" ) ;
1309
1314
st . execSQL ( "CREATE TABLE test(Id int NOT NULL PRIMARY KEY, jsoncolumn JSON)" ) ;
1310
1315
@@ -1324,5 +1329,44 @@ public void CanUpdateJsonValue()
1324
1329
Assert . Equal ( "[\" a\" , {\" b\" : [true, false]}, [10, 20]]" , reader . GetString ( 0 ) ) ;
1325
1330
}
1326
1331
}
1332
+
1333
+ /// Testing out Generated Columns
1334
+ /// Using a case sensitive collation on a column
1335
+ /// and an insensitive serch with a generated column
1336
+ /// WL #411
1337
+ ///
1338
+ [ Fact ]
1339
+ public void CanUseGeneratedColumns ( )
1340
+ {
1341
+ if ( st . Version < new Version ( 5 , 7 ) ) return ;
1342
+
1343
+ st . execSQL ( "DROP TABLE IF EXISTS test" ) ;
1344
+ st . execSQL ( "CREATE TABLE `Test` (`ID` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `Name` char(35) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL)" ) ;
1345
+
1346
+ MySqlCommand cmd = new MySqlCommand ( "INSERT INTO test (Name) VALUES ('Berlin')" , st . conn ) ;
1347
+ cmd . ExecuteNonQuery ( ) ;
1348
+ cmd = new MySqlCommand ( "INSERT INTO test (Name) VALUES ('London')" , st . conn ) ;
1349
+ cmd . ExecuteNonQuery ( ) ;
1350
+ cmd = new MySqlCommand ( "INSERT INTO test (Name) VALUES ('France')" , st . conn ) ;
1351
+ cmd . ExecuteNonQuery ( ) ;
1352
+ cmd = new MySqlCommand ( "INSERT INTO test (Name) VALUES ('United Kingdom')" , st . conn ) ;
1353
+ cmd . ExecuteNonQuery ( ) ;
1354
+ cmd = new MySqlCommand ( "INSERT INTO test (Name) VALUES ('Italy')" , st . conn ) ;
1355
+ cmd . ExecuteNonQuery ( ) ;
1356
+
1357
+ cmd = new MySqlCommand ( "ALTER TABLE test ADD COLUMN Name_ci char(35) CHARACTER SET utf8 AS (Name) STORED;" , st . conn ) ;
1358
+ cmd . ExecuteNonQuery ( ) ;
1359
+
1360
+ cmd = new MySqlCommand ( "ALTER TABLE test ADD INDEX (Name_ci);" , st . conn ) ;
1361
+ cmd . ExecuteNonQuery ( ) ;
1362
+
1363
+ cmd = new MySqlCommand ( "SELECT Name FROM test WHERE Name_ci='berlin'" , st . conn ) ;
1364
+
1365
+ using ( MySqlDataReader reader = cmd . ExecuteReader ( ) )
1366
+ {
1367
+ Assert . True ( reader . Read ( ) ) ;
1368
+ Assert . True ( reader . GetString ( 0 ) . Equals ( "Berlin" , StringComparison . CurrentCulture ) ) ;
1369
+ }
1370
+ }
1327
1371
}
1328
1372
}
0 commit comments