This repository has been moved to https://github.com/pingcap/tidb/tree/master/pkg/parser.
Parser - A MySQL Compatible SQL Parser Go Report Card CircleCI Status GoDoc codecov
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. How to use it Please read the quickstart.
Future Support more MySQL syntax Optimize the code structure, make it easier to extend Improve performance and benchmark Improve the quality of code and comments Getting Help GitHub Issue Stack Overflow User Group (Chinese) If you have any questions, feel free to discuss in sig-ddl. Here are the steps to join:
Join TiDB Slack community, and then Join sig-ddl Slack channel. Users These projects use this parser. Please feel free to extend this list if you found you are one of the users but not listed here:
pingcap/tidb XiaoMi/soar XiaoMi/Gaea sql-machine-learning/sqlflow nooncall/shazam bytebase/bytebase kyleconroy/sqlc Contributing Contributions are welcomed and greatly appreciated. See Contribution Guide for details on submitting patches and the contribution workflow.
Acknowledgments Thanks cznic for providing some great open-source tools.
License Parser is under the Apache 2.0 license. See the LICENSE file for details.
More resources TiDB documentation
English 简体中文 TiDB blog
English 简体中文