Releases: johnedquinn/partiql-lang-jvm
Releases · johnedquinn/partiql-lang-jvm
v1-iondb-example
Adds an example implementation of a database of Ion files to explain how to use PartiQL's APIs
v1-plus-optimization
Description
Performance benchmarks for the newly optimized plus operator and the older minus operator.
Results
Benchmark Mode Cnt Score Error Units
PartiQLBenchmark.minusIntDynamicStatic avgt 20 0.150 ± 0.005 us/op
PartiQLBenchmark.minusIntStatic avgt 20 0.010 ± 0.001 us/op
PartiQLBenchmark.plusIntDynamicStatic avgt 20 0.081 ± 0.005 us/op
PartiQLBenchmark.plusIntStatic avgt 20 0.010 ± 0.001 us/op
Related
See partiql#1647.
v1-scan-table
Description
This is an experimental implementation of a SQL-style scan operator.
Benchmarking
Tables
- T1 = 20 columns x 100,000 rows (7.9 MB)
- T2 = 100 columns x 100,000 rows (39 MB)
- T3 = 1,000 columns x 100,000 rows (393 MB)
- T4 = 20 columns x 1,000,000 rows (79 MB)
- T5 = 1,000 columns x 1,000,000 rows (3.8 GB)
- T6 = 20 columns x 50,000,000 rows (3.8 GB)
Queries & Results
Query | Table(s) | Baseline (ms) | Optimized (ms) | Speedup |
---|---|---|---|---|
SELECT t."col200", t."col500", t."col900" FROM columnar.t5 AS t | T5 | 92439 | 21733 | 4.3 |
SELECT t."col200", t."col500", t."col900" FROM columnar.t3 AS t | T3 | 9313 | 2346 | 4.0 |
SELECT t."col200", t."col500", t."col900" FROM columnar.t5 AS t WHERE t."col100" > 50 AND t."col750" < 400 | T5 | 62608 | 949 | 66.0 |
SELECT t."col200", t."col500", t."col900" FROM columnar.t5 AS t WHERE t."col200" > 50 AND t."col900" < 400 OR t."col500" > 999900 | T5 | 62076 | 910 | 68.2 |
SELECT t."col200", t."col500", t."col900" FROM columnar.t5 AS t WHERE (t."col200" % 10000) = 0 | T5 | 66298 | 793 | 83.6 |
SELECT t."col200", t."col500", t."col900" FROM columnar.t3 AS t WHERE t."col100" > 50 AND t."col750" < 400 | T3 | 6471 | 225 | 28.8 |
SELECT t."col5", t."col10", t."col15" FROM columnar.t1 AS t | T1 | 2219 | 2152 | 1.0 |
SELECT t."col5", t."col10", t."col15" FROM columnar.t4 AS t | T4 | 22502 | 21024 | 1.1 |
SELECT t."col5", t."col10", t."col15" FROM columnar.t1 AS t WHERE t."col1" < 100 OR t."col1" > 99900 | T1 | 318 | 154 | 2.1 |
SELECT t."col5", t."col10", t."col15" FROM columnar.t4 AS t WHERE t."col1" < 100 OR t."col1" > 999900 | T4 | 1465 | 273 | 5.4 |
SELECT t."col5", t."col10", t."col15" FROM columnar.t4 AS t WHERE (t."col5" % 10) = 0 | T4 | 4450 | 2359 | 1.9 |
SELECT t."col5", t."col10", t."col15" FROM columnar.t4 AS t WHERE (t."col5" % 100) = 0 | T4 | 2223 | 490 | 4.5 |
SELECT t."col5", t."col10", t."col15" FROM columnar.t6 AS t WHERE (t."col15" % 1000000) = 0 | T6 | 58206 | 7848 | 7.4 |
AVERAGE | 27698.5 | 4450.66667 | 21.4 |
v0.12.1-create-value
Holds an experimental DDL syntax: CREATE VALUE
.
Details:
- Adds support for SHOW CATALOGS, SHOW CURRENT CATALOG, and SHOW CURRENT SCHEMA
- Adds support for showing tables, schemas, values.
- Adds support for setting catalog/schema
- Adds support for creating values and tables
- Adds support for querying values/tables
v0.12.1-create-function
Adds syntactical support for CREATE FUNCTION. Since this isn't a priority yet, I'm tagging this to avoid Git's garbage collector. I'll resurface these changes in the future.
See partiql#1180.
v0.10.0-arrow
This code shows how we can use Apache Arrow to produce a vectorized model of execution within PartiQL. This implementation is a personal experiment.