Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 13 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,24 @@
# Parser - A MySQL Compatible SQL Parser
# Marino - 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)
## TODO

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/tidb/blob/master/pkg/parser/parser.y) and [hintparser.y](https://github.com/pingcap/tidb/blob/master/pkg/parser/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/tidb/blob/master/pkg/parser/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/tidb/issues)
- [Stack Overflow](https://stackoverflow.com/questions/tagged/tidb)
- [User Group (Chinese)](https://asktug.com/)
<!-- TODO: fill in fork-specific details (origin of the fork, scope of changes, maintainers, support channels, etc.) -->

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).
## About

## 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)
- [bytebase/bytebase](https://github.com/bytebase/bytebase)
- [kyleconroy/sqlc](https://github.com/kyleconroy/sqlc)
- [block/spirit](https://github.com/block/spirit)

## Contributing
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:

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.
- Highly compatible with MySQL: it supports almost all features of MySQL.
- Extensible: adding a new syntax requires only a few lines of Yacc and Golang code changes.
- 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.

## Acknowledgments

Thanks [cznic](https://github.com/cznic) for providing some great open-source tools.
Marino is a hard fork of [pingcap/parser](https://github.com/pingcap/parser),
the MySQL-compatible SQL parser developed as part of [TiDB](https://github.com/pingcap/tidb).
Huge thanks to the TiDB team and all the upstream contributors whose work this
project is built on.

## 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/)
Marino is under the Apache 2.0 license. See the LICENSE file for details.
Loading