From 25ef3fa7019a7086948decb0176e9845735a445e Mon Sep 17 00:00:00 2001 From: xhe Date: Fri, 7 Aug 2020 10:23:21 +0800 Subject: [PATCH] [parser] *: remove redundant checks (#965) --- parser/parser.go | 14 ++------------ parser/parser.y | 14 ++------------ parser/parser_test.go | 30 +++++++++++++----------------- 3 files changed, 17 insertions(+), 41 deletions(-) diff --git a/parser/parser.go b/parser/parser.go index db35c2b154..90dd4fe870 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -10088,20 +10088,10 @@ yynewstate: } case 9: { - cnt := yyS[yypt-0].item.(uint64) - if cnt <= 0 { - yylex.AppendError(yylex.Errorf("Get a non-positive count for placement rules: %s", cnt)) - return 1 - } - parser.yyVAL.item = cnt + parser.yyVAL.item = yyS[yypt-0].item } case 10: { - // [+|-]x= - if len(yyS[yypt-0].ident) < 3 { - yylex.AppendError(yylex.Errorf("Get empty/invalid label constraints: %s", yyS[yypt-0].ident)) - return 1 - } parser.yyVAL.item = yyS[yypt-0].ident } case 11: @@ -10153,7 +10143,7 @@ yynewstate: case 18: { spec := yyS[yypt-1].item.(*ast.PlacementSpec) - if spec.Role != 0 { + if spec.Role != ast.PlacementRoleNone { yylex.AppendError(yylex.Errorf("Duplicate placement option ROLE")) return 1 } diff --git a/parser/parser.y b/parser/parser.y index 374f1ee11a..d9bba005a0 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -1383,22 +1383,12 @@ PlacementRole: PlacementCount: "REPLICAS" "=" LengthNum { - cnt := $3.(uint64) - if cnt <= 0 { - yylex.AppendError(yylex.Errorf("Get a non-positive count for placement rules: %s", cnt)) - return 1 - } - $$ = cnt + $$ = $3 } PlacementLabelConstraints: "CONSTRAINTS" "=" stringLit { - // [+|-]x= - if len($3) < 3 { - yylex.AppendError(yylex.Errorf("Get empty/invalid label constraints: %s", $3)) - return 1 - } $$ = $3 } @@ -1453,7 +1443,7 @@ PlacementOptions: | PlacementOptions PlacementRole { spec := $1.(*ast.PlacementSpec) - if spec.Role != 0 { + if spec.Role != ast.PlacementRoleNone { yylex.AppendError(yylex.Errorf("Duplicate placement option ROLE")) return 1 } diff --git a/parser/parser_test.go b/parser/parser_test.go index 046ed3e222..0241190f15 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -2574,27 +2574,23 @@ func (s *testParserSuite) TestDDL(c *C) { {"alter table t reorganize partition no_write_to_binlog remove into (partition p0 VALUES LESS THAN (1991));", true, "ALTER TABLE `t` REORGANIZE PARTITION NO_WRITE_TO_BINLOG `remove` INTO (PARTITION `p0` VALUES LESS THAN (1991))"}, // alter placement rules - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=LEADER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=LEADER REPLICAS=1"}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='-zone=zone1' ROLE=LEADER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='-zone=zone1' ROLE=LEADER REPLICAS=1"}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1,-zone=zone2' ROLE=LEADER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1,-zone=zone2' ROLE=LEADER REPLICAS=1"}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=FOLLOWER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=FOLLOWER REPLICAS=1"}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY ROLE=LEARNER CONSTRAINTS='+zone=zone1' REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=LEARNER REPLICAS=1"}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY REPLICAS=1 CONSTRAINTS='+zone=zone1' ROLE=VOTER", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=VOTER REPLICAS=1"}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='ffff' ROLE=leader REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='gggg' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='ffff' ROLE=LEADER REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='gggg' ROLE=LEADER REPLICAS=1"}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=LEADER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=LEADER REPLICAS=1"}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='str,str2' ROLE=LEADER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='str,str2' ROLE=LEADER REPLICAS=1"}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=FOLLOWER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=FOLLOWER REPLICAS=1"}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY ROLE=LEARNER CONSTRAINTS='str' REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=LEARNER REPLICAS=1"}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY REPLICAS=1 CONSTRAINTS='str' ROLE=VOTER", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=VOTER REPLICAS=1"}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='str1' ROLE=leader REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='str2' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ADD PLACEMENT POLICY CONSTRAINTS='str1' ROLE=LEADER REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='str2' ROLE=LEADER REPLICAS=1"}, {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS= ROLE=follower REPLICAS=1;", false, ""}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=gh' ROLE=follower REPLICAS=-1;", false, ""}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=gh' ROLE=follower REPLICAS=0;", false, ""}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=gh' ROLE=follower REPLICAS=1 REPLICAS=2;", false, ""}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=gh' ROLE=follower REPLICAS=1 ROLE=voter;", false, ""}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='+zone=gh' ROLE=follower REPLICAS=1 CONSTRAINTS='ttt';", false, ""}, - {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='' ROLE=follower REPLICAS=1;", false, ""}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=follower REPLICAS=1 REPLICAS=2;", false, ""}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=follower REPLICAS=1 ROLE=voter;", false, ""}, + {"ALTER TABLE t ALTER PARTITION p ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=follower REPLICAS=1 CONSTRAINTS='ttt';", false, ""}, {"ALTER TABLE t ALTER PARTITION p", false, ""}, - {"ALTER TABLE t ALTER PARTITION p ALTER PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=LEADER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ALTER PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=LEADER REPLICAS=1"}, + {"ALTER TABLE t ALTER PARTITION p ALTER PLACEMENT POLICY CONSTRAINTS='str' ROLE=LEADER REPLICAS=1", true, "ALTER TABLE `t` ALTER PARTITION `p` ALTER PLACEMENT POLICY CONSTRAINTS='str' ROLE=LEADER REPLICAS=1"}, {"ALTER TABLE t ALTER PARTITION p DROP PLACEMENT POLICY", true, "ALTER TABLE `t` ALTER PARTITION `p` DROP PLACEMENT POLICY"}, {"ALTER TABLE t ALTER PARTITION p DROP PLACEMENT POLICY ROLE=voter", true, "ALTER TABLE `t` ALTER PARTITION `p` DROP PLACEMENT POLICY ROLE=VOTER"}, - {"ALTER TABLE t ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ADD PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=LEADER REPLICAS=1"}, - {"ALTER TABLE t ALTER PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ALTER PLACEMENT POLICY CONSTRAINTS='+zone=zone1' ROLE=LEADER REPLICAS=1"}, - {"ALTER TABLE t ADD PLACEMENT POLICY CONSTRAINTS='ffff' ROLE=leader REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='gggg' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ADD PLACEMENT POLICY CONSTRAINTS='ffff' ROLE=LEADER REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='gggg' ROLE=LEADER REPLICAS=1"}, + {"ALTER TABLE t ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ADD PLACEMENT POLICY CONSTRAINTS='str' ROLE=LEADER REPLICAS=1"}, + {"ALTER TABLE t ALTER PLACEMENT POLICY CONSTRAINTS='str' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ALTER PLACEMENT POLICY CONSTRAINTS='str' ROLE=LEADER REPLICAS=1"}, + {"ALTER TABLE t ADD PLACEMENT POLICY CONSTRAINTS='str1' ROLE=leader REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='str2' ROLE=leader REPLICAS=1", true, "ALTER TABLE `t` ADD PLACEMENT POLICY CONSTRAINTS='str1' ROLE=LEADER REPLICAS=1, ADD PLACEMENT POLICY CONSTRAINTS='str2' ROLE=LEADER REPLICAS=1"}, // For create index statement {"CREATE INDEX idx ON t (a)", true, "CREATE INDEX `idx` ON `t` (`a`)"},