* lexer: replace version comments with feature-ids mechanism
* tests: retain the original version digit test
* fix scanVersionDigits
* add SpecialCommentsController to decide what comments can be parsed
* only ignore comments with unsupported feature-id
* remove debug log
* add junit test of database encrption
* *: Add warn when database encrypting
* *: add warn of database encryption
* Parser:Database encryption
* Parser: Database encryption ignores case
* *:add unit test of database encryption
* *: Fallback to master version
* parse:More universal implementation
* parser: support table Encryption
* parser:avoid several type conversion
* lexer: added a function to scan version digits
* lexer: removed special comment scanner
Instead, simply strip off '/*!' and the pairing '*/'.
Temporarily disabled handling of /*+ ... */
* lexer: support collecting the entire /*+ ... */ as a single token
This new token has type `hintComment`. The actual hint will be parsed
lazily.
* lexer,yy_parser: move lastErrorAsWarn() from Parser into Scanner
* goyacc: do not allow conflict, support changing parser type name
change the "DO NOT EDIT" line to fit the Go standard
* parser,hintparser: created a new parser just for parsing optimizer hints
deleted all optimizer hint rules from parser.go
refactor the Makefile to support building both parsers (also deleted some
outdated fixup of *parser.go)
* lexer: fix comment parser
* codecov: don't wait for integration test before showing the coverage
* lexer: fix comment parsing again
* hintparser: TiDB still expects `HASH_JOIN(@qb1 foo@qb2)` to be valid :(
* parser,hintparser: provide the true line/column offset in the warnings
cache the hintparser in the main parser to avoid repeated allocation
* lexer: delete unused sqlOffsetInComment()
* Add charset validation in pattern `CharsetName`, and use it in syntax `CONVERT(expr USING transcoding_name)` and `CHAR(N USING charset_name)`.
* Modify `yyLexer` interface to return different types of error.
Every `ast.Statement` needs to set flag before use, set the flag in parse function,
so we don't need to set it somewhere else and won't forget to do it.
introduce a handwriten lexer, which should be better in performance and support UTF8.
it's still not used as default one, a switch is provided by specifying -newlexer=true in tidb-server.