Skip to content

Rewrite special comment parser (#711)#810

Merged
tangenta merged 2 commits into
pingcap:release-3.1from
tangenta:release-3.1-revamp-sp-commments
Apr 20, 2020
Merged

Rewrite special comment parser (#711)#810
tangenta merged 2 commits into
pingcap:release-3.1from
tangenta:release-3.1-revamp-sp-commments

Conversation

@tangenta
Copy link
Copy Markdown
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
Copy Markdown

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
Copy Markdown
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
Copy Markdown
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