perf(clickhouse): use planner defaults and temporal minmax
Relates to #320 (closed) Relates to #402
This lets ClickHouse pick its join strategy from server defaults and per-environment query settings instead of forcing hash joins from the client. It also makes table-level MergeTree settings part of ontology storage metadata, then enables temporal minmax indexes on the hottest date-heavy graph tables.
This is intended for the ClickHouse 26 rollout. The generated schema now emits add_minmax_index_for_temporal_columns = 1, so the schema migration should run only where that setting is available.
Changes
- Removed the client defaults for
join_algorithm = hashandquery_plan_join_swap_table = true. - Added ontology
storage.settingssupport for node tables and configured edge tables. - Enabled temporal minmax indexes for merge requests, work items, vulnerabilities, pipelines, deployments, jobs, and notes.
- Bumped
SCHEMA_VERSIONto 19 and regenerated graph DDL. - Documented that table-level storage settings are schema-versioned ontology metadata.
Validation
mise lint:codemise ontology:validatescripts/check-ddl-freshness.shcargo fmt --all -- --checkcargo test -p clickhouse-client --libcargo test -p ontology --libcargo test -p compiler --lib ddlcargo check -p clickhouse-client -p ontology -p compiler- Targeted docs: markdownlint, Vale, and lychee on
docs/design-documents/schema_management.md