This is a SQL Parser for C++. It parses the given SQL query into C++ objects. It has been developed for integration in Hyrise, but can be used perfectly well in other environments as well.
In March 2015 we've also written a short paper outlining discussing some development details and the integration into our database Hyrise. You can find the paper here.
Note: You can also find a detailed usage description at this blog post.
Requirements:
- gcc 4.8+ (or clang 3.4+)
To use the SQL parser in your own projects you simply have to follow these few steps. The only requirement for is gcc 4.8+. Older versions of gcc/clang might also work, but are untested.
- Download the latest release here
- Compile the library
make
to createlibsqlparser.so
- (Optional, Recommended) Run
make install
to copy the library to/usr/local/lib/
- Run the tests
make test
to make sure everything worked - Include the
SQLParser.h
fromsrc/
(or from/usr/local/lib/hsql/
if you installed it) and link the library in your project - Take a look at the example project here
#include "hsql/SQLParser.h"
/* ... */
{
// Basic Usage Example
const std::string query = "...";
hsql::SQLParserResult result;
hsql::SQLParser::parse(query, &result);
if (result.isValid() && result.size() > 0) {
const hsql::SQLStatement* statement = result.getStatement(0);
if (statement.isType(hsql::SelectStatement)) {
const hsql::SelectStatement* select = (const hsql::SelectStatement*) statement;
/* ... */
}
}
}
Quick Links:
We strongly encourage you to contribute to this project! If you want to contribute to this project there are several options. If you've noticed a bug or would like an improvement let us know by creating a new issue. If you want to develop a new feature yourself or just improve the quality of the system, feel free to fork the reposistory and implement your changes. Open a pull request as soon as your done and we will look over it. If we think it's good then your pull request will be merged into this repository.
HYRISE sql-parser is licensed as open source after the OpenSource "Licence of the Hasso-Plattner Institute" declared in the LICENSE file of this project.
The following people contributed to HYRISE sql-parser in various forms.