Skip to content

Commit 3e80adb

Browse files
committed
Unreserved 8 keywords (#851)
* parser.y: unreserve 8 keywords * consistent_test: added an optional test to check against MySQL keywords
1 parent 4e23afb commit 3e80adb

File tree

7 files changed

+6283
-6181
lines changed

7 files changed

+6283
-6181
lines changed

consistent_test.go

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,46 +27,51 @@ import (
2727
var _ = Suite(&testConsistentSuite{})
2828

2929
type testConsistentSuite struct {
30+
content string
31+
32+
reservedKeywords []string
33+
unreservedKeywords []string
34+
notKeywordTokens []string
35+
tidbKeywords []string
3036
}
3137

32-
func (s *testConsistentSuite) TestKeywordConsistent(c *C) {
38+
func (s *testConsistentSuite) SetUpSuite(c *C) {
3339
_, filename, _, _ := runtime.Caller(0)
3440
parserFilename := path.Join(path.Dir(filename), "parser.y")
3541
parserFile, err := os.Open(parserFilename)
3642
c.Assert(err, IsNil)
3743
data, err := ioutil.ReadAll(parserFile)
3844
c.Assert(err, IsNil)
39-
content := string(data)
45+
s.content = string(data)
4046

4147
reservedKeywordStartMarker := "\t/* The following tokens belong to ReservedKeyword. Notice: make sure these tokens are contained in ReservedKeyword. */"
4248
unreservedKeywordStartMarker := "\t/* The following tokens belong to UnReservedKeyword. Notice: make sure these tokens are contained in UnReservedKeyword. */"
4349
notKeywordTokenStartMarker := "\t/* The following tokens belong to NotKeywordToken. Notice: make sure these tokens are contained in NotKeywordToken. */"
4450
tidbKeywordStartMarker := "\t/* The following tokens belong to TiDBKeyword. Notice: make sure these tokens are contained in TiDBKeyword. */"
4551
identTokenEndMarker := "%token\t<item>"
4652

47-
reservedKeywords := extractKeywords(content, reservedKeywordStartMarker, unreservedKeywordStartMarker)
48-
49-
unreservedKeywords := extractKeywords(content, unreservedKeywordStartMarker, notKeywordTokenStartMarker)
50-
51-
notKeywordTokens := extractKeywords(content, notKeywordTokenStartMarker, tidbKeywordStartMarker)
52-
53-
tidbKeywords := extractKeywords(content, tidbKeywordStartMarker, identTokenEndMarker)
53+
s.reservedKeywords = extractKeywords(s.content, reservedKeywordStartMarker, unreservedKeywordStartMarker)
54+
s.unreservedKeywords = extractKeywords(s.content, unreservedKeywordStartMarker, notKeywordTokenStartMarker)
55+
s.notKeywordTokens = extractKeywords(s.content, notKeywordTokenStartMarker, tidbKeywordStartMarker)
56+
s.tidbKeywords = extractKeywords(s.content, tidbKeywordStartMarker, identTokenEndMarker)
57+
}
5458

59+
func (s *testConsistentSuite) TestKeywordConsistent(c *C) {
5560
for k, v := range aliases {
56-
c.Assert(k != v, IsTrue)
61+
c.Assert(k, Not(Equals), v)
5762
c.Assert(tokenMap[k], Equals, tokenMap[v])
5863
}
59-
keywordCount := len(reservedKeywords) + len(unreservedKeywords) + len(notKeywordTokens) + len(tidbKeywords)
64+
keywordCount := len(s.reservedKeywords) + len(s.unreservedKeywords) + len(s.notKeywordTokens) + len(s.tidbKeywords)
6065
c.Assert(len(tokenMap)-len(aliases), Equals, keywordCount-len(windowFuncTokenMap))
6166

62-
unreservedCollectionDef := extractKeywordsFromCollectionDef(content, "\nUnReservedKeyword:")
63-
c.Assert(unreservedKeywords, DeepEquals, unreservedCollectionDef)
67+
unreservedCollectionDef := extractKeywordsFromCollectionDef(s.content, "\nUnReservedKeyword:")
68+
c.Assert(s.unreservedKeywords, DeepEquals, unreservedCollectionDef)
6469

65-
notKeywordTokensCollectionDef := extractKeywordsFromCollectionDef(content, "\nNotKeywordToken:")
66-
c.Assert(notKeywordTokens, DeepEquals, notKeywordTokensCollectionDef)
70+
notKeywordTokensCollectionDef := extractKeywordsFromCollectionDef(s.content, "\nNotKeywordToken:")
71+
c.Assert(s.notKeywordTokens, DeepEquals, notKeywordTokensCollectionDef)
6772

68-
tidbKeywordsCollectionDef := extractKeywordsFromCollectionDef(content, "\nTiDBKeyword:")
69-
c.Assert(tidbKeywords, DeepEquals, tidbKeywordsCollectionDef)
73+
tidbKeywordsCollectionDef := extractKeywordsFromCollectionDef(s.content, "\nTiDBKeyword:")
74+
c.Assert(s.tidbKeywords, DeepEquals, tidbKeywordsCollectionDef)
7075
}
7176

7277
func extractMiddle(str, startMarker, endMarker string) string {

go.mod1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/cznic/sortutil v0.0.0-20181122101858-f5f958428db8
88
github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186
99
github.com/cznic/y v0.0.0-20170802143616-045f81c6662a
10+
github.com/go-sql-driver/mysql v0.0.0-20170715192408-3955978caca4
1011
github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8
1112
github.com/pingcap/errors v0.11.4
1213
github.com/pingcap/tidb v0.0.0-20190321025159-e8299209340c

go.sum1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
5151
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
5252
github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E=
5353
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
54+
github.com/go-sql-driver/mysql v0.0.0-20170715192408-3955978caca4 h1:3DFRjZdCDhzvxDf0U6/1qAryzOqD7Y5iAj0DJRRl1bs=
5455
github.com/go-sql-driver/mysql v0.0.0-20170715192408-3955978caca4/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
5556
github.com/gogo/protobuf v0.0.0-20180717141946-636bf0302bc9/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
5657
github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=

0 commit comments

Comments
 (0)