Skip to content

Commit 368dba5

Browse files
author
Gabriela Martinez
committed
Added a unit test for generated columns feature in 5.7
1 parent b97be26 commit 368dba5

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

Tests/MySql.Data.Tests/DataTypeTests.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,6 +1281,9 @@ public void Timediff()
12811281
[Fact]
12821282
public void CanReadJsonValue()
12831283
{
1284+
1285+
if (st.Version < new Version(5, 7)) return;
1286+
12841287
st.execSQL("DROP TABLE IF EXISTS test");
12851288
st.execSQL("CREATE TABLE test(Id int NOT NULL PRIMARY KEY, jsoncolumn JSON)");
12861289

@@ -1305,6 +1308,8 @@ public void CanReadJsonValue()
13051308
[Fact]
13061309
public void CanUpdateJsonValue()
13071310
{
1311+
if (st.Version < new Version(5, 7)) return;
1312+
13081313
st.execSQL("DROP TABLE IF EXISTS test");
13091314
st.execSQL("CREATE TABLE test(Id int NOT NULL PRIMARY KEY, jsoncolumn JSON)");
13101315

@@ -1324,5 +1329,44 @@ public void CanUpdateJsonValue()
13241329
Assert.Equal("[\"a\", {\"b\": [true, false]}, [10, 20]]", reader.GetString(0));
13251330
}
13261331
}
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+
}
13271371
}
13281372
}

0 commit comments

Comments
 (0)