update README

This commit is contained in:
Andy Grove 2018-09-03 10:55:46 -06:00
parent 4daa1a2827
commit a07bca3cf7

View file

@ -1,8 +1,14 @@
# SQL Parser
The goal of this project is to build a SQL lexer and parser capable of parsing ANSI SQL:2011 (or 2016 if I can get access to the specification for free).
The main goal of this project is to build a SQL lexer and parser capable of parsing ANSI SQL:2011 (or 2016 if I can get access to the specification for free).
The current code is capable of parsing some simple SELECT and CREATE TABLE statements.
A secondary goal is to make it easy for others to use this library as a foundation for building custom SQL parsers for vendor-specific dialects.
## Example
The current code is capable of parsing some trivial SELECT and CREATE TABLE statements.
## Example
```rust
let sql = "SELECT a, b, 123, myfunc(b) \
@ -27,11 +33,11 @@ This parser is implemented using the [Pratt Parser](https://tdop.github.io/) des
I am a fan of this design pattern over parser generators for the following reasons:
- Parsing code is simple to write and can be concise and elegant (this is far from true for this current implementation unfortunately, but I hope to fix that using some macros)
- Code is simple to write and can be concise and elegant (this is far from true for this current implementation unfortunately, but I hope to fix that using some macros)
- Performance is generally better than code generated by parser generators
- Debugging is much easier with hand-written code
- It is far easier to extend and make dialect-specific extensions compared to using a parser generator
## Contributing
Please get involved in helping build first class SQL support in Rust by filing issues for missing features (there are plenty!) and create pull requests.
Contributors are welcome! Please see the [current issues](https://github.com/andygrove/sqlparser-rs/issues) and feel free to file more!