Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tisonkun/parser
A MySQL Compatible SQL Parser
https://github.com/tisonkun/parser
Last synced: 2 days ago
JSON representation
A MySQL Compatible SQL Parser
- Host: GitHub
- URL: https://github.com/tisonkun/parser
- Owner: tisonkun
- License: apache-2.0
- Fork: true (pingcap/parser)
- Created: 2021-04-14T14:06:26.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-07-20T07:17:17.000Z (about 3 years ago)
- Last Synced: 2024-06-20T12:07:17.456Z (4 months ago)
- Homepage:
- Size: 52 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Parser - A MySQL Compatible SQL Parser
[![Go Report Card](https://goreportcard.com/badge/github.com/pingcap/parser)](https://goreportcard.com/report/github.com/pingcap/parser)
[![CircleCI Status](https://circleci.com/gh/pingcap/parser.svg?style=shield)](https://circleci.com/gh/pingcap/parser)
[![GoDoc](https://godoc.org/github.com/pingcap/parser?status.svg)](https://godoc.org/github.com/pingcap/parser)
[![codecov](https://codecov.io/gh/pingcap/parser/branch/master/graph/badge.svg)](https://codecov.io/gh/pingcap/parser)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](https://github.com/pingcap/parser/blob/master/parser.y) and [hintparser.y](https://github.com/pingcap/parser/blob/master/hintparser.y).
- Extensible: adding a new syntax requires only a few lines of Yacc and Golang code changes. As an example, see [PR-680](https://github.com/pingcap/parser/pull/680/files).
- 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](https://github.com/pingcap/parser/blob/master/docs/quickstart.md).
## 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](https://github.com/pingcap/parser/issues)
- [Stack Overflow](https://stackoverflow.com/questions/tagged/tidb)
- [User Group (Chinese)](https://asktug.com/)If you have any questions, feel free to discuss in sig-ddl. Here are the steps to join:
1. Join [TiDB Slack community](https://pingcap.com/tidbslack/), and then
2. Join [sig-ddl Slack channel](https://slack.tidb.io/invite?team=tidb-community&channel=sig-ddl&ref=github_sig).If you want to join as a special interest group member, see [DDL Special Interest Group](https://github.com/pingcap/community/tree/master/special-interest-groups/sig-ddl).
## 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](https://github.com/pingcap/tidb)
- [XiaoMi/soar](https://github.com/XiaoMi/soar)
- [XiaoMi/Gaea](https://github.com/XiaoMi/Gaea)
- [sql-machine-learning/sqlflow](https://github.com/sql-machine-learning/sqlflow)
- [nooncall/shazam](https://github.com/nooncall/shazam)## Contributing
Contributions are welcomed and greatly appreciated. See [Contribution Guide](https://github.com/pingcap/community/blob/master/contributors/README.md) for details on submitting patches and the contribution workflow.
Here is how to [update parser for TiDB](https://github.com/pingcap/parser/blob/master/docs/update-parser-for-tidb.md).
## Acknowledgments
Thanks [cznic](https://github.com/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](https://docs.pingcap.com/tidb/stable)
- [简体中文](https://docs.pingcap.com/zh/tidb/stable)
- TiDB blog- [English](https://pingcap.com/blog/)
- [简体中文](https://pingcap.com/blog-cn/)- [TiDB Monthly](https://pingcap.com/weekly/)