v1.4.0
PartiQL Kotlin v1.4.0
We're excited to announce PartiQL Kotlin v1.4.0, which introduces thread-safe, cacheable execution plans — enabling safe concurrent query execution from a single compiled plan.
Highlights
Thread-Safe Execution Plans
Plans compiled via PartiQLCompiler.compile(plan, mode) now support concurrent execution across threads. The new PartiQLVM.execute() API builds a fresh operator tree per invocation with no shared mutable state — compile once, execute everywhere.
Key additions:
PartiQLVMandExecutionPlanfor thread-safe query executionExecutionCataloginterface for providing table data at execution time via integer-referenced lookupsSymbolTablemapping plan-assigned IDs to catalog/table namesPartiQLPlanner.builder().useRefs()to opt into ref-based table nodes
CLI Formatting (partiql fmt)
A new fmt subcommand pretty-prints PartiQL statements with width-aware formatting — useful for standardizing query style across a codebase.
Experimental MAP Type Support
Initial experimental interfaces to support the MAP data type have been added as an experimental feature. This work is slated to result in full support in a future minor version release.
Migration
The following APIs are now deprecated in favor of the thread-safe alternatives:
Statement→ usePartiQLVM.execute()withExecutionPlanPartiQLCompiler.prepare()→ usecompile()+PartiQLVMRexTable→ useRexTableRefwithuseRefs()Strategy.apply()→ overrideapplyFactory()
What's Changed
- feat: add partiql fmt subcommand by @XuechunHHH in #1917
- Add
MAPtype api in PartiQL by @xd1313113 in #1916 - feat: thread-safe cacheable execution plans by @johnedquinn in #1924
Full Changelog: v1.3.14...v1.4.0