Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

executor: add quote for partition name(close #14477) (#14793) #16315

Merged
merged 6 commits into from
Jun 1, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ddl/db_partition_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ func (s *testIntegrationSuite9) TestCreateTableWithPartition(c *C) {
partition p0 values less than (to_seconds('2004-01-01')),
partition p1 values less than (to_seconds('2005-01-01')));`)
tk.MustQuery("show create table t26").Check(
testkit.Rows("t26 CREATE TABLE `t26` (\n `a` date DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin\nPARTITION BY RANGE ( to_seconds(`a`) ) (\n PARTITION p0 VALUES LESS THAN (63240134400),\n PARTITION p1 VALUES LESS THAN (63271756800)\n)"))
testkit.Rows("t26 CREATE TABLE `t26` (\n `a` date DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin\nPARTITION BY RANGE ( to_seconds(`a`) ) (\n PARTITION `p0` VALUES LESS THAN (63240134400),\n PARTITION `p1` VALUES LESS THAN (63271756800)\n)"))
tk.MustExec(`create table t27 (a bigint unsigned not null)
partition by range(a) (
partition p0 values less than (10),
Expand Down
4 changes: 2 additions & 2 deletions executor/seqtest/seq_executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ func (s *seqTestSuite) TestShow(c *C) {
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"+"\nPARTITION BY RANGE ( `a` ) (\n PARTITION p0 VALUES LESS THAN (10),\n PARTITION p1 VALUES LESS THAN (20),\n PARTITION p2 VALUES LESS THAN (MAXVALUE)\n)",
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin"+"\nPARTITION BY RANGE ( `a` ) (\n PARTITION `p0` VALUES LESS THAN (10),\n PARTITION `p1` VALUES LESS THAN (20),\n PARTITION `p2` VALUES LESS THAN (MAXVALUE)\n)",
))

tk.MustExec(`drop table if exists t`)
Expand All @@ -525,7 +525,7 @@ func (s *seqTestSuite) TestShow(c *C) {
" `b` int(11) DEFAULT NULL,\n"+
" `c` char(1) DEFAULT NULL,\n"+
" `d` int(11) DEFAULT NULL\n"+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin"+"\nPARTITION BY RANGE COLUMNS(a,d,c) (\n PARTITION p0 VALUES LESS THAN (5,10,\"ggg\"),\n PARTITION p1 VALUES LESS THAN (10,20,\"mmm\"),\n PARTITION p2 VALUES LESS THAN (15,30,\"sss\"),\n PARTITION p3 VALUES LESS THAN (50,MAXVALUE,MAXVALUE)\n)",
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin"+"\nPARTITION BY RANGE COLUMNS(a,d,c) (\n PARTITION `p0` VALUES LESS THAN (5,10,\"ggg\"),\n PARTITION `p1` VALUES LESS THAN (10,20,\"mmm\"),\n PARTITION `p2` VALUES LESS THAN (15,30,\"sss\"),\n PARTITION `p3` VALUES LESS THAN (50,MAXVALUE,MAXVALUE)\n)",
))

// Test hash partition
Expand Down
2 changes: 1 addition & 1 deletion executor/show.go
Original file line number Diff line number Diff line change
Expand Up @@ -962,7 +962,7 @@ func appendPartitionInfo(partitionInfo *model.PartitionInfo, buf *bytes.Buffer)
}
for i, def := range partitionInfo.Definitions {
lessThans := strings.Join(def.LessThan, ",")
fmt.Fprintf(buf, " PARTITION %s VALUES LESS THAN (%s)", def.Name, lessThans)
fmt.Fprintf(buf, " PARTITION `%s` VALUES LESS THAN (%s)", def.Name, lessThans)
if i < len(partitionInfo.Definitions)-1 {
buf.WriteString(",\n")
} else {
Expand Down
48 changes: 24 additions & 24 deletions executor/show_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -574,18 +574,18 @@ func (s *testSuite2) TestShowCreateTable(c *C) {
"KEY `IDX_UserId_EndTime` (`USER_ID`,`END_TIME`)" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=505488 " +
"PARTITION BY RANGE ( month(`end_time`) ) (" +
"PARTITION p1 VALUES LESS THAN (2)," +
"PARTITION p2 VALUES LESS THAN (3)," +
"PARTITION p3 VALUES LESS THAN (4)," +
"PARTITION p4 VALUES LESS THAN (5)," +
"PARTITION p5 VALUES LESS THAN (6)," +
"PARTITION p6 VALUES LESS THAN (7)," +
"PARTITION p7 VALUES LESS THAN (8)," +
"PARTITION p8 VALUES LESS THAN (9)," +
"PARTITION p9 VALUES LESS THAN (10)," +
"PARTITION p10 VALUES LESS THAN (11)," +
"PARTITION p11 VALUES LESS THAN (12)," +
"PARTITION p12 VALUES LESS THAN (MAXVALUE))")
"PARTITION `p1` VALUES LESS THAN (2)," +
"PARTITION `p2` VALUES LESS THAN (3)," +
"PARTITION `p3` VALUES LESS THAN (4)," +
"PARTITION `p4` VALUES LESS THAN (5)," +
"PARTITION `p5` VALUES LESS THAN (6)," +
"PARTITION `p6` VALUES LESS THAN (7)," +
"PARTITION `p7` VALUES LESS THAN (8)," +
"PARTITION `p8` VALUES LESS THAN (9)," +
"PARTITION `p9` VALUES LESS THAN (10)," +
"PARTITION `p10` VALUES LESS THAN (11)," +
"PARTITION `p11` VALUES LESS THAN (12)," +
"PARTITION `p12` VALUES LESS THAN (MAXVALUE))")
tk.MustQuery("show create table log").Check(testutil.RowsWithSep("|",
"log CREATE TABLE `log` (\n"+
" `LOG_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,\n"+
Expand All @@ -601,18 +601,18 @@ func (s *testSuite2) TestShowCreateTable(c *C) {
" KEY `IDX_UserId_EndTime` (`USER_ID`,`END_TIME`)\n"+
") ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=505488\n"+
"PARTITION BY RANGE ( month(`end_time`) ) (\n"+
" PARTITION p1 VALUES LESS THAN (2),\n"+
" PARTITION p2 VALUES LESS THAN (3),\n"+
" PARTITION p3 VALUES LESS THAN (4),\n"+
" PARTITION p4 VALUES LESS THAN (5),\n"+
" PARTITION p5 VALUES LESS THAN (6),\n"+
" PARTITION p6 VALUES LESS THAN (7),\n"+
" PARTITION p7 VALUES LESS THAN (8),\n"+
" PARTITION p8 VALUES LESS THAN (9),\n"+
" PARTITION p9 VALUES LESS THAN (10),\n"+
" PARTITION p10 VALUES LESS THAN (11),\n"+
" PARTITION p11 VALUES LESS THAN (12),\n"+
" PARTITION p12 VALUES LESS THAN (MAXVALUE)\n"+
" PARTITION `p1` VALUES LESS THAN (2),\n"+
" PARTITION `p2` VALUES LESS THAN (3),\n"+
" PARTITION `p3` VALUES LESS THAN (4),\n"+
" PARTITION `p4` VALUES LESS THAN (5),\n"+
" PARTITION `p5` VALUES LESS THAN (6),\n"+
" PARTITION `p6` VALUES LESS THAN (7),\n"+
" PARTITION `p7` VALUES LESS THAN (8),\n"+
" PARTITION `p8` VALUES LESS THAN (9),\n"+
" PARTITION `p9` VALUES LESS THAN (10),\n"+
" PARTITION `p10` VALUES LESS THAN (11),\n"+
" PARTITION `p11` VALUES LESS THAN (12),\n"+
" PARTITION `p12` VALUES LESS THAN (MAXVALUE)\n"+
")"))
//for issue #11831
tk.MustExec("create table ttt4(a varchar(123) default null collate utf8mb4_unicode_ci)engine=innodb default charset=utf8mb4 collate=utf8mb4_unicode_ci;")
Expand Down
22 changes: 11 additions & 11 deletions table/tables/partition_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ PARTITION BY RANGE ( id ) (
_, err = tb.AddRecord(ts.se, types.MakeDatums(22))
c.Assert(err, IsNil) // Insert into maxvalue partition.

createTable3 := `create table test.t3 (id int) partition by range (id)
createTable3 := `create table test.t3 (id int) partition by range (id)
(
partition p0 values less than (10)
)`
Expand Down Expand Up @@ -328,11 +328,11 @@ func (ts *testSuite) TestTimeZoneChange(c *C) {
" `creation_dt` timestamp DEFAULT CURRENT_TIMESTAMP\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin\n" +
"PARTITION BY RANGE ( unix_timestamp(`creation_dt`) ) (\n" +
" PARTITION p5 VALUES LESS THAN (1578035400),\n" +
" PARTITION p6 VALUES LESS THAN (1578035700),\n" +
" PARTITION p7 VALUES LESS THAN (1578036000),\n" +
" PARTITION p8 VALUES LESS THAN (1578036300),\n" +
" PARTITION p9 VALUES LESS THAN (MAXVALUE)\n)"))
" PARTITION `p5` VALUES LESS THAN (1578035400),\n" +
" PARTITION `p6` VALUES LESS THAN (1578035700),\n" +
" PARTITION `p7` VALUES LESS THAN (1578036000),\n" +
" PARTITION `p8` VALUES LESS THAN (1578036300),\n" +
" PARTITION `p9` VALUES LESS THAN (MAXVALUE)\n)"))
tk.MustExec("DROP TABLE timezone_test")

// Note that the result of "show create table" varies with time_zone.
Expand All @@ -343,11 +343,11 @@ func (ts *testSuite) TestTimeZoneChange(c *C) {
" `creation_dt` timestamp DEFAULT CURRENT_TIMESTAMP\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin\n" +
"PARTITION BY RANGE ( unix_timestamp(`creation_dt`) ) (\n" +
" PARTITION p5 VALUES LESS THAN (1578064200),\n" +
" PARTITION p6 VALUES LESS THAN (1578064500),\n" +
" PARTITION p7 VALUES LESS THAN (1578064800),\n" +
" PARTITION p8 VALUES LESS THAN (1578065100),\n" +
" PARTITION p9 VALUES LESS THAN (MAXVALUE)\n)"))
" PARTITION `p5` VALUES LESS THAN (1578064200),\n" +
" PARTITION `p6` VALUES LESS THAN (1578064500),\n" +
" PARTITION `p7` VALUES LESS THAN (1578064800),\n" +
" PARTITION `p8` VALUES LESS THAN (1578065100),\n" +
" PARTITION `p9` VALUES LESS THAN (MAXVALUE)\n)"))

// Change time zone and insert data, check the data locates in the correct partition.
tk.MustExec("SET @@time_zone = 'Asia/Shanghai'")
Expand Down