[parser] *: remove redundant checks (#965)

This commit is contained in:
xhe
2020-08-07 10:23:21 +08:00
committed by Ti Chi Robot
parent 691be56704
commit 25ef3fa701
3 changed files with 17 additions and 41 deletions

View File

@ -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
}

View File

@ -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
}

View File

@ -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`)"},