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 = hash and query_plan_join_swap_table = true.
  • Added ontology storage.settings support for node tables and configured edge tables.
  • Enabled temporal minmax indexes for merge requests, work items, vulnerabilities, pipelines, deployments, jobs, and notes.
  • Bumped SCHEMA_VERSION to 19 and regenerated graph DDL.
  • Documented that table-level storage settings are schema-versioned ontology metadata.
Validation
  • mise lint:code
  • mise ontology:validate
  • scripts/check-ddl-freshness.sh
  • cargo fmt --all -- --check
  • cargo test -p clickhouse-client --lib
  • cargo test -p ontology --lib
  • cargo test -p compiler --lib ddl
  • cargo check -p clickhouse-client -p ontology -p compiler
  • Targeted docs: markdownlint, Vale, and lychee on docs/design-documents/schema_management.md

Merge request reports

Loading