[package]
name = "sochdb-query"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
description = "SochDB query engine (sync-first execution and vector query planning)"

[features]
default = []
# Experimental Volcano operator-tree executor (sochdb-query::executor). It is
# NOT on the live SQL path — the embedded/persistent path uses `SqlBridge` and
# the in-memory path uses the client `AstQueryExecutor`. The Volcano top-level
# (`execute_sql`/`execute_statement`) has zero call sites and only handles
# SELECT. Quarantined here so the default build ships a single coherent SQL
# surface. Enable with `--features experimental` to compile/iterate on it.
experimental = []

[dependencies]
sochdb-core = { version = "2.0.11", path = "../sochdb-core" }
sochdb-storage = { version = "2.0.11", path = "../sochdb-storage" }
sochdb-index = { version = "2.0.11", path = "../sochdb-index" }
ndarray = "0.15"
rayon = "1.10" # Parallel partitioned GROUP BY aggregation
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
moka = { workspace = true, features = ["sync"] }
tracing = { workspace = true }
once_cell = "1.19"
dirs = "5.0"
ring = { workspace = true }
# tokio removed - query engine uses sync storage layer
semver = { version = "1.0", features = ["serde"] }
rand = { workspace = true }
parking_lot = { workspace = true }
anyhow = { workspace = true }
async-trait = "0.1"
regex = "1.10"

[dev-dependencies]
tempfile = { workspace = true }
# Tokio removed - query engine tests are sync-first
