2014-10-24 17:37:03 +02:00
|
|
|
SQL Parser (C++)
|
2014-10-09 01:27:56 +02:00
|
|
|
==========
|
2014-10-24 17:37:03 +02:00
|
|
|
|
|
|
|
This is a SQL Parser for C++. It parses the given SQL query into C++ objects.
|
|
|
|
It is developed for integration in hyrise (https://github.com/hyrise/hyrise).
|
2014-10-31 18:54:00 +01:00
|
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
**Prerequisites:**
|
|
|
|
* bison (https://www.gnu.org/software/bison/)
|
|
|
|
* flex (http://flex.sourceforge.net/)
|
|
|
|
|
|
|
|
To create the full parser code run `make build`. The parser library code is created in `build/`.
|
|
|
|
|
|
|
|
To use the SQL Parser in your own code, you only need to include `SQLParser.h` and build+link all the source files from the parser with your project.
|
|
|
|
|
2014-11-04 00:17:32 +01:00
|
|
|
## Language Progress
|
|
|
|
|
|
|
|
* Select Statements: Mostly
|
|
|
|
* Selection List: Full (column names, literals, expressions, functions...)
|
|
|
|
* From: Full (table names, select statements, cross product of each)
|
|
|
|
* Where: Mostly (some special operators might not be supported yet)
|
|
|
|
* Group By: Partial (Having is missing)
|
|
|
|
* Order By: Partial (can only specify one column to sort by)
|
|
|
|
* Limit: Partial (no offset can be specified)
|
|
|
|
* Join Statements: In Progress
|
|
|
|
* Insert Statements: Planned
|
|
|
|
* Delete Statements: Planned
|
|
|
|
* Create Statements: Planned
|
|
|
|
|