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.
2014-11-10 01:48:33 +01:00
It is developed for integration in hyrise (https://github.com/hyrise/hyrise), but can be used in other environments as well.
2014-10-31 18:54:00 +01:00
2014-11-10 01:48:33 +01:00
### General Usage
2014-10-31 18:54:00 +01:00
**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/` .
2014-11-29 13:29:24 +01:00
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. See `hyrise/src/lib/access/sql/SQLQueryParser.cpp` for how it's used in Hyrise.
2014-10-31 18:54:00 +01:00
2014-12-03 16:32:56 +01:00
### Run tests
To execute all tests run: `./run_tests.sh` .
2014-11-29 13:29:24 +01:00
### Update in Hyrise
2014-11-10 01:48:33 +01:00
2014-11-29 13:29:24 +01:00
Run `./deploy_to_hyris.sh path/to/hyrise` to update the SQL parser within Hyrise.
2014-11-10 01:48:33 +01:00
2014-11-29 13:29:24 +01:00
### Capabilities (Can and Can't do)
2014-11-10 01:48:33 +01:00
2014-11-29 13:29:24 +01:00
**Can**
2014-11-29 13:35:14 +01:00
* Single select statements
2014-11-29 13:29:24 +01:00
* Join expressions
* Create tables
* Insert statements
2014-11-29 13:35:14 +01:00
* Delete/Truncate statements
2014-11-10 01:48:33 +01:00
2014-11-29 13:29:24 +01:00
**Can't (yet)**
2014-11-29 13:35:14 +01:00
* Having clause
2014-11-29 13:29:24 +01:00
* Update statements
2014-11-29 13:35:14 +01:00
* Union clauses
2014-11-29 13:29:24 +01:00
* Create anything other than tables
2014-11-29 13:35:14 +01:00
* Alter/Rename statements