1-- Loads the stress run records (JSONL written by internal/stress/benchrec)2-- into a table named results. The same columns are the stress_results3-- table in ClickHouse (deploy/observability/clickhouse/init.sql).4--5-- Set the file first: SET VARIABLE results = '.deps/stress/results/runs.jsonl';67CREATE OR REPLACE TEMP TABLE results AS8SELECT *9FROM read_json(getvariable('results'),10 format = 'newline_delimited',11 columns = {12 run_id: 'VARCHAR', ts: 'TIMESTAMP', git_sha: 'VARCHAR', git_dirty: 'BOOLEAN',13 go_version: 'VARCHAR', goos: 'VARCHAR', goarch: 'VARCHAR', cpu: 'VARCHAR', host: 'VARCHAR',14 pkg: 'VARCHAR', name: 'VARCHAR', procs: 'INTEGER', n: 'BIGINT',15 ns_op: 'DOUBLE', b_op: 'DOUBLE', allocs_op: 'DOUBLE', mb_s: 'DOUBLE',16 metrics: 'MAP(VARCHAR, DOUBLE)'17 });1819-- Durations in readable units.20CREATE OR REPLACE TEMP MACRO fmt_ns(ns) AS21 CASE22 WHEN ns IS NULL THEN ''23 WHEN ns >= 1e9 THEN printf('%.2f s', ns / 1e9)24 WHEN ns >= 1e6 THEN printf('%.2f ms', ns / 1e6)25 WHEN ns >= 1e3 THEN printf('%.1f us', ns / 1e3)26 ELSE printf('%.0f ns', ns)27 END;2829-- Runs, newest first, numbered: 1 is the latest.30CREATE OR REPLACE TEMP TABLE runs AS31SELECT run_id, min(ts) AS ts, any_value(git_sha) AS git_sha, bool_or(git_dirty) AS dirty,32 any_value(cpu) AS cpu, any_value(goos) AS goos, any_value(go_version) AS go_version,33 count(DISTINCT (pkg, name)) AS benchmarks,34 row_number() OVER (ORDER BY min(ts) DESC) AS age35FROM results36GROUP BY run_id;3738-- One row per benchmark per run: the median of its samples (a run made39-- with COUNT=n has n) and their spread, (max - min) / median.40CREATE OR REPLACE TEMP TABLE bench AS41SELECT run_id, pkg, name, count(*) AS samples,42 median(ns_op) AS ns_op, min(ns_op) AS min_ns, max(ns_op) AS max_ns,43 CASE WHEN median(ns_op) > 0 THEN (max(ns_op) - min(ns_op)) / median(ns_op) ELSE 0 END AS spread,44 median(allocs_op) AS allocs_op45FROM results46GROUP BY run_id, pkg, name;