Skip to content

Commit 414870a

Browse files
Herman Leefacebook-github-bot
Herman Lee
authored andcommitted
Fix show create database and db_metadata information
Summary: Current show create database does not print out the metadata enclosed in the correct set of quotations. Executing the return value of show create database results in an error. Squash with D5358178 Reviewed By: yashtc Differential Revision: D10855515 fbshipit-source-id: 3cb071c
1 parent aa6ea84 commit 414870a

File tree

3 files changed

+107
-18
lines changed

3 files changed

+107
-18
lines changed

mysql-test/r/db_metadata.result

+66-17
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,32 @@ db-metadata=
3434
create database test5 db_metadata = "{\"shard\":\"test5_shard\"}";
3535
show create database test5;
3636
Database Create Database
37-
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test5_shard"} */
37+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard"}' */
38+
default-character-set=latin1
39+
default-collation=latin1_swedish_ci
40+
db-read-only=0
41+
db-metadata={"shard":"test5_shard"}
42+
drop database test5;
43+
CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard"}' */;
44+
show create database test5;
45+
Database Create Database
46+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard"}' */
3847
default-character-set=latin1
3948
default-collation=latin1_swedish_ci
4049
db-read-only=0
4150
db-metadata={"shard":"test5_shard"}
4251
create database test6 character set utf8 db_metadata = "{\"shard\":\"test6_shard\"}";
4352
show create database test6;
4453
Database Create Database
45-
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA {"shard":"test6_shard"} */
54+
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA '{"shard":"test6_shard"}' */
4655
default-character-set=utf8
4756
default-collation=utf8_general_ci
4857
db-read-only=0
4958
db-metadata={"shard":"test6_shard"}
5059
create database test7 read_only = true db_metadata = "{\"shard\":\"test7_shard\"}";
5160
show create database test7;
5261
Database Create Database
53-
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test7_shard"} */
62+
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test7_shard"}' */
5463
default-character-set=latin1
5564
default-collation=latin1_swedish_ci
5665
db-read-only=1
@@ -66,13 +75,41 @@ db-metadata=
6675
create database test9 character set utf8 read_only = true db_metadata = "{\"shard\":\"test9_shard\"}";
6776
show create database test9;
6877
Database Create Database
69-
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET utf8 READ_ONLY DB_METADATA {"shard":"test9_shard"} */
78+
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET utf8 READ_ONLY DB_METADATA '{"shard":"test9_shard"}' */
7079
default-character-set=utf8
7180
default-collation=utf8_general_ci
7281
db-read-only=1
7382
db-metadata={"shard":"test9_shard"}
7483
create database test10 db_metadata = "invalid_json";
7584
ERROR HY000: Invalid JSON for DB_METADATA attribute: invalid_json.
85+
create database test11 db_metadata = "{\'shard\':\'test11_shard\'}";
86+
ERROR HY000: Invalid JSON for DB_METADATA attribute: {'shard':'test11_shard'}.
87+
create database test12 db_metadata = "{\"sha'rd\":\"test12\\\"_shard\"}";
88+
show create database test12;
89+
Database Create Database
90+
test12 CREATE DATABASE `test12` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''rd":"test12\\"_shard"}' */
91+
default-character-set=latin1
92+
default-collation=latin1_swedish_ci
93+
db-read-only=0
94+
db-metadata={"sha'rd":"test12\"_shard"}
95+
drop database test12;
96+
CREATE DATABASE `test12` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''rd":"test12\\"_shard"}' */;
97+
show create database test12;
98+
Database Create Database
99+
test12 CREATE DATABASE `test12` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''rd":"test12\\"_shard"}' */
100+
create database test13 db_metadata = '{"sha\'\\"rd":"test13\'_sh\\"ard"}';
101+
show create database test13;
102+
Database Create Database
103+
test13 CREATE DATABASE `test13` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''\\"rd":"test13''_sh\\"ard"}' */
104+
default-character-set=latin1
105+
default-collation=latin1_swedish_ci
106+
db-read-only=0
107+
db-metadata={"sha'\"rd":"test13'_sh\"ard"}
108+
drop database test13;
109+
CREATE DATABASE `test13` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''\\"rd":"test13''_sh\\"ard"}' */;
110+
show create database test13;
111+
Database Create Database
112+
test13 CREATE DATABASE `test13` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''\\"rd":"test13''_sh\\"ard"}' */
76113
alter database test3 character set ascii;
77114
show create database test3;
78115
Database Create Database
@@ -84,7 +121,7 @@ db-metadata=
84121
alter database test3 db_metadata = "{\"shard\":\"test3_shard_altered\"}";
85122
show create database test3;
86123
Database Create Database
87-
test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA {"shard":"test3_shard_altered"} */
124+
test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA '{"shard":"test3_shard_altered"}' */
88125
default-character-set=ascii
89126
default-collation=ascii_general_ci
90127
db-read-only=0
@@ -100,47 +137,47 @@ db-metadata=
100137
alter database test4 db_metadata = "{\"shard\":\"test4_shard_altered\"}";
101138
show create database test4;
102139
Database Create Database
103-
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test4_shard_altered"} */
140+
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test4_shard_altered"}' */
104141
default-character-set=latin1
105142
default-collation=latin1_swedish_ci
106143
db-read-only=1
107144
db-metadata={"shard":"test4_shard_altered"}
108145
alter database test4 read_only = false;
109146
show create database test4;
110147
Database Create Database
111-
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test4_shard_altered"} */
148+
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test4_shard_altered"}' */
112149
default-character-set=latin1
113150
default-collation=latin1_swedish_ci
114151
db-read-only=0
115152
db-metadata={"shard":"test4_shard_altered"}
116153
alter database test5 db_metadata = "{\"shard\":\"test5_shard_altered\"}";
117154
show create database test5;
118155
Database Create Database
119-
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test5_shard_altered"} */
156+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard_altered"}' */
120157
default-character-set=latin1
121158
default-collation=latin1_swedish_ci
122159
db-read-only=0
123160
db-metadata={"shard":"test5_shard_altered"}
124161
alter database test5 character set ascii;
125162
show create database test5;
126163
Database Create Database
127-
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA {"shard":"test5_shard_altered"} */
164+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA '{"shard":"test5_shard_altered"}' */
128165
default-character-set=ascii
129166
default-collation=ascii_general_ci
130167
db-read-only=0
131168
db-metadata={"shard":"test5_shard_altered"}
132169
alter database test5 read_only = true;
133170
show create database test5;
134171
Database Create Database
135-
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA {"shard":"test5_shard_altered"} */
172+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA '{"shard":"test5_shard_altered"}' */
136173
default-character-set=ascii
137174
default-collation=ascii_general_ci
138175
db-read-only=1
139176
db-metadata={"shard":"test5_shard_altered"}
140177
alter database test5 character set utf8 read_only = false;
141178
show create database test5;
142179
Database Create Database
143-
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA {"shard":"test5_shard_altered"} */
180+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA '{"shard":"test5_shard_altered"}' */
144181
default-character-set=utf8
145182
default-collation=utf8_general_ci
146183
db-read-only=0
@@ -156,7 +193,16 @@ db-metadata=
156193
alter database test5 db_metadata "{\"shard\":\"Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Fin\"}";
157194
show create database test5;
158195
Database Create Database
159-
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA {"shard":"Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Fin"} */
196+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA '{"shard":"Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Fin"}' */
197+
default-character-set=utf8
198+
default-collation=utf8_general_ci
199+
db-read-only=0
200+
db-metadata={"shard":"Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Fin"}
201+
drop database test5;
202+
CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA '{"shard":"Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Fin"}' */;
203+
show create database test5;
204+
Database Create Database
205+
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA '{"shard":"Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Really long shard name. Fin"}' */
160206
default-character-set=utf8
161207
default-collation=utf8_general_ci
162208
db-read-only=0
@@ -166,15 +212,15 @@ ERROR HY000: Metadata for the database is too long. Max length is 1024 bytes
166212
alter database test6 character set ascii db_metadata = "{\"shard\":\"test6_shard_altered\"}";
167213
show create database test6;
168214
Database Create Database
169-
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA {"shard":"test6_shard_altered"} */
215+
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA '{"shard":"test6_shard_altered"}' */
170216
default-character-set=ascii
171217
default-collation=ascii_general_ci
172218
db-read-only=0
173219
db-metadata={"shard":"test6_shard_altered"}
174220
alter database test7 read_only = true db_metadata = "{\"shard\":\"test7_shard_altered\"}";
175221
show create database test7;
176222
Database Create Database
177-
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test7_shard_altered"} */
223+
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test7_shard_altered"}' */
178224
default-character-set=latin1
179225
default-collation=latin1_swedish_ci
180226
db-read-only=1
@@ -190,7 +236,7 @@ db-metadata=
190236
alter database test9 character set ascii read_only = true db_metadata = "{\"shard\":\"test9_shard_altered\"}";
191237
show create database test9;
192238
Database Create Database
193-
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA {"shard":"test9_shard_altered"} */
239+
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA '{"shard":"test9_shard_altered"}' */
194240
default-character-set=ascii
195241
default-collation=ascii_general_ci
196242
db-read-only=1
@@ -224,15 +270,15 @@ db-metadata=
224270
alter database test10 db_metadata = "{\"shard\":\"test10_shard_altered\"}";
225271
show create database test10;
226272
Database Create Database
227-
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test10_shard_altered"} */
273+
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test10_shard_altered"}' */
228274
default-character-set=latin1
229275
default-collation=latin1_swedish_ci
230276
db-read-only=1
231277
db-metadata={"shard":"test10_shard_altered"}
232278
alter database test10 read_only = false;
233279
show create database test10;
234280
Database Create Database
235-
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test10_shard_altered"} */
281+
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test10_shard_altered"}' */
236282
default-character-set=latin1
237283
default-collation=latin1_swedish_ci
238284
db-read-only=0
@@ -246,3 +292,6 @@ drop database if exists test7;
246292
drop database if exists test8;
247293
drop database if exists test9;
248294
drop database if exists test10;
295+
drop database if exists test11;
296+
drop database if exists test12;
297+
drop database if exists test13;

0 commit comments

Comments
 (0)