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:22:59 +01:00
|
|
|
**so far missing features, that are being worked on:**
|
|
|
|
* Join Statements
|
|
|
|
* Limit Offset
|
|
|
|
* Having
|
|
|
|
* Order By multiple columns
|
2014-11-04 10:22:06 +01:00
|
|
|
* Distinct
|
2014-11-04 00:22:59 +01:00
|
|
|
|
|
|
|
## Language Progress Overview
|
|
|
|
|
|
|
|
* Select Statements: **Mostly**
|
2014-11-04 10:22:06 +01:00
|
|
|
* Selection List: **Mostly** (column names, literals, expressions, functions... DISTINCT is missing)
|
2014-11-04 00:22:59 +01:00
|
|
|
* 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**
|
|
|
|
* Join Tables: **In Progress**
|
|
|
|
* Join Types: **In Progress**
|
|
|
|
* Join Condition: **In Progress**
|
|
|
|
* Insert Statements: _Planned_
|
|
|
|
* Delete Statements: _Planned_
|
|
|
|
* Create Statements: _Planned_
|
2014-11-04 00:17:32 +01:00
|
|
|
|