Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite special comment parser (#711) #810

Merged

Conversation

tangenta
Copy link
Contributor

Cherry-pick #711, #562 and #586.

* 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()
@codecov
Copy link

codecov bot commented Apr 14, 2020

Codecov Report

Merging #810 into release-3.1 will decrease coverage by 0.07%.
The diff coverage is 81.59%.

@@               Coverage Diff               @@
##           release-3.1     #810      +/-   ##
===============================================
- Coverage        64.65%   64.57%   -0.08%     
===============================================
  Files               31       33       +2     
  Lines            11211    11438     +227     
===============================================
+ Hits              7248     7386     +138     
- Misses            3552     3628      +76     
- Partials           411      424      +13     

Copy link
Contributor

@kennytm kennytm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@kennytm kennytm added the status/LGT1 LGT1 label Apr 14, 2020
Copy link
Contributor

@AilinKid AilinKid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM ptal @bb7133

@AilinKid AilinKid added status/LGT2 LGT2 and removed status/LGT1 LGT1 labels Apr 20, 2020
@tangenta tangenta merged commit 1679ace into pingcap:release-3.1 Apr 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants