From 81a3ba602a4dee62717617c1135ab769169ef3c7 Mon Sep 17 00:00:00 2001 From: Shen Li Date: Sun, 20 Nov 2016 22:44:13 +0800 Subject: [PATCH] parser: support select t.ReservedKeyword from t; (#2039) For example "select t.desc from t;" --- parser/parser.y | 4 ++-- parser/parser_test.go | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/parser/parser.y b/parser/parser.y index d3f490f7bb8c1..410eb40feb986 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -941,11 +941,11 @@ ColumnName: { $$ = &ast.ColumnName{Name: model.NewCIStr($1)} } -| Identifier '.' Identifier +| Identifier '.' IdentifierOrReservedKeyword { $$ = &ast.ColumnName{Table: model.NewCIStr($1), Name: model.NewCIStr($3)} } -| Identifier '.' Identifier '.' Identifier +| Identifier '.' Identifier '.' IdentifierOrReservedKeyword { $$ = &ast.ColumnName{Schema: model.NewCIStr($1), Table: model.NewCIStr($3), Name: model.NewCIStr($5)} } diff --git a/parser/parser_test.go b/parser/parser_test.go index 1966ba01b7985..5820dc26b5821 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -69,6 +69,10 @@ func (s *testParserSuite) TestSimple(c *C) { src = fmt.Sprintf("SELECT * FROM %s.desc", kw) _, err = parser.ParseOneStmt(src, "", "") c.Assert(err, IsNil, Commentf("source %s", src)) + + src = fmt.Sprintf("SELECT t.%s FROM t", kw) + _, err = parser.ParseOneStmt(src, "", "") + c.Assert(err, IsNil, Commentf("source %s", src)) } // Testcase for unreserved keywords