poco/Data/SQLParser
Matej Kenda f24547cdcf enh(Poco): Mark deprecated functionality with C++ attributes and resolve internal usage of deprecated functions (#4551)
* enh(poco): Replace deprecated comments with C++ deprecated attribute.

* enh(Poco): Replace some deprecated functionality in Poco sources. (#4426)

* enh(Poco): Replace more deprecated functionality in Poco sources. (#4426)

* fix(CMake): Variable BUILD_SHARED_LIBS must be defined properly to create valid binaries.

* enh: Code improvements done while resolving deprecated functionality (#4426)

* Un-deprecate LocalDateTme (#4426)

* enh(Poco): Replace usage of deprecated functionality with other functions/classes (#4426)

* chore(SSL): temporarily un-deprecate SSL-related functionality (#4426)

* chore(SSL): temporarily un-deprecate old MongoDB protocol functionality (#4426)

* enh(Poco): Minor Hash improvements (#4426)

* enh(Foundation): Compile deprecated hash tests only when POCO_TEST_DEPRECATED is enabled (#4426)

* enh(Net): Compile deprecated Socket::select functionality only when POCO_TEST_DEPRECATED is enabled (#4426)

* enh(Bonjour): Replace deprecated Socket::select with PollSet (#4426)

* enh(Poco): Introduce POCO_DEPRECATED macro to have the ability to disable deprecation warnings in applications (#4426)

* test(ODBC): add few asserts to testStoredProcedureDynamicVar

* fix(ODBC): rename DynamicAny -> DynamicVar in tests

* fix(ODBC): make Dignostics static members inline to prevent explicit instantiation warnings on windows

---------

Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2024-07-29 08:37:35 +02:00
..
benchmark fix(SQLParser): move to Data dir; add extradirs, remove vs 140,150 build scripts generation 2024-02-14 00:23:38 +01:00
src enh(Poco): Mark deprecated functionality with C++ attributes and resolve internal usage of deprecated functions (#4551) 2024-07-29 08:37:35 +02:00
test fix(SQLParser): move to Data dir; add extradirs, remove vs 140,150 build scripts generation 2024-02-14 00:23:38 +01:00
LICENSE fix(SQLParser): move to Data dir; add extradirs, remove vs 140,150 build scripts generation 2024-02-14 00:23:38 +01:00
Makefile fix(SQLParser): move to Data dir; add extradirs, remove vs 140,150 build scripts generation 2024-02-14 00:23:38 +01:00
README.md fix(SQLParser): move to Data dir; add extradirs, remove vs 140,150 build scripts generation 2024-02-14 00:23:38 +01:00

C++ SQL Parser

Build Status

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.

Usage

Note: You can also find a detailed usage description here.

To use the SQL parser in your own projects you simply have to follow these few steps.

  1. Download the latest release here
  2. Compile the library make to create libsqlparser.so
  3. (Optional, Recommended) Run make install to copy the library to /usr/local/lib/
  4. Run the tests make test to make sure everything worked
  5. Include the SQLParser.h from src/ (or from /usr/local/lib/hsql/ if you installed it) and link the library in your project
  6. 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::kStmtSelect)) {
            const auto* select = static_cast<const hsql::SelectStatement*>(statement);
            /* ... */
        }
    }
}

Quick Links:

How to Contribute

Developer Documentation

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.

License

HYRISE sql-parser is licensed as open source after the MIT License which is declared in the LICENSE file of this project.