-
Notifications
You must be signed in to change notification settings - Fork 38
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
Exhaustive MySQL Parser #157
Open
adamziel
wants to merge
38
commits into
develop
Choose a base branch
from
recursive-descent-parser
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+208,167
−0
Open
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
ccc341b
MySQL AST Parser
adamziel 78fdf69
Fix parser overriding parts of the parse tree as it constructs them.
adamziel c8652d5
Output ParseTree using a class, not an array for much simpler processing
adamziel 137d6ca
Manually factor left recursion into right recursion in the grammar fi…
adamziel 0a2440c
Explore support for SQL_CALC_FOUND_ROWS
adamziel 0406d71
Support VALUES() call
adamziel 87573f2
Extract queries from MySQL test suite and test the parser against them
JanJakes 9629702
Implement handling for manually added lexer symbols
JanJakes d63bc6e
Fix passing nulls to "ctype_" functions
JanJakes 8e7e2e8
Add support for hex format x'ab12', X'ab12', and bin format x'01' and…
JanJakes ebcc17e
Fix wrong MySQL version conditions (AI hallucinations)
JanJakes 1551b0e
Implement the checkCharset() placeholder function
JanJakes cdd84b4
Document manual grammar factoring
JanJakes f50b515
Fix "alterOrderList" that has a wrong definition in the original grammar
JanJakes e267f67
Fix "createUser" that was incorrectly converted from ANTLR to EBNF
JanJakes cd543af
Fix "castType" that was incomplete in the original grammar
JanJakes 135f29f
Fix "SELECT ... WHERE ... INTO @var" using a negative lookahead
JanJakes 27524dd
Fix "EXPLAIN FORMAT=..." by reordering grammar rules
JanJakes 069342f
Fix special "WINDOW" and "OVER" cases by adjusting grammar rules
JanJakes 9bfc977
Fix "GRANT" and "REVOKE" by adjusting grammar rules to solve conflicts
JanJakes ca4de77
Use ebnfutils to dump grammar conflicts
JanJakes cd3504d
Implement the determineFunction() placeholder function, unify SQL modes
JanJakes 81bbde0
Fix processing NOW() synonyms in lexer
JanJakes 71292fb
Match mysqltest commands case-insensitively
JanJakes 1ab3723
Add a script to test lexer on all the testing queries
JanJakes 42ffc1b
Replace lexer switch/case and function calls with lookup tables
JanJakes 01241b8
Fix unicode handling when extracting test queries
JanJakes f5266f1
Fix identifier matching, improve lexer performance by ~25%
JanJakes a2ac60b
Unify charset matching with identifier matching, remove non-existent …
JanJakes 90e2af6
Fix quoted text/identifier matching, improve lexer performance by ~10%
JanJakes dfcad3e
Remove dependency on ctype, improve lexer performance by ~4%
JanJakes 0f23dd3
Determine token names lazily, reduce LOC to < 3000, improve lexer per…
JanJakes 6bb8ff9
Finish manual token pass, use MySQL Workbench token IDs, add comments
JanJakes ec55c10
Fix wrong token type
JanJakes 21f3f16
Inline some simple single-use methods, remove unused methods
JanJakes b4f0e08
Move token iteration loop outside nextToken() method
JanJakes f658751
Fix and simplify lookahead logic, improve lexer performance by ~6%
JanJakes 4eee991
Fix date and time literals by reordering grammar rules
JanJakes File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great comments!