diff --git a/parser/parser.y b/parser/parser.y index 38460fa0bdccc..9985bbafcf4bd 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -1012,6 +1012,10 @@ AlterTableSpec: } } +LockClauseOpt: + {} +| LockClause {} + LockClause: "LOCK" eq "NONE" { @@ -1533,7 +1537,7 @@ NumLiteral: CreateIndexStmt: - "CREATE" CreateIndexStmtUnique "INDEX" Identifier IndexTypeOpt "ON" TableName '(' IndexColNameList ')' IndexOptionList + "CREATE" CreateIndexStmtUnique "INDEX" Identifier IndexTypeOpt "ON" TableName '(' IndexColNameList ')' IndexOptionList LockClauseOpt { var indexOption *ast.IndexOption if $11 != nil { diff --git a/parser/parser_test.go b/parser/parser_test.go index ba33f69378920..1ad6ea494113b 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -1548,6 +1548,7 @@ func (s *testParserSuite) TestDDL(c *C) { {"CREATE INDEX idx ON t (a) USING HASH", true}, {"CREATE INDEX idx ON t (a) COMMENT 'foo'", true}, {"CREATE INDEX idx ON t (a) USING HASH COMMENT 'foo'", true}, + {"CREATE INDEX idx ON t (a) LOCK=NONE", true}, {"CREATE INDEX idx USING BTREE ON t (a) USING HASH COMMENT 'foo'", true}, {"CREATE INDEX idx USING BTREE ON t (a)", true},