ddl: add Test Case for /*T![placement] when create table (#28055)

This commit is contained in:
sylzd
2021-09-17 12:04:43 +08:00
committed by GitHub
parent acf7232069
commit e4bf62affa
3 changed files with 58 additions and 3 deletions

View File

@ -2862,6 +2862,61 @@ func (s *testSerialDBSuite) TestCreateTableWithLike2(c *C) {
c.Assert(t1.Meta().TiFlashReplica.AvailablePartitionIDs, DeepEquals, []int64{partition.Definitions[0].ID, partition.Definitions[1].ID})
}
func (s *testSerialDBSuite) TestCreateTableWithSpecialComment(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec("use test")
// case for direct options
tk.MustExec(`DROP TABLE IF EXISTS t`)
tk.MustExec("CREATE TABLE `t` (\n" +
" `a` int(11) DEFAULT NULL\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin " +
"/*T![placement] PRIMARY_REGION=\"cn-east-1\" " +
"REGIONS=\"cn-east-1, cn-east-2\" " +
"FOLLOWERS=2 " +
"CONSTRAINTS=\"[+disk=ssd]\" " +
"FOLLOWER_CONSTRAINTS=\"[+zone=cn-east-1]\" */",
)
tk.MustQuery(`show create table t`).Check(testutil.RowsWithSep("|",
"t CREATE TABLE `t` (\n"+
" `a` int(11) DEFAULT NULL\n"+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin "+
"/*T![placement] PRIMARY_REGION=\"cn-east-1\" "+
"REGIONS=\"cn-east-1, cn-east-2\" "+
"FOLLOWERS=2 "+
"CONSTRAINTS=\"[+disk=ssd]\" "+
"FOLLOWER_CONSTRAINTS=\"[+zone=cn-east-1]\" */",
))
// case for policy
tk.MustExec(`DROP TABLE IF EXISTS t`)
tk.MustExec("create placement policy x " +
"PRIMARY_REGION=\"cn-east-1\" " +
"REGIONS=\"cn-east-1, cn-east-2\" " +
"FOLLOWERS=2 " +
"FOLLOWER_CONSTRAINTS=\"[+zone=cn-east-1]\" " +
"CONSTRAINTS=\"[+disk=ssd]\" ")
tk.MustExec("create table t(a int)" +
"/*T![placement] PLACEMENT POLICY=`x` */")
tk.MustQuery(`show create table t`).Check(testutil.RowsWithSep("|",
"t CREATE TABLE `t` (\n"+
" `a` int(11) DEFAULT NULL\n"+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin "+
"/*T![placement] PLACEMENT POLICY=`x` */",
))
// case for policy with quotes
tk.MustExec(`DROP TABLE IF EXISTS t`)
tk.MustExec("create table t(a int)" +
"/*T![placement] PLACEMENT POLICY=\"x\" */")
tk.MustQuery(`show create table t`).Check(testutil.RowsWithSep("|",
"t CREATE TABLE `t` (\n"+
" `a` int(11) DEFAULT NULL\n"+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin "+
"/*T![placement] PLACEMENT POLICY=`x` */",
))
}
func (s *testSerialDBSuite) TestCreateTable(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec("use test")

2
go.mod
View File

@ -49,7 +49,7 @@ require (
github.com/pingcap/fn v0.0.0-20200306044125-d5540d389059
github.com/pingcap/kvproto v0.0.0-20210806074406-317f69fb54b4
github.com/pingcap/log v0.0.0-20210906054005-afc726e70354
github.com/pingcap/parser v0.0.0-20210907051057-948434fa20e4
github.com/pingcap/parser v0.0.0-20210915160042-658edc1dba6a
github.com/pingcap/sysutil v0.0.0-20210730114356-fcd8a63f68c5
github.com/pingcap/tidb-tools v5.0.3+incompatible
github.com/pingcap/tipb v0.0.0-20210802080519-94b831c6db55

4
go.sum
View File

@ -601,8 +601,8 @@ github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7/go.mod h1:8AanEdAHATuR
github.com/pingcap/log v0.0.0-20210906054005-afc726e70354 h1:SvWCbCPh1YeHd9yQLksvJYAgft6wLTY1aNG81tpyscQ=
github.com/pingcap/log v0.0.0-20210906054005-afc726e70354/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4=
github.com/pingcap/parser v0.0.0-20210525032559-c37778aff307/go.mod h1:xZC8I7bug4GJ5KtHhgAikjTfU4kBv1Sbo3Pf1MZ6lVw=
github.com/pingcap/parser v0.0.0-20210907051057-948434fa20e4 h1:v3paTSRJgM7E/2CqIxKd5gNSrlknktjIFNS9NMbpFLo=
github.com/pingcap/parser v0.0.0-20210907051057-948434fa20e4/go.mod h1:Ek0mLKEqUGnQqBw1JnYrJQxsguU433DU68yUbsoeJ7s=
github.com/pingcap/parser v0.0.0-20210915160042-658edc1dba6a h1:dApxKqk49ZaE/oErh4h5W27SJyyy5/oywIzpStANgLI=
github.com/pingcap/parser v0.0.0-20210915160042-658edc1dba6a/go.mod h1:+xcMiiZzdIktT/Nqdfm81dkECJ2EPuoAYywd57py4Pk=
github.com/pingcap/sysutil v0.0.0-20200206130906-2bfa6dc40bcd/go.mod h1:EB/852NMQ+aRKioCpToQ94Wl7fktV+FNnxf3CX/TTXI=
github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3/go.mod h1:tckvA041UWP+NqYzrJ3fMgC/Hw9wnmQ/tUkp/JaHly8=
github.com/pingcap/sysutil v0.0.0-20210730114356-fcd8a63f68c5 h1:7rvAtZe/ZUzOKzgriNPQoBNvleJXBk4z7L3Z47+tS98=