The goal of this project is to build a Golang parser that is fully compatible with MySQL syntax, easy to extend, and high performance. Currently, features supported by parser are as follows:
- Highly compatible with MySQL: it supports almost all features of MySQL. For the complete details, see parser.y and hintparser.y.
- Extensible: adding a new syntax requires only a few lines of Yacc and Golang code changes. As an example, see PR-680.
- Good performance: the parser is generated by goyacc in a bottom-up approach. It is efficient to build an AST tree with a state machine.
It's fork from TiDB Parser, we add some change for our scene.