Skip to content

BerlinMOD benchmark: run the single canonical query suite, drop per-tool copies#202

Open
estebanzimanyi wants to merge 1 commit into
mainfrom
consolidate/berlinmod-canonical-queries
Open

BerlinMOD benchmark: run the single canonical query suite, drop per-tool copies#202
estebanzimanyi wants to merge 1 commit into
mainfrom
consolidate/berlinmod-canonical-queries

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

The BerlinMOD benchmark now runs the one canonical query suite shared, unchanged, by all three DB tools (MobilityDB / MobilityDuck / MobilitySpark) — vendored as the benchmark/BerlinMOD/suite git submodule (berlinmod-portability: q01..q17 + qrt, pure portable SQL).

No per-tool adaptation

The query files are pure canonical SQL. The DuckDB-specific output handling (.mode csv / .output, EXPLAIN ANALYZE) is applied by run_queries.py in Python, not embedded in the SQL. The 17 local query_N.sql + 17 explain/ copies (which embedded .mode/.output — the adaptation) are removed, so there are no stale local copies to drift.

Follow-ups (separate, noted not done here)

  • Single-source the schema/load onto the canonical schema.sql (the sql/load/ scripts still create a local schema).
  • Running the benchmark needs MEOS pin ≥ 2026-06-14d for the th3 prefilter naming the canonical q02/q04/q11 use (the in-flight bump/meos-pin-2026-06-14c re-points to 14d).

After clone: git submodule update --init benchmark/BerlinMOD/suite.

The benchmark now runs the one canonical BerlinMOD suite shared unchanged
by all three DB tools — vendored as the berlinmod/suite git submodule
(estebanzimanyi/berlinmod-portability: q01..q17 + qrt, pure portable SQL).

run_queries.py reads the canonical SQL and applies the DuckDB-specific
output handling (.mode csv / .output, EXPLAIN ANALYZE) in the harness, in
Python — there is NO per-tool adaptation in the query files.  The 17
local query_N.sql + 17 explain copies (which embedded .mode/.output) are
removed.

Follow-up (separate): single-source the schema/load onto the canonical
schema.sql, and the benchmark run needs MEOS pin >= 2026-06-14d for the
th3 prefilter naming the canonical queries use.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant