Skip to content

Commit 0e75179

Browse files
authored
Merge pull request #997 from dolthub/james/collate
adding `COLLATE` to `SHOW CREATE TABLE`
2 parents 9517b25 + 81c0caf commit 0e75179

File tree

6 files changed

+51
-51
lines changed

6 files changed

+51
-51
lines changed

enginetest/enginetests.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5463,15 +5463,15 @@ func TestAddDropPks(t *testing.T, harness Harness) {
54635463

54645464
// Assert that the pk is not primary key
54655465
TestQuery(t, harness, e, `SHOW CREATE TABLE newdb.tab1`, []sql.Row{
5466-
{"tab1", "CREATE TABLE `tab1` (\n `pk` int NOT NULL,\n `c1` int,\n PRIMARY KEY (`pk`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
5466+
{"tab1", "CREATE TABLE `tab1` (\n `pk` int NOT NULL,\n `c1` int,\n PRIMARY KEY (`pk`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
54675467
}, nil)
54685468

54695469
// Drop all primary key from other database table
54705470
RunQuery(t, e, harness, `ALTER TABLE newdb.tab1 DROP PRIMARY KEY`)
54715471

54725472
// Assert that NOT NULL constraint is kept
54735473
TestQuery(t, harness, e, `SHOW CREATE TABLE newdb.tab1`, []sql.Row{
5474-
{"tab1", "CREATE TABLE `tab1` (\n `pk` int NOT NULL,\n `c1` int\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
5474+
{"tab1", "CREATE TABLE `tab1` (\n `pk` int NOT NULL,\n `c1` int\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
54755475
}, nil)
54765476
})
54775477
}
@@ -6063,7 +6063,7 @@ func TestColumnDefaults(t *testing.T, harness Harness) {
60636063
" `v1y` bigint,\n" +
60646064
" `v2` bigint DEFAULT ((v1y + 1)),\n" +
60656065
" PRIMARY KEY (`pk`)\n" +
6066-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}}, nil)
6066+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}}, nil)
60676067
})
60686068

60696069
t.Run("Add multiple columns same ALTER", func(t *testing.T) {

enginetest/foreign_key_queries.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ var ForeignKeyTests = []ScriptTest{
3131
Assertions: []ScriptTestAssertion{
3232
{
3333
Query: "SHOW CREATE TABLE child;",
34-
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_named` FOREIGN KEY (`v1`) REFERENCES `parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
34+
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_named` FOREIGN KEY (`v1`) REFERENCES `parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
3535
},
3636
},
3737
},
@@ -43,7 +43,7 @@ var ForeignKeyTests = []ScriptTest{
4343
Assertions: []ScriptTestAssertion{
4444
{
4545
Query: "SHOW CREATE TABLE sibling;",
46-
Expected: []sql.Row{{"sibling", "CREATE TABLE `sibling` (\n `id` int NOT NULL,\n `v1` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_named` FOREIGN KEY (`v1`) REFERENCES `parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
46+
Expected: []sql.Row{{"sibling", "CREATE TABLE `sibling` (\n `id` int NOT NULL,\n `v1` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_named` FOREIGN KEY (`v1`) REFERENCES `parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
4747
},
4848
},
4949
},
@@ -220,15 +220,15 @@ var ForeignKeyTests = []ScriptTest{
220220
Assertions: []ScriptTestAssertion{
221221
{
222222
Query: "SHOW CREATE TABLE child;",
223-
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_name` FOREIGN KEY (`v1`) REFERENCES `parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
223+
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_name` FOREIGN KEY (`v1`) REFERENCES `parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
224224
},
225225
{
226226
Query: "ALTER TABLE child DROP FOREIGN KEY fk_name;",
227227
Expected: []sql.Row{{sql.NewOkResult(0)}},
228228
},
229229
{
230230
Query: "SHOW CREATE TABLE child;",
231-
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
231+
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
232232
},
233233
{
234234
Query: "ALTER TABLE child DROP FOREIGN KEY fk_name;",
@@ -278,15 +278,15 @@ var ForeignKeyTests = []ScriptTest{
278278
Assertions: []ScriptTestAssertion{
279279
{
280280
Query: "SHOW CREATE TABLE child;",
281-
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_name` FOREIGN KEY (`v1`) REFERENCES `new_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
281+
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_name` FOREIGN KEY (`v1`) REFERENCES `new_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
282282
},
283283
{
284284
Query: "RENAME TABLE child TO new_child;",
285285
Expected: []sql.Row{{sql.NewOkResult(0)}},
286286
},
287287
{
288288
Query: "SHOW CREATE TABLE new_child;",
289-
Expected: []sql.Row{{"new_child", "CREATE TABLE `new_child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_name` FOREIGN KEY (`v1`) REFERENCES `new_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
289+
Expected: []sql.Row{{"new_child", "CREATE TABLE `new_child` (\n `id` int NOT NULL,\n `v1` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1`),\n CONSTRAINT `fk_name` FOREIGN KEY (`v1`) REFERENCES `new_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
290290
},
291291
},
292292
},
@@ -349,7 +349,7 @@ var ForeignKeyTests = []ScriptTest{
349349
Assertions: []ScriptTestAssertion{
350350
{
351351
Query: "SHOW CREATE TABLE child;",
352-
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1_new` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1_new`),\n CONSTRAINT `fk1` FOREIGN KEY (`v1_new`) REFERENCES `parent` (`v1_new`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
352+
Expected: []sql.Row{{"child", "CREATE TABLE `child` (\n `id` int NOT NULL,\n `v1_new` int,\n `v2` int,\n PRIMARY KEY (`id`),\n KEY `v1` (`v1_new`),\n CONSTRAINT `fk1` FOREIGN KEY (`v1_new`) REFERENCES `parent` (`v1_new`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
353353
},
354354
},
355355
},
@@ -899,7 +899,7 @@ var ForeignKeyTests = []ScriptTest{
899899
Assertions: []ScriptTestAssertion{
900900
{
901901
Query: "SHOW CREATE TABLE delayed_child;",
902-
Expected: []sql.Row{{"delayed_child", "CREATE TABLE `delayed_child` (\n `pk` int NOT NULL,\n `v1` int,\n PRIMARY KEY (`pk`),\n CONSTRAINT `fk_delayed` FOREIGN KEY (`v1`) REFERENCES `delayed_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
902+
Expected: []sql.Row{{"delayed_child", "CREATE TABLE `delayed_child` (\n `pk` int NOT NULL,\n `v1` int,\n PRIMARY KEY (`pk`),\n CONSTRAINT `fk_delayed` FOREIGN KEY (`v1`) REFERENCES `delayed_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
903903
},
904904
{
905905
Query: "SELECT * FROM delayed_parent;",
@@ -938,7 +938,7 @@ var ForeignKeyTests = []ScriptTest{
938938
Assertions: []ScriptTestAssertion{
939939
{
940940
Query: "SHOW CREATE TABLE delayed_child;",
941-
Expected: []sql.Row{{"delayed_child", "CREATE TABLE `delayed_child` (\n `pk` int NOT NULL,\n `v1` int,\n PRIMARY KEY (`pk`),\n CONSTRAINT `fk_delayed` FOREIGN KEY (`v1`) REFERENCES `delayed_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
941+
Expected: []sql.Row{{"delayed_child", "CREATE TABLE `delayed_child` (\n `pk` int NOT NULL,\n `v1` int,\n PRIMARY KEY (`pk`),\n CONSTRAINT `fk_delayed` FOREIGN KEY (`v1`) REFERENCES `delayed_parent` (`v1`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
942942
},
943943
{
944944
Query: "SELECT * FROM delayed_child;",
@@ -1045,7 +1045,7 @@ var ForeignKeyTests = []ScriptTest{
10451045
Assertions: []ScriptTestAssertion{
10461046
{
10471047
Query: "SHOW CREATE TABLE hours;",
1048-
Expected: []sql.Row{{"hours", "CREATE TABLE `hours` (\n `restaurant_id` int NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`restaurant_id`),\n CONSTRAINT `fk_name` FOREIGN KEY (`restaurant_id`) REFERENCES `restaurants` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}},
1048+
Expected: []sql.Row{{"hours", "CREATE TABLE `hours` (\n `restaurant_id` int NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`restaurant_id`),\n CONSTRAINT `fk_name` FOREIGN KEY (`restaurant_id`) REFERENCES `restaurants` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
10491049
},
10501050
},
10511051
},

enginetest/queries.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ var SpatialQueryTests = []QueryTest{
4242
" `i` bigint NOT NULL,\n" +
4343
" `p` point NOT NULL,\n" +
4444
" PRIMARY KEY (`i`)\n" +
45-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
45+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin",
4646
}},
4747
},
4848
{
@@ -53,7 +53,7 @@ var SpatialQueryTests = []QueryTest{
5353
" `i` bigint NOT NULL,\n" +
5454
" `l` linestring NOT NULL,\n" +
5555
" PRIMARY KEY (`i`)\n" +
56-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
56+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin",
5757
}},
5858
},
5959
{
@@ -64,7 +64,7 @@ var SpatialQueryTests = []QueryTest{
6464
" `i` bigint NOT NULL,\n" +
6565
" `p` polygon NOT NULL,\n" +
6666
" PRIMARY KEY (`i`)\n" +
67-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
67+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin",
6868
}},
6969
},
7070
{
@@ -75,7 +75,7 @@ var SpatialQueryTests = []QueryTest{
7575
" `i` bigint NOT NULL,\n" +
7676
" `g` geometry NOT NULL,\n" +
7777
" PRIMARY KEY (`i`)\n" +
78-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
78+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin",
7979
}},
8080
},
8181
{
@@ -3988,7 +3988,7 @@ var QueryTests = []QueryTest{
39883988
" `c4` tinyint NOT NULL,\n" +
39893989
" `c5` tinyint NOT NULL,\n" +
39903990
" PRIMARY KEY (`pk1`,`pk2`)\n" +
3991-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
3991+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin",
39923992
}},
39933993
},
39943994
{
@@ -6858,7 +6858,7 @@ var KeylessQueries = []QueryTest{
68586858
{
68596859
Query: "SHOW CREATE TABLE keyless",
68606860
Expected: []sql.Row{
6861-
{"keyless", "CREATE TABLE `keyless` (\n `c0` bigint,\n `c1` bigint\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
6861+
{"keyless", "CREATE TABLE `keyless` (\n `c0` bigint,\n `c1` bigint\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
68626862
},
68636863
},
68646864
}
@@ -7212,7 +7212,7 @@ var VersionedQueries = []QueryTest{
72127212
" `i` bigint NOT NULL,\n" +
72137213
" `s` text NOT NULL,\n" +
72147214
" PRIMARY KEY (`i`)\n" +
7215-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
7215+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
72167216
},
72177217
},
72187218
{
@@ -7223,7 +7223,7 @@ var VersionedQueries = []QueryTest{
72237223
" `s` text NOT NULL,\n" +
72247224
" `c` text NOT NULL,\n" +
72257225
" PRIMARY KEY (`i`)\n" +
7226-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
7226+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
72277227
},
72287228
},
72297229
}
@@ -7588,7 +7588,7 @@ var InfoSchemaQueries = []QueryTest{
75887588
" KEY `idx_si` (`s`,`i`),\n" +
75897589
" KEY `mytable_i_s` (`i`,`s`),\n" +
75907590
" UNIQUE KEY `mytable_s` (`s`)\n" +
7591-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
7591+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
75927592
},
75937593
},
75947594
{
@@ -7601,7 +7601,7 @@ var InfoSchemaQueries = []QueryTest{
76017601
" PRIMARY KEY (`pk`),\n" +
76027602
" KEY `ab` (`a`,`b`),\n" +
76037603
" CONSTRAINT `fk1` FOREIGN KEY (`a`,`b`) REFERENCES `mytable` (`i`,`s`) ON DELETE CASCADE\n" +
7604-
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
7604+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
76057605
},
76067606
},
76077607
{

0 commit comments

Comments
 (0)