This is a Kotlin/JVM implementation of the PartiQL specification. PartiQL is based on SQL:1999 and has added support for working with schemaless hierarchical data. PartiQL’s extensions to SQL are easy to understand, treat nested data as first class citizens, and compose seamlessly with SQL.
Check out the PartiQL website for documentation, usage guides, and more!
Users of PartiQL should consider the PartiQL library to be stable. It has been leveraged within a number of Amazon internal systems and AWS products for multiple years. The behavior of the language itself is mostly stable.
All releases are published to Maven Central. For the most up-to-date version
of our library, please add the following to your build.gradle.kts
.
dependencies {
implementation("org.partiql:partiql-lang:1.+")
}
For more information on how to integrate this library (or a specific subproject) into your project, please follow the guidelines on the partiql-lang-kotlin documentation site under the PartiQL website.
Pre-requisite: Building this project requires Java 11+.
This project uses a git submodule to pull in partiql-tests. The easiest way to pull everything in is to clone the repository recursively:
$ git clone --recursive https://github.com/partiql/partiql-lang-kotlin.git
You can also initialize the submodules as follows:
$ git submodule update --init --recursive
To build this project, from the root directory execute:
./gradlew assemble
This will build the reference interpreter and test framework, then run all unit and integration tests.
$ tree -d -L 2 -I build -I src`
.
├── buildSrc Gradle multi-project build
├── lib
│ └── sprout IR codegen
├── partiql-ast PartiQL ast data structures and utilities
├── partiql-cli CLI & Shell application
├── partiql-coverage Code coverage library
├── partiql-eval PartiQL compiler
├── partiql-lang Top-level project depending on all subprojects
├── partiql-parser PartiQL parser
├── partiql-plan PartiQL plan data structures and utilities
├── partiql-planner PartiQL planner
├── partiql-spi Common interfaces: types, values, catalogs, functions, etc.
└── test
├── partiql-tests Conformance test data
└── partiql-tests-runner Conformance test runner
See CONTRIBUTING.
The works contained within this repository are licensed under the Apache 2.0 License.
See the LICENSE file.