Skip to content

Commit

Permalink
Fix show create database and db_metadata information
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Herman Lee authored and facebook-github-bot committed Oct 25, 2018
1 parent aa6ea84 commit 414870a
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 18 deletions.
83 changes: 66 additions & 17 deletions mysql-test/r/db_metadata.result
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,32 @@ db-metadata=
create database test5 db_metadata = "{\"shard\":\"test5_shard\"}";
show create database test5;
Database Create Database
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test5_shard"} */
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=0
db-metadata={"shard":"test5_shard"}
drop database test5;
CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard"}' */;
show create database test5;
Database Create Database
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=0
db-metadata={"shard":"test5_shard"}
create database test6 character set utf8 db_metadata = "{\"shard\":\"test6_shard\"}";
show create database test6;
Database Create Database
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA {"shard":"test6_shard"} */
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA '{"shard":"test6_shard"}' */
default-character-set=utf8
default-collation=utf8_general_ci
db-read-only=0
db-metadata={"shard":"test6_shard"}
create database test7 read_only = true db_metadata = "{\"shard\":\"test7_shard\"}";
show create database test7;
Database Create Database
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test7_shard"} */
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test7_shard"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=1
Expand All @@ -66,13 +75,41 @@ db-metadata=
create database test9 character set utf8 read_only = true db_metadata = "{\"shard\":\"test9_shard\"}";
show create database test9;
Database Create Database
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET utf8 READ_ONLY DB_METADATA {"shard":"test9_shard"} */
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET utf8 READ_ONLY DB_METADATA '{"shard":"test9_shard"}' */
default-character-set=utf8
default-collation=utf8_general_ci
db-read-only=1
db-metadata={"shard":"test9_shard"}
create database test10 db_metadata = "invalid_json";
ERROR HY000: Invalid JSON for DB_METADATA attribute: invalid_json.
create database test11 db_metadata = "{\'shard\':\'test11_shard\'}";
ERROR HY000: Invalid JSON for DB_METADATA attribute: {'shard':'test11_shard'}.
create database test12 db_metadata = "{\"sha'rd\":\"test12\\\"_shard\"}";
show create database test12;
Database Create Database
test12 CREATE DATABASE `test12` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''rd":"test12\\"_shard"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=0
db-metadata={"sha'rd":"test12\"_shard"}
drop database test12;
CREATE DATABASE `test12` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''rd":"test12\\"_shard"}' */;
show create database test12;
Database Create Database
test12 CREATE DATABASE `test12` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''rd":"test12\\"_shard"}' */
create database test13 db_metadata = '{"sha\'\\"rd":"test13\'_sh\\"ard"}';
show create database test13;
Database Create Database
test13 CREATE DATABASE `test13` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''\\"rd":"test13''_sh\\"ard"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=0
db-metadata={"sha'\"rd":"test13'_sh\"ard"}
drop database test13;
CREATE DATABASE `test13` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''\\"rd":"test13''_sh\\"ard"}' */;
show create database test13;
Database Create Database
test13 CREATE DATABASE `test13` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"sha''\\"rd":"test13''_sh\\"ard"}' */
alter database test3 character set ascii;
show create database test3;
Database Create Database
Expand All @@ -84,7 +121,7 @@ db-metadata=
alter database test3 db_metadata = "{\"shard\":\"test3_shard_altered\"}";
show create database test3;
Database Create Database
test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA {"shard":"test3_shard_altered"} */
test3 CREATE DATABASE `test3` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA '{"shard":"test3_shard_altered"}' */
default-character-set=ascii
default-collation=ascii_general_ci
db-read-only=0
Expand All @@ -100,47 +137,47 @@ db-metadata=
alter database test4 db_metadata = "{\"shard\":\"test4_shard_altered\"}";
show create database test4;
Database Create Database
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test4_shard_altered"} */
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test4_shard_altered"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=1
db-metadata={"shard":"test4_shard_altered"}
alter database test4 read_only = false;
show create database test4;
Database Create Database
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test4_shard_altered"} */
test4 CREATE DATABASE `test4` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test4_shard_altered"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=0
db-metadata={"shard":"test4_shard_altered"}
alter database test5 db_metadata = "{\"shard\":\"test5_shard_altered\"}";
show create database test5;
Database Create Database
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test5_shard_altered"} */
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test5_shard_altered"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=0
db-metadata={"shard":"test5_shard_altered"}
alter database test5 character set ascii;
show create database test5;
Database Create Database
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA {"shard":"test5_shard_altered"} */
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA '{"shard":"test5_shard_altered"}' */
default-character-set=ascii
default-collation=ascii_general_ci
db-read-only=0
db-metadata={"shard":"test5_shard_altered"}
alter database test5 read_only = true;
show create database test5;
Database Create Database
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA {"shard":"test5_shard_altered"} */
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA '{"shard":"test5_shard_altered"}' */
default-character-set=ascii
default-collation=ascii_general_ci
db-read-only=1
db-metadata={"shard":"test5_shard_altered"}
alter database test5 character set utf8 read_only = false;
show create database test5;
Database Create Database
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA {"shard":"test5_shard_altered"} */
test5 CREATE DATABASE `test5` /*!40100 DEFAULT CHARACTER SET utf8 DB_METADATA '{"shard":"test5_shard_altered"}' */
default-character-set=utf8
default-collation=utf8_general_ci
db-read-only=0
Expand All @@ -156,7 +193,16 @@ db-metadata=
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\"}";
show create database test5;
Database Create Database
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"} */
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"}' */
default-character-set=utf8
default-collation=utf8_general_ci
db-read-only=0
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"}
drop database 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"}' */;
show create database test5;
Database Create Database
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"}' */
default-character-set=utf8
default-collation=utf8_general_ci
db-read-only=0
Expand All @@ -166,15 +212,15 @@ ERROR HY000: Metadata for the database is too long. Max length is 1024 bytes
alter database test6 character set ascii db_metadata = "{\"shard\":\"test6_shard_altered\"}";
show create database test6;
Database Create Database
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA {"shard":"test6_shard_altered"} */
test6 CREATE DATABASE `test6` /*!40100 DEFAULT CHARACTER SET ascii DB_METADATA '{"shard":"test6_shard_altered"}' */
default-character-set=ascii
default-collation=ascii_general_ci
db-read-only=0
db-metadata={"shard":"test6_shard_altered"}
alter database test7 read_only = true db_metadata = "{\"shard\":\"test7_shard_altered\"}";
show create database test7;
Database Create Database
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test7_shard_altered"} */
test7 CREATE DATABASE `test7` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test7_shard_altered"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=1
Expand All @@ -190,7 +236,7 @@ db-metadata=
alter database test9 character set ascii read_only = true db_metadata = "{\"shard\":\"test9_shard_altered\"}";
show create database test9;
Database Create Database
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA {"shard":"test9_shard_altered"} */
test9 CREATE DATABASE `test9` /*!40100 DEFAULT CHARACTER SET ascii READ_ONLY DB_METADATA '{"shard":"test9_shard_altered"}' */
default-character-set=ascii
default-collation=ascii_general_ci
db-read-only=1
Expand Down Expand Up @@ -224,15 +270,15 @@ db-metadata=
alter database test10 db_metadata = "{\"shard\":\"test10_shard_altered\"}";
show create database test10;
Database Create Database
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA {"shard":"test10_shard_altered"} */
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 READ_ONLY DB_METADATA '{"shard":"test10_shard_altered"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=1
db-metadata={"shard":"test10_shard_altered"}
alter database test10 read_only = false;
show create database test10;
Database Create Database
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA {"shard":"test10_shard_altered"} */
test10 CREATE DATABASE `test10` /*!40100 DEFAULT CHARACTER SET latin1 DB_METADATA '{"shard":"test10_shard_altered"}' */
default-character-set=latin1
default-collation=latin1_swedish_ci
db-read-only=0
Expand All @@ -246,3 +292,6 @@ drop database if exists test7;
drop database if exists test8;
drop database if exists test9;
drop database if exists test10;
drop database if exists test11;
drop database if exists test12;
drop database if exists test13;

0 comments on commit 414870a

Please sign in to comment.