Skip to content

partiql/partiql-lang-kotlin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Maven Central License CI Build codecov

PartiQL Lang Kotlin

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.

About

Check out the PartiQL website for documentation, usage guides, and more!

Status

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.

Using In Your Project

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.

Building

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.

Directory Structure

$ 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

Contributing

See CONTRIBUTING.

License

The works contained within this repository are licensed under the Apache 2.0 License.

See the LICENSE file.