https://github.com/gwenn/sqlpop
SQL parser (as understood by SQLite)
https://github.com/gwenn/sqlpop
sql-parser
Last synced: 11 months ago
JSON representation
SQL parser (as understood by SQLite)
- Host: GitHub
- URL: https://github.com/gwenn/sqlpop
- Owner: gwenn
- Created: 2016-05-16T10:20:45.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-02-22T10:16:03.000Z (about 1 year ago)
- Last Synced: 2025-03-30T22:11:14.337Z (11 months ago)
- Topics: sql-parser
- Language: Rust
- Homepage:
- Size: 123 KB
- Stars: 35
- Watchers: 2
- Forks: 9
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SQLPOP
[](https://github.com/gwenn/sqlpop/actions)
[](https://crates.io/crates/sqlpop)
[](https://docs.rs/sqlpop)
[](https://deps.rs/repo/github/gwenn/sqlpop)
SQL parser (as understood by SQLite)
* [LALRPOP and custom lexer](https://github.com/nikomatsakis/lalrpop/issues/39)
* [SQLite tokenizer](http://www.sqlite.org/src/artifact?ci=trunk&filename=src/tokenize.c)
* [SQLite parser](http://www.sqlite.org/src/artifact?ci=trunk&filename=src/parse.y)
* [SQLite syntax diagrams](https://www.sqlite.org/syntaxdiagrams.html)
* [SQLite syntax diagram data](http://www.sqlite.org/docsrc/doc/tip/art/syntax/bubble-generator-data.tcl?mimetype=text/plain)
Currently, only the lexer is complete and tested.
The parser is almost complete (see [LALRPOP issues](https://github.com/nikomatsakis/lalrpop/issues/156)) but does not support recent SQLite features (like [UPSERT](https://sqlite.org/lang_UPSERT.html), [RENAME COLUMN](https://sqlite.org/lang_altertable.html), [Window functions](https://sqlite.org/windowfunctions.html)).