From eeee21157565b8d9caa974e11027a9c63788e89b Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 18:10:43 +0000 Subject: [PATCH 01/23] D-GLOBAL-WHERE P1: probe spec incl. working-set correction (lab) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../2026-11-03-d-global-where-p1/SPEC.md | 231 ++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/SPEC.md diff --git a/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md b/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md new file mode 100644 index 000000000..d67f64394 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md @@ -0,0 +1,231 @@ +# D-GLOBAL-WHERE P1 probe spec: 64K page amortization, routing arms, cost model (lab only) + +Written by the orchestrator; implemented by workers. Root: `/home/user/lg-p1`, branch +`ccr-85acaff0-oszq40-global-where-p1`, cut from `origin/main` `ebbdb27d9`. Edit only +inside `.claude/probes/2026-11-03-d-global-where-p1/`. + +P0 (#1943) is evidence, not a dependency. Its probe is readable with +`git -C /home/user/lg-p1 show ccr-85acaff0-oszq40-global-where:.claude/probes/2026-11-03-d-global-where/probe/src/lib.rs` +(and `.../bin/falsify.rs`, `.../bin/bench.rs`, `.../probe/Cargo.toml`). Copy patterns from it +(counting allocator, SplitMix64, Quack WHERE prepared program, bit helpers); do not depend on it. + +## Hard rules + +- No production change. Consume `lance-graph-dt64` (`dr` module + `BindStore`/`MethodRef`/`admit`), + `lance-graph-quack`, `lance-graph-mask-risc`, `ndarray::simd` unchanged. +- No second identity authority. Every global → coordinate answer comes from `MapTable` / + `TileMap` under a sealed `Frame`. A derived index (arm C) is built FROM `MapTable` views under + one frame, carries that frame, refuses any other frame, and is never consulted for a frame it + was not built for. +- No tuple vectors, XYZ expansion, per-object structs or persisted intermediate relations in a + timed fold. Oracle code may use HashSet/HashMap. +- Units: ns/µs. Any warm or per-query value ≥ 1000 µs prints `FAILED-GATE`; cold/preparation + values ≥ 1000 µs print `COLD (reported, not gate)`. +- Deterministic data: SplitMix64, seed 0x9E3779B97F4A7C15. +- Every binary exits 1 on any failed check or oracle mismatch. + +## Model: three layers + +| layer | here | +|---|---| +| global corpus | u64 global ids, NOT contiguous (pseudo-random over 0..2^32), N up to 10M | +| logical 64K page | ONE `MapTable` (its own frame store and clock) holding up to 256 DR256 tiles, TileIds 0..255: exactly the reservation `Extent::DR256_GLOBAL_X64` names. Page coordinate = `tile_ordinal * 256 + local` (u16 range) | +| active tile | a `TileMap` borrowed from the page under a frame | + +A page holds only the identities a selection demands. Page membership is chosen by the +selection, never by bits of the global id. + +## Routing arms (identical answers, including refusals) + +- **A, baseline:** `MapTable::locate(frame, &page_tiles, g)` per endpoint. +- **B, page-grouped batch:** collect the distinct globals of all endpoints, sort them, locate each + ONCE with `locate`, then resolve endpoints by a merge/binary search over that sorted transient + array (dropped after the call: not an index). Measure locate calls (should equal distinct ids). +- **C, derived index (optional acceleration):** built from `table.map(&frame, t).globals()` for + every page tile: a sorted `Vec<(u64 global, u16 coord)>`. Adjacent equal globals → that id is + `Ambiguous`; absence → `Unmapped`. Stores the `Frame` it was built from; `lookup(frame, g)` + refuses with `StaleIndex` unless `frame.same_issue(&built)`. Building costs one pass over the + page's ids plus a sort; lookup is one binary search (no per-tile scan). + +## Part 1: `src/bin/falsify_p1.rs` + +Fixture: page P of 4 DR256 tiles (1,000 ids), page Q of 2 tiles (400 ids), disjoint except as +stated; edges among P ∪ Q (avg out-degree 4, ~8 % crossing P→Q); lanes `a`,`b` over the ids +(stored as a sparse lookup in the ORACLE only; the folds read lanes indexed by page coordinate +built at page preparation as a borrowed slice of the source lane order: put the fixture's lane +values in an array indexed by the position of the id in a fixture list, and document it). + +Checks F1..F20 (print `Fn PASS/FAIL detail`, exit 1 on failure): + +1. G→L→G and L→G→L parity for every id of P and Q, all three arms. +2. Arms A, B, C give identical coordinates for every edge endpoint of P. +3. `locate` calls: A = 2·edges(P), B = distinct endpoint ids, C = 0 per query after build. +4. An id inserted in two tiles of P: A → `Ambiguous`, B → `Ambiguous`, C → `Ambiguous`. +5. An id in no tile: all arms `Unmapped`. +6. Foreign frame (sealed by Q's table) read against P: A `Stale(ForeignFrame)`; C refuses. +7. Historical frame: seal f1; `advance` replacing tile 0 with a reordered map → f2. Under f1, A and + a C built for f1 return the OLD coordinates; C(f1) queried with f2 → `StaleIndex`; C rebuilt + for f2 == A under f2. +8. Extension: append ids to tile 1 (an extension, `TileMap::extends`); every old id keeps its + coordinate (presence plane built at f_old is still valid for old ids: the answer of the W2 query + restricted to old ids is unchanged); a guard compares generations, not digests. +9. Replacement invalidates the binding: reusing the f1 binding (coords + presence) under f2 without + the frame check gives a WRONG answer (measured); with the check it refuses. +10. Tile removal: an id of a removed tile → `Unmapped` under the new frame, still resolves under + the old frame. +11. Presence-only update: delete an edge; frame and coordinates unchanged; the binding is reused + (0 new locate calls for the fold; the update itself charges endpoint routing via C); the + answer drops by the oracle's amount. An unrelated deletion leaves the answer unchanged. +12. Cross-page edge: x ∈ P, y ∈ Q; B's selection held in Q coordinates; evaluating x's edge via + Q's frame gives the oracle; joining by coordinate coincidence gives a different (wrong) + count. +13. The same global id at different coordinates in two selections/pages; DR-aligned equality. +14. Reused binding == freshly prepared binding (coords and all W2/W3/W4 answers), Q = 64 reuses. +15. EXO-46 shared selection (LAB type `SharedSelection { frame, scope, criteria, mask }`): + a. M1 and M2 (same class, both registered with `BindStore::register`, distinct `MethodRef`s) + both admit the SAME selection when each holds its own permit (a permit = a `Vec` + the probe issues); + b. M2 presenting only M1's permit → refused (no inheritance); + c. a MethodRef of another class → refused (`admit` of dt64); + d. a stale sig rev → refused; + e. another Scope → refused; + f. a stale frame (after `advance`) → refused; + g. a presence update does not change the sealed selection's mask (bit-identical before/after) + while the fold over it reflects the new presence; + h. no mask is passed between programs (structural: the selection owns the mask, folds borrow + it); + i. zero allocation in admit + fold. + Read `crates/lance-graph-dt64/src/lib.rs` for `BindStore`, `MethodBinding`, `MethodRef::of`, + `admit` and its refusal enum; the merged probe + `.claude/probes/2026-11-03-d-xlog-meta-wire/probe/src/{main.rs,bin/v2_compose.rs}` shows a + working registration. +16. AND/XOR/FOLD parity with the oracle on W2 (1-hop EXISTS into B), W3 (2-hop EXISTS), W4 (3-hop + DISTINCT reached in B), W5 (COUNT DISTINCT 1-hop), W6 (Bag 2-path count, checked i64). +17. Folds allocate 0 bytes; no tuple vector. +18. Disable C's duplicate check → F4 fails for C (run as a compiled-in `--disable dupcheck` flag: + the binary takes optional `--disable ` and must then report FAIL on the named check). +19. Disable C's frame check → F7/F9 fail (`--disable framecheck`). +20. Disable binding version guard → F9 gives the wrong answer silently (`--disable bindguard`). + +## Part 2: `src/bin/sweep.rs` (amortization law and plan choice) + +Measure components per configuration, then compute the law, then verify it end to end. + +Configurations: active ids per page n ∈ {64, 256, 4096, 65536} (tiles = ceil(n/256), DR64 when +n ≤ 64 via `Axis::for_survivors`), pages p ∈ {1, 4, 16} (p = 64 only for n ≤ 4096), +distribution ∈ {sparse(deg≈1), medium(deg≈8), dense(deg≈min(64, n/8)), skewed(Zipf, mean 8)}, +cross-page edge fraction ∈ {0.01, 0.30}. Skip a config whose edge count would exceed 40M and say +so. + +Per config, single thread, median of 31 runs: +- `prep_A` / `prep_B` / `prep_C`: build the page tiles (`MapTable::advance`), route all edge + endpoints with the arm, build the coordinate CSR (u32 offsets, u16/u32 targets per page; + cross-page targets carry (page, coord)). +- `route_q_A`, `route_q_B`, `route_q_C`: per-query routing cost if the binding is NOT reused (the + query routes its selection, |A| ids, from scratch). +- `fold_W2`, `fold_W3_csr`, `fold_W3_front`, `fold_W4_csr`, `fold_W4_front`, `fold_W4_tile` (tile + only for total active ≤ 4096: dense rows). +- `where_v`: virtual WHERE over the page's ids (predicate at mapped globals). +- `update`: delete k edges (k = 0.1 %, 1 % of edges) through C: clear presence bits in the CSR's + edge-validity mask; coordinates untouched. +Then C_query(Q) = where_v + route_q(reused? 0 : arm) + fold + prep/Q + maintenance/Q for +Q ∈ {1,4,16,64,256,1024} and change rates {0, 0.1 %, 1 %} per query. Break-even Q for: reuse vs +per-query routing (A, B, C). Verify the law: for Q = 64, run the real loop (prep once, 64 queries +with updates) and compare measured total with the formula (report relative error). + +Plan choice: `fn choose(meta: &Meta) -> Arm` reading ONLY pre-execution metadata (|A|, |B|, n, +p, edges, mean out-degree, max degree, cross-page fraction, hops, binding prepared?). Its +constants are fitted on a CALIBRATION set (seed+1 datasets) and evaluated on the TEST set (seed). +Report per test config: chosen arm, measured best arm, regret = t(chosen)/t(best), choose() cost +in ns. The acceptance test must show the preferred arm changing across configs. + +Output `$OUT/sweep.json` (one record per config × metric) and `$OUT/law.json` (per config × Q × +change rate: predicted cost, components, break-evens) and `$OUT/plan.json`. + +## Part 3: `src/bin/big.rs` (10M corpus, DuckDB comparison data) + +N = 10,000,000 nodes, global ids = a SplitMix64 permutation-free random u32 per node (unique: +regenerate on collision; report) — not 0..N. Lanes a, b uniform 0..1000. Edges: out-degree +Poisson-like mean 2 (skewed variant: 1 % hubs with degree 200) → about 20M edges, global ids. +Write `$OUT/big/nodes.csv` (id,a,b), `edges.csv` (src,dst), `delete.csv`. + +Load (charged, reported separately, like DuckDB's load): a global CSR over node index (offsets +u32[N+1], targets u32 node index), and a global-id → node-index lookup used only for loading. + +Queries (A = a < 1, ~0.1 %; B parameter t varies per run over {100, 200, 300, 400, 500}): +- G1 `count(*) WHERE a < 1` over 10M rows: Quack `Agg::Count` over the 10M lane. +- G2 1-hop EXISTS into B, G3 2-hop EXISTS, G4 3-hop COUNT DISTINCT reached in B, + G5 COUNT DISTINCT 1-hop, G6 Bag 2-path count. +Ours, two modes: +- `direct`: no page binding; walk the global CSR from A every query (value reads through node index). +- `paged`: once per selection A: demanded identities (A ∪ 1/2/3-hop frontier) bound into 64K + pages (MapTable, 256 tiles each, arm C index); page-coordinate CSR; then each query = virtual + WHERE for B on page globals + folds in page coordinates. Report pages, active ids, cross-page + edges, prep cost, and the break-even Q against `direct` and against DuckDB's warm. +- Presence update: delete 0.1 % of active edges (validity bits); re-query. +Every answer against a scalar oracle over the edge list. +`$OUT/big/ours_big.json` records: {query, mode, answer_per_t: [..], cold_us, prep_us, warm_med_us, +warm_p10_us, warm_p90_us, peak_bytes, alloc_query_bytes, pages, active_ids, cross_page_edges, +update_us}. + +## Part 4: `duckdb/bench_big.py`, `duckdb/compare_big.py` + +DuckDB 2.0.0, threads 1 and 4, normal optimizer. Load CSVs (load_us reported). For each query a +prepared statement with parameter $1 = t (G1 has none); cold = PREPARE + first EXECUTE; warm = +median/p10/p90 of 51 EXECUTEs cycling t over {100..500}. Engine time from JSON profiling +`query.total_time` (one execution per t). Do NOT subtract `SELECT 1` as Python overhead: report +it as `trivial_query_wall_us` beside wall and engine. EXPLAIN ANALYZE per query (threads 1) to +`$OUT/big/explain/`. Delete via the delete.csv set, time it, re-run. `duckdb_memory()` totals. +Write `$OUT/big/duckdb_big.json`. `compare_big.py` asserts every answer per t equal (exit 1 +otherwise) and prints a Markdown table: ours direct / paged warm, paged prep, break-even Q vs +DuckDB warm (prep / (duck_warm − ours_warm), ∞ when ours is slower), DuckDB wall/engine/cold/load, +both thread counts, verdict WIN / PARITY (±10 %) / LOSS on wall and engine. Write `compare_big.md`. + +SQL (one dict, identical semantics): +- G1 `SELECT count(*) FROM nodes WHERE a < 1` +- G2 `SELECT count(*) FROM nodes n WHERE n.a < 1 AND EXISTS (SELECT 1 FROM edges e JOIN nodes m ON m.id = e.dst WHERE e.src = n.id AND m.b < $1)` +- G3 `SELECT count(*) FROM nodes n WHERE n.a < 1 AND EXISTS (SELECT 1 FROM edges e1 JOIN edges e2 ON e2.src = e1.dst JOIN nodes m ON m.id = e2.dst WHERE e1.src = n.id AND m.b < $1)` +- G4 `SELECT count(DISTINCT e3.dst) FROM nodes n JOIN edges e1 ON e1.src = n.id JOIN edges e2 ON e2.src = e1.dst JOIN edges e3 ON e3.src = e2.dst JOIN nodes m ON m.id = e3.dst WHERE n.a < 1 AND m.b < $1` +- G5 `SELECT count(DISTINCT e.dst) FROM edges e JOIN nodes n ON n.id = e.src JOIN nodes m ON m.id = e.dst WHERE n.a < 1 AND m.b < $1` +- G6 `SELECT count(*) FROM edges e1 JOIN edges e2 ON e2.src = e1.dst JOIN nodes n ON n.id = e1.src JOIN nodes m ON m.id = e2.dst WHERE n.a < 1 AND m.b < $1` + +--- + +## CORRECTION (operator, 2026-11-03): working-set construction is P0, paging is secondary + +The hypothesis is NOT "partition the corpus into 64K pages". It is: **constructing the right, +query-specific ≤ 64K active working set from an unbounded corpus solves most of the scaling; +the existing DR-local fold algebra then runs unchanged.** The "~98 %" figure is a working +hypothesis, not a measurement. + +Consequences for this spec (they override the text above where they conflict): + +1. **Naming.** The lib type is `WorkingSet` (one `MapTable`, up to 256 DR256 tiles, ≤ 65,536 + identities chosen by the QUERY, not contiguous, not by id bits). "Page" in Parts 1–3 means + this working set. A second working set exists only for bounded continuation. +2. **P0 measured stages, reported separately** (every binary that builds one): + `discover` (global WHERE → candidate ids: scan arm over the corpus lane via Quack Keep, and an + optional pre-built attribute-index arm whose build is charged as preprocessing), + `expand` (reachable demanded ids via the global relation index, bounded at 65,536), + `bind` (DR coordinate binding of exactly those ids: arms A/B/C), + `project` (relation views restricted to the working set: coordinate CSR + presence bits), + `fold`, and `reuse` (Q queries over one binding). +3. **Corpus-size independence is the success criterion.** Part 3 runs N ∈ {1M, 10M} (30M if + disk/RAM allow; say so if not) with the SAME demanded active population. Report each stage per + N. Stages whose cost tracks N (expected: the scan arm of `discover`) are named as such; the + claim holds only if `expand + bind + project + fold` do not grow with N. +4. **Incremental maintenance (P1).** Presence-only update: the binding survives, only presence + bits change. Selection change: B-side parameter changes re-run only `where_v` on the + working-set ids; an A-side change that adds ids EXTENDS the working set (`MapTable::advance` + with `TileMap::extends`, old coordinates kept) instead of rebuilding; measure both against a + full rebuild. +5. **Bounded continuation (P1).** Only when the demanded set exceeds 65,536 (G4 3-hop on the + skewed 10M corpus may): a second working set, cross-set edges resolved through the global id + (`locate` in the other set's frame), Boolean DISTINCT and Bag counts exact. Report its cost + separately. No unbounded intermediate, no second identity authority. +6. **Part 2 (sweep) is reduced** to: active size n ∈ {64, 256, 4096, 65536} × distribution × + cross-set fraction {0, 0.3}; routing arms A/B/C; amortization over Q; update rates; plan choice. + The "pages p" dimension is dropped except p = 2 for the continuation case. +7. **DuckDB (Part 4)** also runs N ∈ {1M, 10M}; report preprocessing on both sides (our global + relation index + optional attribute index; DuckDB load + ANALYZE, and an optional + `CREATE INDEX` arm on edges(src), nodes(id) with its build time). From f4bf2bf0be3732e42b57e92e770cdc43f0e677c2 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 18:12:07 +0000 Subject: [PATCH 02/23] D-GLOBAL-WHERE P1: DuckDB 1M/10M harness and comparison scripts (lab) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../duckdb/bench_big.py | 234 ++++++++++++++++++ .../duckdb/compare_big.py | 231 +++++++++++++++++ 2 files changed, 465 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py new file mode 100644 index 000000000..9d0949785 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python3 +"""D-GLOBAL-WHERE P1 probe, DuckDB side (Part 4 of SPEC.md): the 10M-node corpus. + +LAB SCRIPT. Not production code, not part of any build or CI gate. Measures +DuckDB (python package, in-memory, normal optimizer) on the CSVs written by the +Rust `big` binary and writes `$OUT/big/duckdb_big.json` for `compare_big.py`. + +Run: python3 -I bench_big.py [ ...] [--threads 1,4] [--runs 51] + [--arms plain,indexed] + +Each is one corpus size (e.g. $OUT/big_1m, $OUT/big_10m) holding +{nodes,edges,delete}.csv; /duckdb_big.json is written into each, and +explain texts go to /explain/. Arms: `plain` (load + ANALYZE only) and +`indexed` (additionally CREATE INDEX idx_e ON edges(src); CREATE INDEX idx_n ON +nodes(id); build time reported as index_build_us, charged as preprocessing). +Every record carries "arm". One fresh in-memory connection +per threads x query, so every cold figure is a real cold one and the DELETE +cannot leak into another query's measurement. + +Per connection: + 1. SET threads=T; load the CSVs with read_csv and explicit column types + (id/src/dst BIGINT, a/b INTEGER); ANALYZE. load_us = load + ANALYZE. + Indexed arm: then the two CREATE INDEX statements (index_build_us), then + ANALYZE again (not charged to either figure). + 2. cold_us = PREPARE + first EXECUTE (t=300 for parameterized queries). + 3. answer_per_t: one EXECUTE per t in [100..500] (G1 has no parameter, its + answer is repeated for each t so the shape matches the others). + 4. warm: RUNS EXECUTEs cycling t over [100..500]; wall median/p10/p90. + 5. engine_med_us: one profiled EXECUTE per t (JSON profiling, + `query.total_time`), median over the five. + 6. trivial_query_wall_us: median wall of a prepared `SELECT 1`. REPORTED, NOT + SUBTRACTED anywhere. + 7. mem_bytes: sum(memory_usage_bytes) FROM duckdb_memory() after the warm runs. + 8. threads=1 only: EXPLAIN ANALYZE (t=300 inlined) -> /explain/G?.txt + (plain) or /explain/indexed_G?.txt. + 9. W8-style update: DELETE FROM edges WHERE (src,dst) IN (SELECT src,dst FROM + del), timed as update_us; then one EXECUTE per t again -> + after_delete_per_t. + +All times are microseconds. +""" +import json +import os +import statistics +import sys +import tempfile +import time + +import duckdb + +TS = [100, 200, 300, 400, 500] +COLD_T = 300 + +SQL = { + "G1": "SELECT count(*) FROM nodes WHERE a < 1", + "G2": "SELECT count(*) FROM nodes n WHERE n.a < 1 AND EXISTS (SELECT 1 FROM edges e JOIN nodes m ON m.id = e.dst WHERE e.src = n.id AND m.b < $1)", + "G3": "SELECT count(*) FROM nodes n WHERE n.a < 1 AND EXISTS (SELECT 1 FROM edges e1 JOIN edges e2 ON e2.src = e1.dst JOIN nodes m ON m.id = e2.dst WHERE e1.src = n.id AND m.b < $1)", + "G4": "SELECT count(DISTINCT e3.dst) FROM nodes n JOIN edges e1 ON e1.src = n.id JOIN edges e2 ON e2.src = e1.dst JOIN edges e3 ON e3.src = e2.dst JOIN nodes m ON m.id = e3.dst WHERE n.a < 1 AND m.b < $1", + "G5": "SELECT count(DISTINCT e.dst) FROM edges e JOIN nodes n ON n.id = e.src JOIN nodes m ON m.id = e.dst WHERE n.a < 1 AND m.b < $1", + "G6": "SELECT count(*) FROM edges e1 JOIN edges e2 ON e2.src = e1.dst JOIN nodes n ON n.id = e1.src JOIN nodes m ON m.id = e2.dst WHERE n.a < 1 AND m.b < $1", +} +DELETE_SQL = "DELETE FROM edges WHERE (src, dst) IN (SELECT src, dst FROM del)" + + +def us(ns): + return round(ns / 1000.0, 3) + + +def pct(s, p): + return s[min(len(s) - 1, max(0, int(round(p * (len(s) - 1)))))] + + +def has_header(path): + with open(path) as f: + first = f.readline().split(",")[0].strip() + try: + int(first) + return False + except ValueError: + return True + + +def qs(path): + return path.replace("'", "''") + + +def load(con, big): + t0 = time.perf_counter_ns() + spec = [ + ("nodes", "nodes.csv", "{'id':'BIGINT','a':'INTEGER','b':'INTEGER'}"), + ("edges", "edges.csv", "{'src':'BIGINT','dst':'BIGINT'}"), + ("del", "delete.csv", "{'src':'BIGINT','dst':'BIGINT'}"), + ] + for name, fn, cols in spec: + p = os.path.join(big, fn) + hdr = "true" if has_header(p) else "false" + con.execute(f"CREATE TABLE {name} AS SELECT * FROM read_csv('{qs(p)}', header={hdr}, columns={cols})") + con.execute("ANALYZE") + return us(time.perf_counter_ns() - t0) + + +def exe(con, name, t, param): + stmt = f"EXECUTE {name}({t})" if param else f"EXECUTE {name}" + return con.execute(stmt).fetchone()[0] + + +def engine_us(con, name, t, param, tmpdir): + path = os.path.join(tmpdir, "profile.json") + if os.path.exists(path): + os.remove(path) + con.execute("PRAGMA enable_profiling='json'") + con.execute(f"PRAGMA profiling_output='{qs(path)}'") + exe(con, name, t, param) + con.execute("PRAGMA disable_profiling") + with open(path) as f: + return round(json.load(f)["query"]["total_time"] * 1e6, 3) + + +def answers(con, name, param): + if param: + return [exe(con, name, t, True) for t in TS] + a = exe(con, name, 0, False) + return [a] * len(TS) + + +def run_one(big, T, wl, arm, runs, tmpdir): + sql = SQL[wl] + param = "$1" in sql + con = duckdb.connect(":memory:") + con.execute(f"SET threads={T}") + load_us = load(con, big) + index_us = None + if arm == "indexed": + t0 = time.perf_counter_ns() + con.execute("CREATE INDEX idx_e ON edges(src)") + con.execute("CREATE INDEX idx_n ON nodes(id)") + index_us = us(time.perf_counter_ns() - t0) + con.execute("ANALYZE") + + t0 = time.perf_counter_ns() + con.execute(f"PREPARE q AS {sql}") + cold_ans = exe(con, "q", COLD_T, param) + cold_us = us(time.perf_counter_ns() - t0) + + ans = answers(con, "q", param) + if param: + assert cold_ans == ans[TS.index(COLD_T)], "cold answer != warm answer" + + ns = [] + for i in range(runs): + t = TS[i % len(TS)] + t0 = time.perf_counter_ns() + a = exe(con, "q", t, param) + ns.append(time.perf_counter_ns() - t0) + assert a == ans[TS.index(t)], f"answer drift at t={t}" + s = sorted(ns) + engs = [engine_us(con, "q", t, param, tmpdir) for t in TS] + + con.execute("PREPARE f AS SELECT 1") + fl = [] + for _ in range(runs): + t0 = time.perf_counter_ns() + con.execute("EXECUTE f").fetchone() + fl.append(time.perf_counter_ns() - t0) + triv = us(statistics.median(fl)) + + mem = con.execute("SELECT sum(memory_usage_bytes) FROM duckdb_memory()").fetchone()[0] + + if T == 1: + lit = sql.replace("$1", str(COLD_T)) + txt = con.execute(f"EXPLAIN ANALYZE {lit}").fetchall()[0][1] + os.makedirs(os.path.join(big, "explain"), exist_ok=True) + with open(os.path.join(big, "explain", f"{wl}.txt" if arm == "plain" else f"indexed_{wl}.txt"), "w") as f: + f.write(f"-- {lit}\n{txt}\n") + + t0 = time.perf_counter_ns() + con.execute(DELETE_SQL) + upd = us(time.perf_counter_ns() - t0) + after = answers(con, "q", param) + con.close() + return { + "query": wl, "arm": arm, "threads": T, "index_build_us": index_us, "answer_per_t": ans, "after_delete_per_t": after, + "cold_us": cold_us, "warm_med_us": us(statistics.median(s)), + "warm_p10_us": us(pct(s, 0.10)), "warm_p90_us": us(pct(s, 0.90)), + "engine_med_us": round(statistics.median(engs), 3), + "trivial_query_wall_us": triv, "load_us": load_us, "update_us": upd, + "mem_bytes": int(mem) if mem is not None else None, + } + + +def main(argv): + if len(argv) < 2 or argv[1].startswith("-"): + print(__doc__) + return 2 + dirs, threads, runs, arms = [], [1, 4], 51, ["plain", "indexed"] + i = 1 + while i < len(argv): + if argv[i] == "--threads": + threads = [int(x) for x in argv[i + 1].split(",")] + i += 2 + elif argv[i] == "--runs": + runs = int(argv[i + 1]) + i += 2 + elif argv[i] == "--arms": + arms = argv[i + 1].split(",") + i += 2 + elif argv[i].startswith("-"): + print("unknown arg", argv[i]) + return 2 + else: + dirs.append(argv[i]) + i += 1 + for big in dirs: + for fn in ("nodes.csv", "edges.csv", "delete.csv"): + if not os.path.exists(os.path.join(big, fn)): + print("missing", os.path.join(big, fn)) + return 2 + with tempfile.TemporaryDirectory() as tmpdir: + for big in dirs: + recs = [] + for arm in arms: + for T in threads: + for wl in SQL: + recs.append(run_one(big, T, wl, arm, runs, tmpdir)) + print(f"{big} arm={arm} threads={T} {wl} done", flush=True) + dst = os.path.join(big, "duckdb_big.json") + with open(dst, "w") as f: + json.dump(recs, f, indent=1) + print(f"wrote {len(recs)} records to {dst}") + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py new file mode 100644 index 000000000..536b24f57 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py @@ -0,0 +1,231 @@ +#!/usr/bin/env python3 +"""D-GLOBAL-WHERE P1 probe: join ours_big.json with duckdb_big.json per corpus size. + +LAB SCRIPT. Not production code. + +Run: python3 -I compare_big.py [ ...] e.g. $OUT/big_1m $OUT/big_10m + +Each holds ours_big.json and duckdb_big.json; /compare_big.md is +written for each, and the scaling table (all dirs together) goes to +/../compare_big_scaling.md. Dirs are ordered by the size in their name +(big_1m < big_10m); the label is the part after the last `big_`. + +Per dir and DuckDB thread count a table with one row per ours record x DuckDB +arm (plain / indexed): query, ours mode, DuckDB arm, ours warm med, ours prep, +ours cold, DuckDB warm wall, DuckDB engine, trivial (SELECT 1 wall, not +subtracted), DuckDB cold, DuckDB load, DuckDB index build, ratio wall (DuckDB / +ours), ratio engine, verdicts (WIN > 1.10, PARITY 0.90..1.10, LOSS < 0.90) and +break-even Q = ours prep / (DuckDB warm - ours warm), "never" when ours is +slower. A second table per dir shows ours' stage fields (discover_scan, +discover_index, index_build, expand, bind, project, fold, continuation; null +shown as "-"). The scaling table gives, per query, DuckDB warm per arm/threads +at every N and ours warm plus stage totals (discover = scan+index; working-set += expand+bind+project+fold) at every N with the growth ratio last/first. + +Exit 1 if any answer_per_t of any ours record differs from DuckDB (any arm, any +thread count); after_delete_per_t is compared when ours carries it. Exit 2 on +unreadable input. Microseconds everywhere; ours warm >= 1000 us prints +FAILED-GATE, cold/prep >= 1000 us prints COLD (reported, not gate). +""" +import json +import os +import re +import sys + +STAGES = ["discover_scan_us", "discover_index_us", "index_build_us", "expand_us", + "bind_us", "project_us", "fold_us", "continuation_us"] + + +def load(path): + try: + with open(path) as f: + return json.load(f) + except (OSError, ValueError) as e: + print(f"cannot read {path}: {e}", file=sys.stderr) + sys.exit(2) + + +def verdict(r): + if r is None: + return "n/a" + return "WIN" if r > 1.10 else ("PARITY" if r >= 0.90 else "LOSS") + + +def ratio(n, d): + if n is None or d is None or d <= 0: + return None + return n / d + + +def f1(v, kind=None): + if v is None: + return "-" + s = f"{v:.1f}" + if kind == "warm" and v >= 1000: + s += " FAILED-GATE" + elif kind == "cold" and v >= 1000: + s += " COLD (reported, not gate)" + return s + + +def fr(r): + return "-" if r is None else f"{r:.2f}" + + +def breakeven(prep, duck, ours): + if duck is None or ours is None or duck <= ours: + return "never" + if not prep: + return "0" + return f"{prep / (duck - ours):.1f}" + + +def qorder(q): + return (len(q), q) + + +def size_key(path): + name = os.path.basename(os.path.normpath(path)) + m = re.search(r"(\d+)([kmb]?)$", name.lower()) + if not m: + return (0, name) + return (int(m.group(1)) * {"": 1, "k": 10**3, "m": 10**6, "b": 10**9}[m.group(2)], name) + + +def label(path): + return os.path.basename(os.path.normpath(path)).split("big_")[-1] + + +def ssum(o, keys): + vals = [o.get(k) for k in keys] + if all(v is None for v in vals): + return None + return sum(v for v in vals if v is not None) + + +def compare_dir(d, mism, notes): + ours = load(os.path.join(d, "ours_big.json")) + dd = load(os.path.join(d, "duckdb_big.json")) + lab = label(d) + dd_by = {(r["query"], r.get("arm", "plain"), r["threads"]): r for r in dd} + arms = sorted({r.get("arm", "plain") for r in dd}, reverse=True) + threads = sorted({r["threads"] for r in dd}) + rows = sorted(ours, key=lambda r: (qorder(r["query"]), r["mode"])) + lines = [f"# D-GLOBAL-WHERE P1: corpus {lab}, ours vs DuckDB", "", + "Microseconds throughout. Ratio = DuckDB / ours (> 1: ours faster). " + "WIN > 1.10, PARITY 0.90..1.10, LOSS < 0.90. Break-even Q = ours prep / " + "(DuckDB warm wall - ours warm); `never` when ours is slower. " + "`trivial` = DuckDB prepared `SELECT 1` wall (not subtracted). " + "DuckDB `idx build` is charged preprocessing of the indexed arm.", ""] + hdr = ("| query | ours mode | DuckDB arm | ours warm med | ours prep | ours cold | DuckDB warm wall " + "| DuckDB engine | trivial | DuckDB cold | DuckDB load | DuckDB idx build | ratio wall " + "| verdict wall | ratio engine | verdict engine | break-even Q |") + sep = "|" + "---|" * 17 + for T in threads: + lines += [f"## {lab}: DuckDB threads={T}", "", hdr, sep] + for o in rows: + for arm in arms: + dr = dd_by.get((o["query"], arm, T)) + if dr is None: + notes.append(f"{lab}: no duckdb record for {o['query']} arm={arm} threads={T}") + continue + if o.get("answer_per_t") != dr["answer_per_t"]: + mism.append((lab, o["query"], o["mode"], arm, T, "answer_per_t", o.get("answer_per_t"), dr["answer_per_t"])) + if "after_delete_per_t" in o: + if o["after_delete_per_t"] != dr["after_delete_per_t"]: + mism.append((lab, o["query"], o["mode"], arm, T, "after_delete_per_t", o["after_delete_per_t"], dr["after_delete_per_t"])) + else: + notes.append(f"{lab}: ours lacks after_delete_per_t for {o['query']} {o['mode']}: not compared") + ow = o.get("warm_med_us") + rw = ratio(dr["warm_med_us"], ow) + re_ = ratio(dr.get("engine_med_us"), ow) + lines.append( + f"| {o['query']} | {o['mode']} | {arm} | {f1(ow, 'warm')} | {f1(o.get('prep_us'), 'cold')} " + f"| {f1(o.get('cold_us'), 'cold')} | {f1(dr['warm_med_us'])} | {f1(dr.get('engine_med_us'))} " + f"| {f1(dr.get('trivial_query_wall_us'))} | {f1(dr.get('cold_us'))} | {f1(dr.get('load_us'))} " + f"| {f1(dr.get('index_build_us'))} | {fr(rw)} | {verdict(rw)} | {fr(re_)} | {verdict(re_)} " + f"| {breakeven(o.get('prep_us'), dr['warm_med_us'], ow)} |") + lines.append("") + lines += [f"## {lab}: ours stages (null = not applicable)", "", + "| query | mode | " + " | ".join(s[:-3] for s in STAGES) + " | prep | warm med |", + "|" + "---|" * (len(STAGES) + 4)] + for o in rows: + lines.append(f"| {o['query']} | {o['mode']} | " + " | ".join(f1(o.get(s), 'cold') for s in STAGES) + + f" | {f1(o.get('prep_us'), 'cold')} | {f1(o.get('warm_med_us'), 'warm')} |") + lines.append("") + return ours, dd, lines + + +def main(argv): + if len(argv) < 2: + print(__doc__) + return 2 + dirs = sorted(argv[1:], key=size_key) + mism, notes, data, out_all = [], [], {}, [] + for d in dirs: + ours, dd, lines = compare_dir(d, mism, notes) + data[d] = (ours, dd) + with open(os.path.join(d, "compare_big.md"), "w") as f: + f.write("\n".join(lines)) + out_all += lines + + sc = ["# Corpus scaling", "", + "Per query: DuckDB warm wall per arm/threads and ours (mode `paged` stage totals, `direct` warm) at each N; " + "`discover` = scan + index, `ws` = expand + bind + project + fold. `x` = last N / first N " + "(corpus-size independence holds for `ws` when x is about 1).", ""] + labs = [label(d) for d in dirs] + queries = sorted({o["query"] for d in dirs for o in data[d][0]}, key=qorder) + # DuckDB scaling + sc += ["## DuckDB warm wall (us)", "", + "| query | arm | threads | " + " | ".join(labs) + " | x |", "|" + "---|" * (len(labs) + 4)] + keys = sorted({(r.get("arm", "plain"), r["threads"]) for d in dirs for r in data[d][1]}, key=lambda k: (k[0] != "plain", k[1])) + for q in queries: + for arm, T in keys: + vals = [] + for d in dirs: + r = next((r for r in data[d][1] if r["query"] == q and r.get("arm", "plain") == arm and r["threads"] == T), None) + vals.append(r["warm_med_us"] if r else None) + sc.append(f"| {q} | {arm} | {T} | " + " | ".join(f1(v) for v in vals) + f" | {fr(ratio(vals[-1], vals[0]))} |") + sc.append("") + sc += ["## Ours (us)", "", + "| query | mode | metric | " + " | ".join(labs) + " | x |", "|" + "---|" * (len(labs) + 4)] + metrics = [("warm", lambda o: o.get("warm_med_us")), + ("prep", lambda o: o.get("prep_us")), + ("discover", lambda o: ssum(o, ["discover_scan_us", "discover_index_us"])), + ("index_build", lambda o: o.get("index_build_us")), + ("ws (expand+bind+project+fold)", lambda o: ssum(o, ["expand_us", "bind_us", "project_us", "fold_us"])), + ("continuation", lambda o: o.get("continuation_us"))] + for q in queries: + modes = sorted({o["mode"] for d in dirs for o in data[d][0] if o["query"] == q}) + for m in modes: + for name, fn in metrics: + vals = [] + for d in dirs: + o = next((o for o in data[d][0] if o["query"] == q and o["mode"] == m), None) + vals.append(fn(o) if o else None) + if all(v is None for v in vals): + continue + sc.append(f"| {q} | {m} | {name} | " + " | ".join(f1(v) for v in vals) + f" | {fr(ratio(vals[-1], vals[0]))} |") + sc.append("") + tail = [] + if notes: + tail += ["## Notes", ""] + [f"- {n}" for n in sorted(set(notes))] + [""] + if mism: + tail += ["## ANSWER MISMATCHES", "", "| corpus | query | mode | duckdb arm | threads | field | ours | duckdb |", "|---|---|---|---|---|---|---|---|"] + tail += ["| " + " | ".join(str(x) for x in m) + " |" for m in mism] + [""] + else: + tail += ["All compared answers agree.", ""] + text = "\n".join(out_all + sc + tail) + with open(os.path.join(os.path.dirname(os.path.normpath(dirs[0])) or ".", "compare_big_scaling.md"), "w") as f: + f.write("\n".join(sc + tail)) + print(text) + if mism: + print(f"\nFAIL: {len(mism)} answer mismatch(es)", file=sys.stderr) + for m in mism: + print("MISMATCH corpus=%s query=%s mode=%s arm=%s threads=%s field=%s ours=%s duckdb=%s" % m, file=sys.stderr) + return 1 + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) From 07c8d2d05f21d8d87fc8fdf59ad421a44deda1b1 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 18:17:35 +0000 Subject: [PATCH 03/23] D-GLOBAL-WHERE P2: spec for criteria-aware WHERE and multi-domain composition (lab) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../2026-11-03-d-global-where-p1/SPEC.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md b/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md index d67f64394..1b480d29a 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md @@ -229,3 +229,50 @@ Consequences for this spec (they override the text above where they conflict): 7. **DuckDB (Part 4)** also runs N ∈ {1M, 10M}; report preprocessing on both sides (our global relation index + optional attribute index; DuckDB load + ANALYZE, and an optional `CREATE INDEX` arm on edges(src), nodes(id) with its build time). + +--- + +## P2 (operator, 2026-11-03): criteria-aware WHERE and multi-domain DR composition + +This PR carries P1 and P2 together (title P2). Three independent variables, never merged into one +"dataset size": **K** (criteria per WHERE), **population** (survivors), **D** (DR domains composed). + +### Source inventory (orchestrator, read in `crates/lance-graph-quack/src/lib.rs`) +- `Filter::{Cmp, Plane, EqU32Via, Semijoin, And(Vec), Or(Vec), Not}` (`:336`), `Filter::and_by_skip` + (selectivity-ordered AND, `:752`), `Filter::sql_where` three-valued rewrite over validity planes + (`:549`), `lower` (`:1383`) and `lower_fused` (ternlog fusion, `:1397`), executed by mask-risc + `execute_into`. So K-criteria WHERE over resident lanes is PRODUCTION; `EqU32Via`/`Semijoin` are + EXO-140-gated and not used here. + +### Part 5: `src/bin/where_k.rs` + `duckdb/bench_where.py` +Corpus N ∈ {1M, 10M}; columns c0..c15 i32 and nullable c15 (null when `f(id,15) % 10 == 0`). +Values are a closed formula both sides compute identically (no CSV for nodes): +`f(id, j) = (((id * 2654435761 + j * 40503) % 2147483648) * 1103515245 % 2147483648) % 1000` +(all BIGINT, no overflow: operands < 2^31 before each multiply). Correlated column: c1 = +`(c0 + f(id,1) % 20) % 1000`. +Cases: K groups {1, 2–4, 5–16, ≥17 (17 and 24, criteria may reuse columns with different +constants)} × population {tiny ≤ 100, medium ≈ 1 %, large ≈ 50 %} × shape {AND-heavy, OR-heavy, +mixed} plus the adversarial pairs: one criterion ≈ everything; one ≈ nothing; 16 nonselective; 16 +collapsing to one survivor; correlated criteria that do not reduce; contradictory → empty; a +nullable-column case through `sql_where`. Thresholds are SEARCHED by the generator to hit each +population target and the achieved count is reported (never assumed from K). +The generator writes `$OUT/where/cases.json`: each case = predicate tree {op: and|or|not|cmp, +col, cmpop, value} + target + achieved count (oracle). Python builds SQL from the same tree. +Ours per case, single thread, median of 31: `lower_us` (plain and fused), `eval_us` for +`Agg::Count`, `Agg::Any`, `Agg::Rows` (Keep → transient mask), plain vs fused vs `and_by_skip` +order, temporary bytes, and the representation used: `virtual` (Count/Any: no mask survives), +`transient` (Keep mask), `persistent` (never here). Report weighted (34/46/14/6 over K groups) and +unweighted tables. DuckDB: same predicate as `SELECT count(*) FROM nodes WHERE ` and an +`EXISTS` variant (`SELECT EXISTS(SELECT 1 FROM nodes WHERE )`), prepared, threads 1 and 4, +answers must match exactly; EXPLAIN ANALYZE for one case per K group. Output `where_ours.json`, +`where_duckdb.json`, `compare_where.md`. + +### Multi-domain composition (Part 1 additions, F22–F29) +F22 one / two / three DR domains give the same answers as one domain over the union (EXISTS, +COUNT, DISTINCT, Bag). F23 an edge crossing a domain boundary; F24 a path crossing three domains; +F25 the same global id in two selections; F26 a duplicate id across incorrectly configured domains +→ refused (`Ambiguous` when listed together; a global-id union check otherwise); F27 a deleted +cross-domain edge; F28 historical replay across domains; F29 aggregate composition laws: EXISTS = +OR of parts, COUNT = checked sum over DISJOINT contributions, DISTINCT = exact union (and a +falsifier: summing per-domain distinct counts over overlapping domains gives the WRONG answer), +Bag = multiplicities preserved. From 9749870e8daeb5214d30209b5e004fff1937e493 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 18:25:40 +0000 Subject: [PATCH 04/23] D-GLOBAL-WHERE P1/P2: working-set lib and falsifier (37/37, lab) Routing arms A/B/C, working-set extension, presence-only updates, EXO-46 shared selection, multi-domain composition laws. F12 made non-vacuous (cross edges only); F26 fixture fits 255+1 ids per tile. Disable runs: dupcheck->F4, framecheck->F6/F7/F9, bindguard->F9 turn red. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../probe/Cargo.toml | 26 + .../probe/src/bin/falsify_p1.rs | 1304 ++++++++++++++ .../probe/src/lib.rs | 1528 +++++++++++++++++ .../results/falsify_p1.log | 39 + 4 files changed, 2897 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml b/.claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml new file mode 100644 index 000000000..e5c9b849c --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml @@ -0,0 +1,26 @@ +# D-GLOBAL-WHERE P1 probe: working-set construction, routing arms, cost model. +# Lab only. Own [workspace]; the root workspace never builds it. Consumes +# dt64, quack, mask-risc and ndarray::simd unchanged. +[package] +name = "d-global-where-p1-probe" +version = "0.0.0" +edition = "2021" +publish = false + +[dependencies] +lance-graph-contract = { path = "../../../../crates/lance-graph-contract" } +lance-graph-dt64 = { path = "../../../../crates/lance-graph-dt64" } +lance-graph-quack = { path = "../../../../crates/lance-graph-quack" } +lance-graph-mask-risc = { path = "../../../../crates/lance-graph-mask-risc" } +ndarray = { git = "https://github.com/AdaWorldAPI/ndarray", branch = "master", default-features = false, features = ["std"] } + +[patch."https://github.com/AdaWorldAPI/lance-graph"] +lance-graph-contract = { path = "../../../../crates/lance-graph-contract" } + +[patch."https://github.com/AdaWorldAPI/ndarray"] +ndarray = { path = "/home/user/ndarray" } + +[profile.release] +debug = 0 + +[workspace] diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs new file mode 100644 index 000000000..b11acdd94 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs @@ -0,0 +1,1304 @@ +//! D-GLOBAL-WHERE P1, Part 1: falsifiers F1..F21 over working sets P (4 DR256 +//! tiles, 1,000 ids) and Q (2 tiles, 400 ids). +//! +//! `--disable dupcheck|framecheck|bindguard` compiles the named guard out of the +//! arm-C index / the binding guard; the named check must then report FAIL. +//! Exit 1 on any failed check. Lab only; nothing here is production. +//! +//! Fixture lanes: the fixture keeps `val: id -> (a, b)` (the SOURCE, oracle +//! side). Lane arrays the folds read are built at preparation by +//! `WorkingSet::gather_lane` in coordinate order; for a set built from a list +//! the coordinate is the list position, so a lane is the source lane in list +//! order. Folds never look an identity up. + +use std::collections::{HashMap, HashSet}; + +use d_global_where_p1_probe::*; +use lance_graph_contract::class_view::WideFieldMask; +use lance_graph_contract::set_rules::{Population, Truth}; +use lance_graph_dt64::dr::{Frame, FrameRefusal, LocateRefusal, MapRead, Scope}; +use lance_graph_dt64::{ + BindStore, ClassSchema, Extent, MethodBinding, MethodId, MethodRef, Refusal, SchemaRev, SigRev, ValueDemand, +}; + +#[global_allocator] +static ALLOC: CountingAlloc = CountingAlloc; + +const A_LT: i32 = 300; +const B_LT: i32 = 500; +const NOVAL: i32 = 1000; + +struct Tally { + pass: u32, + fail: u32, +} +impl Tally { + fn check(&mut self, id: &str, ok: bool, detail: String) { + if ok { + self.pass += 1; + } else { + self.fail += 1; + } + println!("{id} {} {detail}", if ok { "PASS" } else { "FAIL" }); + } +} + +struct Fx { + p: Vec, + q: Vec, + all: HashSet, + val: HashMap, + edges: Vec<(u64, u64)>, +} +impl Fx { + fn a(&self, g: u64) -> i32 { + self.val.get(&g).map_or(NOVAL, |v| v.0) + } + fn b(&self, g: u64) -> i32 { + self.val.get(&g).map_or(NOVAL, |v| v.1) + } +} + +fn fixture() -> Fx { + let mut rng = Rng::new(SEED); + let mut ids: Vec = Vec::new(); + let mut all = HashSet::new(); + while ids.len() < 1400 { + let g = rng.below(1 << 32); + if all.insert(g) { + ids.push(g); + } + } + let p = ids[..1000].to_vec(); + let q = ids[1000..].to_vec(); + let mut val = HashMap::new(); + for &g in &ids { + val.insert(g, (rng.below(1000) as i32, rng.below(1000) as i32)); + } + let mut edges = Vec::new(); + for (i, &s) in ids.iter().enumerate() { + let deg = rng.below(9) as usize; // mean 4 + let mut seen: HashSet = HashSet::new(); + let mut tries = 0; + while seen.len() < deg && tries < 100 { + tries += 1; + let d = if i < 1000 && rng.unit() >= 0.08 { + p[rng.below(1000) as usize] + } else { + q[rng.below(400) as usize] + }; + if d != s && seen.insert(d) { + edges.push((s, d)); + } + } + } + Fx { p, q, all, val, edges } +} + +fn sets(fx: &Fx) -> (WorkingSet, WorkingSet) { + ( + WorkingSet::build(&fx.p, 1).expect("P builds"), + WorkingSet::build(&fx.q, 2).expect("Q builds"), + ) +} + +fn bind(fx: &Fx, s: &[&WorkingSet], arm: Arm, a_lt: i32, b_lt: i32) -> Binding { + Binding::prepare(s, &fx.edges, arm, &|g| fx.a(g), &|g| fx.b(g), a_lt, b_lt).expect("bind") +} + +fn orc(fx: &Fx, a_lt: i32, b_lt: i32, del: &[(u64, u64)]) -> Oracle { + oracle(&fx.edges, &|g| fx.a(g) < a_lt, &|g| fx.b(g) < b_lt, del) +} + +fn scratch(b: &Binding) -> FoldScratch { + let sizes: Vec = b.graphs.iter().map(|g| g.n).collect(); + FoldScratch::new(&sizes) +} + +/// Every route of every workload; returns the CSR-route answers and the list +/// of internal route disagreements. +fn folds(b: &Binding) -> (Oracle, Vec) { + let mut sc = scratch(b); + let (g, a, bm) = (&b.graphs, &b.a, &b.b); + let mut bad = Vec::new(); + let w2d = w2(g, a, bm); + let w2a = w2_and(g, a, bm, &mut sc); + let w2x = w2_xor(g, a, bm, &mut sc); + if w2a != w2d || w2x != w2d { + bad.push(format!("W2 direct {w2d} and {w2a} xor {w2x}")); + } + let w3c = w3_csr(g, a, bm); + let w3f = w3_front(g, a, bm, &mut sc); + if w3c != w3f { + bad.push(format!("W3 csr {w3c} front {w3f}")); + } + let w4c = w4_csr(g, a, bm, &mut sc); + let w4f = w4_front(g, a, bm, &mut sc); + let w4t = TileMatrix::build(g).map(|mut t| { + t.load(a, bm); + t.fold() + }); + if w4c != w4f || w4t.is_some_and(|t| t != w4c) { + bad.push(format!("W4 csr {w4c} front {w4f} tile {w4t:?}")); + } + let w5v = w5(g, a, bm, &mut sc); + let w6v = w6(g, a, None).expect("no overflow"); + let w6bv = w6(g, a, Some(bm)).expect("no overflow"); + ( + Oracle { + w2: w2d, + w3: w3c, + w4: w4c, + w5: w5v, + w6: w6v, + w6b: w6bv, + }, + bad, + ) +} + +fn lookups_of(ws: &WorkingSet, f: &Frame) -> u64 { + ws.tile_ids + .iter() + .filter_map(|&t| ws.table.map(f, t).ok()) + .map(|m| m.lookups()) + .sum() +} + +fn global_of(ws: &WorkingSet, f: &Frame, c: usize) -> u64 { + let tw = ws.tw(); + ws.table + .map(f, ws.tile_ids[c / tw]) + .expect("tile") + .global((c % tw) as u8) + .expect("local in range") +} + +fn refs(v: &[WorkingSet]) -> Vec<&WorkingSet> { + v.iter().collect() +} + +fn fresh_ids(fx: &Fx, n: usize, salt: u64) -> Vec { + let mut rng = Rng::new(SEED ^ salt); + let mut out = Vec::new(); + let mut seen = HashSet::new(); + while out.len() < n { + let g = rng.below(1 << 32); + if !fx.all.contains(&g) && seen.insert(g) { + out.push(g); + } + } + out +} + +fn method(id: u32) -> MethodBinding { + MethodBinding { + id: MethodId(id), + sig_rev: SigRev(1), + name: format!("m{id}"), + on: WideFieldMask::from_positions(&[0]), + when: None, + reads: WideFieldMask::from_positions(&[0]), + effects: vec![], + population: Population::Distinct, + truth: Truth::TwoValued, + demand: ValueDemand::MapOnly, + } +} + +fn main() { + let args: Vec = std::env::args().collect(); + let disable: Option = args.iter().position(|a| a == "--disable").and_then(|i| args.get(i + 1).cloned()); + let dup_off = disable.as_deref() == Some("dupcheck"); + let frame_off = disable.as_deref() == Some("framecheck"); + let guard_off = disable.as_deref() == Some("bindguard"); + if let Some(d) = &disable { + println!("# --disable {d}: the named guard is compiled out; its check must FAIL"); + } + let cflags = CFlags { + disable_dupcheck: dup_off, + disable_framecheck: frame_off, + }; + let fx = fixture(); + let mut t = Tally { pass: 0, fail: 0 }; + let p_edges: Vec<(u64, u64)> = { + let ps: HashSet = fx.p.iter().copied().collect(); + fx.edges.iter().copied().filter(|(s, _)| ps.contains(s)).collect() + }; + let cross = fx.edges.iter().filter(|(s, d)| fx.p.contains(s) && fx.q.contains(d)).count(); + println!( + "# fixture: P={} ids Q={} ids edges={} P-source edges={} P->Q edges={}", + fx.p.len(), + fx.q.len(), + fx.edges.len(), + p_edges.len(), + cross + ); + + // ---- F1: G->L->G and L->G->L parity, all three arms -------------------- + { + let (p, q) = sets(&fx); + let mut bad = 0usize; + let mut n = 0usize; + for (ws, ids) in [(&p, &fx.p), (&q, &fx.q)] { + let f = ws.seal(); + let tw = ws.tw(); + let idx = CoordIndex::build_with(ws, &f, cflags).expect("C builds"); + let mut oa = vec![0u32; ids.len()]; + let mut ob = vec![0u32; ids.len()]; + let mut oc = vec![0u32; ids.len()]; + route_batch_a_in(&ws.table, &f, &ws.tile_ids, tw, ids, &mut oa).expect("A"); + route_batch_b_in(&ws.table, &f, &ws.tile_ids, tw, ids, &mut ob).expect("B"); + route_batch_c(&idx, &f, ids, &mut oc).expect("C"); + for (i, &g) in ids.iter().enumerate() { + n += 1; + for out in [&oa, &ob, &oc] { + let c = out[i] as usize; + // G -> L -> G + if out[i] >= COORD_AMBIGUOUS || global_of(ws, &f, c) != g { + bad += 1; + } + } + } + // L -> G -> L over every occupied coordinate + for c in 0..ids.len() { + let g = global_of(ws, &f, c); + for out in [ + ws.coord_a(&f, g).map(|v| v as u32).unwrap_or(u32::MAX), + idx.lookup(&f, g).unwrap_or(u32::MAX), + ] { + if out as usize != c { + bad += 1; + } + } + } + } + t.check("F1", bad == 0, format!("{n} ids x 3 arms G->L->G and L->G->L, mismatches={bad}")); + } + + // ---- F2: arms A, B, C identical for every edge endpoint of P ------------ + { + let (p, _q) = sets(&fx); + let f = p.seal(); + let ep: Vec = p_edges.iter().flat_map(|&(s, d)| [s, d]).collect(); + let idx = CoordIndex::build_with(&p, &f, cflags).expect("C"); + let (mut oa, mut ob, mut oc) = (vec![0u32; ep.len()], vec![0u32; ep.len()], vec![0u32; ep.len()]); + route_batch_a_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut oa).expect("A"); + route_batch_b_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut ob).expect("B"); + route_batch_c(&idx, &f, &ep, &mut oc).expect("C"); + let unmapped = oa.iter().filter(|&&c| c == COORD_UNMAPPED).count(); + t.check( + "F2", + oa == ob && oa == oc && unmapped > 0, + format!( + "{} endpoints: A==B {} A==C {}; {} endpoints are Q ids (Unmapped in P, same refusal in all arms)", + ep.len(), + oa == ob, + oa == oc, + unmapped + ), + ); + } + + // ---- F3: locate calls (counted twice: by the routine and by the maps) --- + { + let (p, _q) = sets(&fx); + let f = p.seal(); + let tiles = p.tile_ids.len() as u64; + let ep: Vec = p_edges.iter().flat_map(|&(s, d)| [s, d]).collect(); + let mut out = vec![0u32; ep.len()]; + let l0 = lookups_of(&p, &f); + let sa = route_batch_a_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut out).expect("A"); + let l1 = lookups_of(&p, &f); + let sb = route_batch_b_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut out).expect("B"); + let l2 = lookups_of(&p, &f); + let idx = CoordIndex::build_with(&p, &f, cflags).expect("C"); + let l3 = lookups_of(&p, &f); + let sc = route_batch_c(&idx, &f, &ep, &mut out).expect("C"); + let l4 = lookups_of(&p, &f); + let distinct = ep.iter().copied().collect::>().len() as u64; + let e2 = ep.len() as u64; + let ok = sa.locate_calls == e2 + && l1 - l0 == e2 * tiles + && sb.locate_calls == distinct + && sb.distinct == distinct + && l2 - l1 == distinct * tiles + && l3 == l2 + && sc.locate_calls == 0 + && l4 == l3; + t.check( + "F3", + ok, + format!( + "A calls={} (2*edges={e2}, map lookups {}) B calls={} (distinct={distinct}, map lookups {}) C query calls={} (map lookups {}, build lookups {})", + sa.locate_calls, + l1 - l0, + sb.locate_calls, + l2 - l1, + sc.locate_calls, + l4 - l3, + l3 - l2 + ), + ); + } + + // ---- F4: id in two tiles: Ambiguous in all arms -------------------------- + { + let mut tiles: Vec> = fx.p.chunks(256).map(|c| c.to_vec()).collect(); + let dup = fx.p[0]; + tiles[3].push(dup); + let ws = WorkingSet::from_tiles(lance_graph_dt64::Width::W256, tiles, 7).expect("dup set"); + let f = ws.seal(); + let a = ws.coord_a(&f, dup); + let mut ob = [0u32]; + route_batch_b_in(&ws.table, &f, &ws.tile_ids, ws.tw(), &[dup], &mut ob).expect("B"); + let idx = CoordIndex::build_with(&ws, &f, cflags).expect("C"); + let c = idx.lookup(&f, dup); + let other = fx.p[5]; + let fine = ws.coord_a(&f, other).ok() == idx.lookup(&f, other).ok().map(|v| v as usize); + t.check( + "F4", + a == Err(LocateRefusal::Ambiguous) && ob[0] == COORD_AMBIGUOUS && c == Err(CRefusal::Ambiguous) && fine, + format!("A={a:?} B={} C={c:?} (an unrelated id still agrees: {fine})", ob[0]), + ); + } + + // ---- F5: id in no tile: Unmapped everywhere -------------------------------- + { + let (p, _q) = sets(&fx); + let f = p.seal(); + let g = u64::MAX - 5; + let idx = CoordIndex::build_with(&p, &f, cflags).expect("C"); + let mut ob = [0u32]; + route_batch_b_in(&p.table, &f, &p.tile_ids, p.tw(), &[g], &mut ob).expect("B"); + let (a, c) = (p.coord_a(&f, g), idx.lookup(&f, g)); + t.check( + "F5", + a == Err(LocateRefusal::Unmapped) && ob[0] == COORD_UNMAPPED && c == Err(CRefusal::Unmapped), + format!("A={a:?} B={} C={c:?}", ob[0]), + ); + } + + // ---- F6: foreign frame -------------------------------------------------- + { + let (p, q) = sets(&fx); + let fp = p.seal(); + let fq = q.seal(); + let idx = CoordIndex::build_with(&p, &fp, cflags).expect("C"); + let a = p.coord_a(&fq, fx.p[0]); + let c = idx.lookup(&fq, fx.p[0]); + t.check( + "F6", + a == Err(LocateRefusal::Read(MapRead::Stale(FrameRefusal::ForeignFrame))) && c == Err(CRefusal::StaleIndex), + format!("A={a:?} C={c:?}"), + ); + } + + // ---- F7: historical frame ----------------------------------------------- + { + let (mut p, _q) = sets(&fx); + let f1 = p.seal(); + let tile0: Vec = fx.p[..256].to_vec(); + let old: Vec = tile0.iter().map(|&g| p.coord_a(&f1, g).expect("old")).collect(); + let c1 = CoordIndex::build_with(&p, &f1, cflags).expect("C1"); + let mut rev = tile0.clone(); + rev.reverse(); + p.replace_tile(0, &rev).expect("replace"); + let f2 = p.seal(); + let a_old = tile0.iter().map(|&g| p.coord_a(&f1, g).ok()).collect::>() + == old.iter().map(|&c| Some(c)).collect::>(); + let c_old = tile0.iter().map(|&g| c1.lookup(&f1, g).ok().map(|v| v as usize)).collect::>() + == old.iter().map(|&c| Some(c)).collect::>(); + let c_stale = c1.lookup(&f2, tile0[0]); + let c2 = CoordIndex::build_with(&p, &f2, cflags).expect("C2"); + let mut same = true; + for &g in &fx.p { + same &= p.coord_a(&f2, g).ok().map(|v| v as u32) == c2.lookup(&f2, g).ok(); + } + let moved = tile0.iter().zip(&old).filter(|&(&g, &o)| p.coord_a(&f2, g).ok() != Some(o)).count(); + t.check( + "F7", + a_old && c_old && c_stale == Err(CRefusal::StaleIndex) && same && moved > 0, + format!( + "under f1: A old {a_old} C old {c_old}; C(f1) asked with f2 -> {c_stale:?}; C rebuilt==A under f2 {same}; {moved} ids moved" + ), + ); + } + + // ---- F8: extension keeps coordinates (generations, not digests) --------- + { + let (mut p, q) = sets(&fx); + let fo = p.seal(); + let old_tiles = p.tile_ids.clone(); + let old_coords: Vec = fx.p.iter().map(|&g| p.coord_a(&fo, g).expect("old")).collect(); + let bo = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let w2_old = w2(&bo.graphs, &bo.a, &bo.b); + let gen3 = p.table.generation_count(3); + let ev3 = p.table.event_count(3); + let vold_digest = p.table.map(&fo, 3).expect("t3").digest(); + let added = fresh_ids(&fx, 40, 0xE8); + let touched = p.extend(&added).expect("extend"); + let fnw = p.seal(); + let (vo, vn) = (p.table.map(&fo, 3).expect("t3 old"), p.table.map(&fnw, 3).expect("t3 new")); + let ext = vn.extends(vo); + let digest_changed = vn.digest() != vold_digest; + let gen_same = p.table.generation_count(3) == gen3 && p.table.event_count(3) == ev3 + 1; + let kept = fx.p.iter().zip(&old_coords).all(|(&g, &c)| { + p.coord_a(&fnw, g).ok() == Some(c) && coord_a_in(&p.table, &fo, &old_tiles, p.tw(), g).ok() == Some(c) + }); + let bn = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let mut restricted = bn.a.clone(); + ndarray::simd::mask_and_assign(&mut restricted[0], &p.valid_mask(&fo)); + let w2_new = w2(&bn.graphs, &restricted, &bn.b); + let stale = bo.guard(&[&p, &q], true).is_err(); + t.check( + "F8", + ext && digest_changed && gen_same && kept && w2_old == w2_new && stale && touched == 2, + format!( + "tiles changed={touched} extends={ext} digest changed={digest_changed} (a digest guard would refuse) generations same={gen_same} old coords kept={kept} W2 old={w2_old} new-restricted={w2_new} old binding is stale to the frame guard={stale}" + ), + ); + } + + // ---- F9: replacement invalidates the binding ----------------------------- + { + let (mut p, q) = sets(&fx); + let f1 = p.seal(); + let c1 = CoordIndex::build_with(&p, &f1, cflags).expect("C1"); + let b1 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let mut rev: Vec = fx.p[..256].to_vec(); + rev.reverse(); + p.replace_tile(0, &rev).expect("replace"); + let b2 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let truth = orc(&fx, A_LT, B_LT, &[]).w2; + let fresh = w2(&b2.graphs, &b2.a, &b2.b); + let mut stale = b1.clone(); + stale.a = b2.a.clone(); + stale.b = b2.b.clone(); + let wrong = w2(&stale.graphs, &stale.a, &stale.b); + let guarded = b1.guard(&[&p, &q], !guard_off); + let f2 = p.seal(); + let c_stale = c1.lookup(&f2, fx.p[0]); + t.check( + "F9", + fresh == truth + && wrong != truth + && matches!(guarded, Err(BindError::Stale(0))) + && c_stale == Err(CRefusal::StaleIndex), + format!( + "oracle W2={truth} fresh f2 binding={fresh} reused f1 binding without the check={wrong} (WRONG: {}) guarded -> {guarded:?} C(f1) with f2 -> {c_stale:?}", + wrong != truth + ), + ); + } + + // ---- F10: tile removal ----------------------------------------------------- + { + let (mut p, _q) = sets(&fx); + let f1 = p.seal(); + let old_tiles = p.tile_ids.clone(); + let g = fx.p[512]; // tile 2 + let under_old = coord_a_in(&p.table, &f1, &old_tiles, p.tw(), g); + p.remove_tile(2); + let f2 = p.seal(); + let new_tiles: Vec = vec![0, 1, 3]; + let under_new = coord_a_in(&p.table, &f2, &new_tiles, p.tw(), g); + let under_old_list = coord_a_in(&p.table, &f2, &old_tiles, p.tw(), g); + let again = coord_a_in(&p.table, &f1, &old_tiles, p.tw(), g); + let ci = CoordIndex::build_in(&p.table, &new_tiles, p.tw(), &f2, cflags).expect("C new"); + let c_new = ci.lookup(&f2, g); + t.check( + "F10", + under_old == Ok(512) && under_new == Err(LocateRefusal::Unmapped) && again == Ok(512) && c_new == Err(CRefusal::Unmapped), + format!( + "old frame {under_old:?}; new frame with the reduced tile list {under_new:?} (C {c_new:?}); new frame with the old list {under_old_list:?}; old frame again {again:?}" + ), + ); + } + + // ---- F11: presence-only update ---------------------------------------------- + { + let (p, q) = sets(&fx); + let mut b = bind(&fx, &[&p, &q], Arm::C, A_LT, B_LT); + let idx: Vec = [&p, &q] + .iter() + .zip(&b.frames) + .map(|(ws, f)| CoordIndex::build_with(ws, f, cflags).expect("C")) + .collect(); + let frames = b.frames.clone(); + let (base, bad0) = folds(&b); + // an effective deletion: removes an edge of an A source whose removal moves W2 + let mut eff: Option<(u64, u64)> = None; + for &(s, d) in &fx.edges { + if fx.a(s) >= A_LT { + continue; + } + let (Some(sn), Some(dn)) = (route_global_c(&idx, &frames, s), route_global_c(&idx, &frames, d)) else { + continue; + }; + let mut g2 = b.graphs.clone(); + if g2[nr_set(sn)].delete(nr_coord(sn), tgt_pack(nr_set(sn), dn)) && w2(&g2, &b.a, &b.b) != base.w2 { + eff = Some((s, d)); + break; + } + } + let (s1, d1) = eff.expect("an effective deletion exists"); + let un = fx + .edges + .iter() + .copied() + .find(|&(s, d)| fx.a(s) >= A_LT && (s, d) != (s1, d1) && fx.p.contains(&s)) + .expect("unrelated edge"); + let before_lookups = lookups_of(&p, &frames[0]) + lookups_of(&q, &frames[1]); + let (sn, dn) = (route_global_c(&idx, &frames, s1).unwrap(), route_global_c(&idx, &frames, d1).unwrap()); + let deleted1 = b.delete(nr_set(sn), nr_coord(sn), dn); + let (after1, bad1) = folds(&b); + let (sn2, dn2) = (route_global_c(&idx, &frames, un.0).unwrap(), route_global_c(&idx, &frames, un.1).unwrap()); + let deleted2 = b.delete(nr_set(sn2), nr_coord(sn2), dn2); + let (after2, bad2) = folds(&b); + let after_lookups = lookups_of(&p, &frames[0]) + lookups_of(&q, &frames[1]); + let o1 = orc(&fx, A_LT, B_LT, &[(s1, d1)]); + let o2 = orc(&fx, A_LT, B_LT, &[(s1, d1), un]); + let current = b.guard(&[&p, &q], true).is_ok(); + let ok = deleted1 + && deleted2 + && bad0.is_empty() + && bad1.is_empty() + && bad2.is_empty() + && after1 == o1 + && after2 == o2 + && after1.w2 < base.w2 + && after2.w2 == after1.w2 + && after_lookups == before_lookups + && current; + t.check( + "F11", + ok, + format!( + "W2 {} -> {} (oracle {}) after the effective deletion; unrelated deletion leaves W2 {} (all workloads == oracle: {}); map lookups during folds+updates: {}; frame still current {current}", + base.w2, + after1.w2, + o1.w2, + after2.w2, + after2 == o2, + after_lookups - before_lookups + ), + ); + } + + // ---- F12: cross-working-set edge ---------------------------------------------- + { + let (p, q) = sets(&fx); + let b = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let truth = orc(&fx, A_LT, B_LT, &[]).w2; + let right = w2(&b.graphs, &b.a, &b.b); + // Restricted to cross-set edges, where the decoding is what is under test: + // x in A (source set) with a cross edge to a B member. `right_cross` decodes + // the target through its own set; `wrong` reads the coordinate as if it + // belonged to the source set (coordinate coincidence). + let (mut right_cross, mut wrong) = (0i64, 0i64); + for (si, c) in b.graphs.iter().enumerate() { + for_each_bit(&b.a[si], |x| { + let (mut r, mut w) = (false, false); + for e in c.off[x] as usize..c.off[x + 1] as usize { + if bit(&c.valid, e) && c.tgt[e] & CROSS != 0 { + let n = tgt_unpack(si, c.tgt[e]); + r |= bit(&b.b[nr_set(n)], nr_coord(n)); + w |= bit(&b.b[si], nr_coord(n)); + } + } + right_cross += i64::from(r); + wrong += i64::from(w); + }); + } + let qset: HashSet = fx.q.iter().copied().collect(); + let pset: HashSet = fx.p.iter().copied().collect(); + let truth_cross = fx + .p + .iter() + .filter(|&&x| { + fx.a(x) < A_LT + && fx.edges.iter().any(|&(s, d)| s == x && qset.contains(&d) && !pset.contains(&d) && fx.b(d) < B_LT) + }) + .count() as i64; + let cross_edges: usize = b.graphs[0].tgt.iter().filter(|&&x| x & CROSS != 0).count(); + t.check( + "F12", + cross_edges > 0 && right == truth && right_cross == truth_cross && truth_cross > 0 && wrong != truth_cross, + format!( + "{cross_edges} P->Q edges, B held in Q coordinates: W2={right} oracle={truth}; over cross edges only: DR-decoded {right_cross} oracle {truth_cross}, coordinate coincidence {wrong} (WRONG)" + ), + ); + } + + // ---- F13: same id, different coordinates ------------------------------------------ + { + let n = fx.p.len(); + let mut rot = fx.p.clone(); + rot.rotate_left(7); + let w1 = WorkingSet::build(&fx.p, 11).expect("w1"); + let w2s = WorkingSet::build(&rot, 12).expect("w2"); + let (f1, f2) = (w1.seal(), w2s.seal()); + let g = fx.p[10]; + let (c1, c2) = (w1.coord_a(&f1, g).expect("c1"), w2s.coord_a(&f2, g).expect("c2")); + let back = global_of(&w1, &f1, c1) == g && global_of(&w2s, &f2, c2) == g; + let (v1, v2) = (w1.valid_mask(&f1), w2s.valid_mask(&f2)); + let (l1, l2) = ( + w1.gather_lane(&f1, |g| fx.a(g)), + w2s.gather_lane(&f2, |g| fx.a(g)), + ); + let (mut m1, mut m2) = (vec![0u64; words_for(w1.n_coords())], vec![0u64; words_for(w2s.n_coords())]); + virtual_where(&l1, A_LT, &v1, &mut m1); + virtual_where(&l2, A_LT, &v2, &mut m2); + let mut proj = vec![0u64; m2.len()]; + for_each_bit(&m1, |c| { + let gg = global_of(&w1, &f1, c); + set_bit(&mut proj, w2s.coord_a(&f2, gg).expect("in w2")); + }); + t.check( + "F13", + c1 != c2 && back && proj == m2 && m1 != m2, + format!( + "id {g:#x} is coordinate {c1} in one set and {c2} in the other (both resolve back); A selection: {n} ids, DR-aligned equality {}; bitwise coincidence equality {} (WRONG)", + proj == m2, + m1 == m2 + ), + ); + } + + // ---- F14: reused binding == freshly prepared binding, Q = 64 ----------------------- + { + let (p, q) = sets(&fx); + let mut reused = bind(&fx, &[&p, &q], Arm::C, A_LT, 100); + let mut bad = 0usize; + for k in 0..64 { + let tb = 100 + 10 * k; + reused.rewhere_b(tb); + let fresh = bind(&fx, &[&p, &q], Arm::C, A_LT, tb); + let same_struct = reused.graphs == fresh.graphs + && reused.a == fresh.a + && reused.b == fresh.b + && reused.valid == fresh.valid; + let (ra, _) = folds(&reused); + let (fa, _) = folds(&fresh); + if !same_struct || ra != fa || ra != orc(&fx, A_LT, tb, &[]) { + bad += 1; + } + } + t.check("F14", bad == 0, format!("64 reuses (B parameter changed each time, only the WHERE re-run) vs 64 fresh bindings: {bad} differ")); + } + + // ---- F15: EXO-46 shared selection ----------------------------------------------------- + { + const CLASS: u32 = 0x7F0B_0001; + const OTHER: u32 = 0x7F0B_0002; + let schema = ClassSchema { + schema_rev: SchemaRev(1), + field_count: 2, + extent: Extent::DR64_CUBE, + }; + let mut store = BindStore::new(); + store.register(CLASS, schema, vec![method(1), method(2)]).expect("class"); + store.register(OTHER, schema, vec![method(1)]).expect("other class"); + let (m1, m2, mo) = (method(1), method(2), method(1)); + let (r1, r2, ro) = (MethodRef::of(CLASS, &m1), MethodRef::of(CLASS, &m2), MethodRef::of(OTHER, &mo)); + let (permit1, permit2) = (vec![r1.clone()], vec![r2.clone()]); + let (mut p, _q) = sets(&fx); + let mut b = bind(&fx, &[&p], Arm::A, A_LT, B_LT); + let scope = Scope { id: 1 }; + let sel = SharedSelection { + class: CLASS, + frame: p.seal(), + scope, + criteria: A_LT as u64, + mask: b.a[0].clone(), + }; + let cur = p.seal(); + // a + let ra = sel.admit(&store, &r1, &permit1, &cur, scope); + let rb = sel.admit(&store, &r2, &permit2, &cur, scope); + let a_ok = match (ra, rb) { + (Ok(x), Ok(y)) => std::ptr::eq(x.as_ptr(), y.as_ptr()) && w2_borrowed(&b.graphs, x, &b.b) == w2_borrowed(&b.graphs, y, &b.b), + _ => false, + }; + // b, c, d, e + let b_ref = sel.admit(&store, &r2, &permit1, &cur, scope); + let c_unbound = sel.admit( + &store, + &MethodRef { + class: 0x7F0B_00FF, + ..r1.clone() + }, + &[], + &cur, + scope, + ); + let c_other = sel.admit(&store, &ro, &[ro.clone()], &cur, scope); + let d_sig = sel.admit( + &store, + &MethodRef { + sig_rev: SigRev(2), + ..r1.clone() + }, + &permit1, + &cur, + scope, + ); + let e_scope = sel.admit(&store, &r1, &permit1, &cur, Scope { id: 2 }); + // g: presence update does not change the mask; the fold reflects it + let mask_before = sel.mask.clone(); + let w2_before = w2_borrowed(&b.graphs, &sel.mask, &b.b); + let mut deleted = false; + 'outer: for x in 0..b.graphs[0].n { + if !bit(&sel.mask, x) { + continue; + } + for e in b.graphs[0].off[x] as usize..b.graphs[0].off[x + 1] as usize { + let mut g2 = b.graphs.clone(); + clear_bit(&mut g2[0].valid, e); + if w2_borrowed(&g2, &sel.mask, &b.b) != w2_before { + let dst = tgt_unpack(0, b.graphs[0].tgt[e]); + deleted = b.delete(0, x, dst); + break 'outer; + } + } + } + let w2_after = w2_borrowed(&b.graphs, &sel.mask, &b.b); + let g_ok = deleted && sel.mask == mask_before && w2_after != w2_before; + // i: zero allocation in admit + fold + let (a0, c0) = (alloc_bytes(), alloc_calls()); + let r = sel.admit(&store, &r1, &permit1, &cur, scope); + let v = match r { + Ok(m) => w2_borrowed(&b.graphs, m, &b.b), + Err(_) => -1, + }; + let (a1, c1) = (alloc_bytes(), alloc_calls()); + std::hint::black_box(v); + // f: stale frame after an advance + let mut rev: Vec = fx.p[..256].to_vec(); + rev.reverse(); + p.replace_tile(0, &rev).expect("replace"); + let cur2 = p.seal(); + let f_stale = sel.admit(&store, &r1, &permit1, &cur2, scope); + t.check("F15a", a_ok, "M1 and M2, each with its own permit, admit the SAME selection (same mask address, same fold answer)".into()); + t.check("F15b", b_ref == Err(ShareRefusal::NotPermitted), format!("M2 with only M1's permit -> {b_ref:?}")); + t.check( + "F15c", + matches!(c_unbound, Err(ShareRefusal::Bind(Refusal::UnknownClass(_)))) + && matches!(c_other, Err(ShareRefusal::ClassMismatch { .. })), + format!("unbound class -> {c_unbound:?}; other bound class -> {c_other:?}"), + ); + t.check( + "F15d", + matches!(d_sig, Err(ShareRefusal::Bind(Refusal::SignatureRevisionMismatch { .. }))), + format!("stale sig rev -> {d_sig:?}"), + ); + t.check("F15e", e_scope == Err(ShareRefusal::Scope), format!("another scope -> {e_scope:?}")); + t.check("F15f", f_stale == Err(ShareRefusal::StaleFrame), format!("stale frame after advance -> {f_stale:?}")); + t.check( + "F15g", + g_ok, + format!("mask bit-identical before/after the presence update; fold {w2_before} -> {w2_after}"), + ); + t.check( + "F15h", + std::ptr::eq(sel.admit(&store, &r1, &permit1, &cur, scope).map(|m| m.as_ptr()).unwrap_or(std::ptr::null()), sel.mask.as_ptr()), + "admit returns a borrow of the selection's own mask (&[u64] tied to &self): no mask is passed or copied between programs".into(), + ); + t.check("F15i", a1 == a0 && c1 == c0, format!("admit + fold allocated {} bytes in {} calls", a1 - a0, c1 - c0)); + } + + // ---- F16: AND/XOR/FOLD parity with the oracle ----------------------------------------- + { + let (p, q) = sets(&fx); + let mut bad: Vec = Vec::new(); + let mut n = 0; + for arm in Arm::ALL { + for &(al, bl) in &[(300, 500), (100, 200), (700, 900)] { + let b = bind(&fx, &[&p, &q], arm, al, bl); + let (got, routes) = folds(&b); + let want = orc(&fx, al, bl, &[]); + n += 1; + if got != want || !routes.is_empty() { + bad.push(format!("arm {} a<{al} b<{bl}: got {got:?} want {want:?} routes {routes:?}", arm.name())); + } + } + } + let o = orc(&fx, 300, 500, &[]); + t.check( + "F16", + bad.is_empty(), + format!( + "{n} (arm x params) runs, W2 direct/AND/XOR, W3 csr/front, W4 csr/front/tile, W5, W6 (plain and B) == oracle; sample W2={} W3={} W4={} W5={} W6={} W6b={}{}", + o.w2, + o.w3, + o.w4, + o.w5, + o.w6, + o.w6b, + bad.first().map(|s| format!(" FIRST BAD: {s}")).unwrap_or_default() + ), + ); + } + + // ---- F17: folds allocate 0 bytes ------------------------------------------------------ + { + let (p, q) = sets(&fx); + let b = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let mut sc = scratch(&b); + let mut tm = TileMatrix::build(&b.graphs).expect("<= 4096"); + let mut names = Vec::new(); + let mut run = |name: &'static str, f: &mut dyn FnMut() -> i64| { + let (a0, c0) = (alloc_bytes(), alloc_calls()); + let v = f(); + let (a1, c1) = (alloc_bytes(), alloc_calls()); + std::hint::black_box(v); + if a1 != a0 || c1 != c0 { + names.push(format!("{name}:{}B/{}calls", a1 - a0, c1 - c0)); + } + }; + let (g, a, bm) = (&b.graphs, &b.a, &b.b); + run("w2", &mut || w2(g, a, bm)); + run("w2_and", &mut || w2_and(g, a, bm, &mut sc)); + run("w2_xor", &mut || w2_xor(g, a, bm, &mut sc)); + run("w3_csr", &mut || w3_csr(g, a, bm)); + run("w3_front", &mut || w3_front(g, a, bm, &mut sc)); + run("w4_csr", &mut || w4_csr(g, a, bm, &mut sc)); + run("w4_front", &mut || w4_front(g, a, bm, &mut sc)); + run("w4_tile", &mut || { + tm.load(a, bm); + tm.fold() + }); + run("w5", &mut || w5(g, a, bm, &mut sc)); + run("w6", &mut || w6(g, a, Some(bm)).unwrap_or(-1)); + t.check( + "F17", + names.is_empty(), + format!("W2/W3/W4(csr,front,tile)/W5/W6 folds: allocations {names:?}; no tuple vector (folds read masks, offsets and targets only; signatures carry no Vec of tuples)"), + ); + } + + // ---- F18: the duplicate check is load-bearing -------------------------------------------- + { + let mut tiles: Vec> = fx.p.chunks(256).map(|c| c.to_vec()).collect(); + let dup = fx.p[0]; + tiles[3].push(dup); + let ws = WorkingSet::from_tiles(lance_graph_dt64::Width::W256, tiles, 8).expect("dup set"); + let f = ws.seal(); + let on = CoordIndex::build_with(&ws, &f, CFlags::default()).expect("on").lookup(&f, dup); + let off = CoordIndex::build_with( + &ws, + &f, + CFlags { + disable_dupcheck: true, + ..CFlags::default() + }, + ) + .expect("off") + .lookup(&f, dup); + t.check( + "F18", + on == Err(CRefusal::Ambiguous) && off.is_ok(), + format!("duplicate check on -> {on:?}; compiled out -> {off:?} (a silent wrong coordinate, so F4 fails under --disable dupcheck)"), + ); + } + + // ---- F19: the frame check is load-bearing --------------------------------------------------- + { + let (mut p, _q) = sets(&fx); + let f1 = p.seal(); + let on = CoordIndex::build_with(&p, &f1, CFlags::default()).expect("on"); + let off = CoordIndex::build_with( + &p, + &f1, + CFlags { + disable_framecheck: true, + ..CFlags::default() + }, + ) + .expect("off"); + let mut rev: Vec = fx.p[..256].to_vec(); + rev.reverse(); + p.replace_tile(0, &rev).expect("replace"); + let f2 = p.seal(); + let g = fx.p[0]; + let (r_on, r_off, truth) = (on.lookup(&f2, g), off.lookup(&f2, g), p.coord_a(&f2, g).ok().map(|v| v as u32)); + t.check( + "F19", + r_on == Err(CRefusal::StaleIndex) && r_off.is_ok() && r_off.ok() != truth, + format!("frame check on -> {r_on:?}; compiled out -> {r_off:?} but the truth under f2 is {truth:?} (so F6/F7/F9 fail under --disable framecheck)"), + ); + } + + // ---- F20: the binding guard is load-bearing ------------------------------------------------------ + { + let (mut p, q) = sets(&fx); + let b1 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let mut rev: Vec = fx.p[..256].to_vec(); + rev.reverse(); + p.replace_tile(0, &rev).expect("replace"); + let b2 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); + let truth = orc(&fx, A_LT, B_LT, &[]).w2; + let on = b1.guard(&[&p, &q], true); + let off = b1.guard(&[&p, &q], false); + let mut stale = b1.clone(); + stale.a = b2.a.clone(); + stale.b = b2.b.clone(); + let silent = w2(&stale.graphs, &stale.a, &stale.b); + t.check( + "F20", + matches!(on, Err(BindError::Stale(0))) && off.is_ok() && silent != truth, + format!("guard on -> {on:?}; compiled out -> {off:?} and the reused binding answers {silent} where the truth is {truth} (silent wrong answer, so F9 fails under --disable bindguard)"), + ); + } + + // ---- F21: an A-side selection change extends the set -------------------------------------------------- + { + let q = WorkingSet::build(&fx.q, 2).expect("Q"); + let old_ids = &fx.p[..800]; + let added = &fx.p[800..]; + let mut ext = WorkingSet::build(old_ids, 21).expect("old"); + let fo = ext.seal(); + let old_tiles = ext.tile_ids.clone(); + let old_coords: Vec = old_ids.iter().map(|&g| ext.coord_a(&fo, g).expect("old")).collect(); + let t0 = std::time::Instant::now(); + let touched = ext.extend(added).expect("extend"); + let t_ext = t0.elapsed().as_nanos() as f64 / 1000.0; + let fn_ = ext.seal(); + let mut full = WorkingSet::build(&fx.p, 22).expect("full"); + let t1 = std::time::Instant::now(); + full = { + drop(full); + WorkingSet::build(&fx.p, 22).expect("rebuild") + }; + let t_full = t1.elapsed().as_nanos() as f64 / 1000.0; + let ff = full.seal(); + let kept = old_ids + .iter() + .zip(&old_coords) + .all(|(&g, &c)| ext.coord_a(&fn_, g).ok() == Some(c) && coord_a_in(&ext.table, &fo, &old_tiles, ext.tw(), g).ok() == Some(c)); + let all_same = fx.p.iter().all(|&g| ext.coord_a(&fn_, g).ok() == full.coord_a(&ff, g).ok()); + let extends = ext.table.map(&fn_, 3).expect("t3").extends(ext.table.map(&fo, 3).expect("t3 old")); + let be = bind(&fx, &[&ext, &q], Arm::C, A_LT, B_LT); + let bf = bind(&fx, &[&full, &q], Arm::C, A_LT, B_LT); + let (ae, rb_e) = folds(&be); + let (af, rb_f) = folds(&bf); + let want = orc(&fx, A_LT, B_LT, &[]); + let same_graph = be.graphs == bf.graphs && be.a == bf.a && be.b == bf.b; + t.check( + "F21", + kept && all_same && extends && same_graph && ae == af && ae == want && rb_e.is_empty() && rb_f.is_empty() && touched == 1, + format!( + "extend by {} ids touched {touched} tile(s) via MapTable::advance; TileMap::extends={extends}; old coordinates kept={kept}; every coordinate == full rebuild {all_same}; binding structure equal {same_graph}; all workloads equal rebuild and oracle {}; extend {} vs full rebuild {} (preparation: reported, not gate)", + added.len(), + ae == af && ae == want, + fmt_us(t_ext, true), + fmt_us(t_full, true), + ), + ); + } + + // ======================= multi-domain composition (F22..F29) ======================= + // A domain is a working set; D domains over one corpus resolve cross-domain + // edges through the global id (arm routing under each domain's own frame). + let all: Vec = fx.p.iter().chain(fx.q.iter()).copied().collect(); + let split = |ids: &[u64], d: usize, base: u64| -> Vec { + let per = ids.len().div_ceil(d); + ids.chunks(per) + .enumerate() + .map(|(i, c)| WorkingSet::build(c, base + i as u64).expect("domain")) + .collect() + }; + let restrict = |a: &[Vec], k: usize| -> Vec> { + a.iter() + .enumerate() + .map(|(i, m)| if i == k { m.clone() } else { vec![0u64; m.len()] }) + .collect() + }; + let want_all = orc(&fx, A_LT, B_LT, &[]); + + // ---- F22: one / two / three domains == one domain over the union ---------------- + { + let mut bad = Vec::new(); + let mut line = Vec::new(); + for (d, arm) in [(1usize, Arm::A), (2, Arm::B), (3, Arm::C)] { + let doms = split(&all, d, 100 * d as u64); + let b = bind(&fx, &refs(&doms), arm, A_LT, B_LT); + let (got, routes) = folds(&b); + line.push(format!("D={d} arm {} W2={} W5={} W6={}", arm.name(), got.w2, got.w5, got.w6)); + if got != want_all || !routes.is_empty() || b.stats.dropped_edges != 0 { + bad.push(format!("D={d}: {got:?} dropped {}", b.stats.dropped_edges)); + } + } + t.check( + "F22", + bad.is_empty(), + format!("EXISTS/COUNT/DISTINCT/Bag == one domain == oracle for 1, 2, 3 domains ({}); {bad:?}", line.join("; ")), + ); + } + + // ---- F23: an edge crossing a domain boundary -------------------------------------- + { + let doms = split(&all, 2, 200); // P | Q + let cross_edges: Vec<(u64, u64)> = fx.edges.iter().copied().filter(|(s, d)| fx.p.contains(s) && fx.q.contains(d)).collect(); + let b = Binding::prepare(&refs(&doms), &cross_edges, Arm::C, &|g| fx.a(g), &|g| fx.b(g), A_LT, B_LT).expect("bind"); + let (got, routes) = folds(&b); + let want = oracle(&cross_edges, &|g| fx.a(g) < A_LT, &|g| fx.b(g) < B_LT, &[]); + // decode one cross edge by hand: target is (domain 1, the coordinate Q gave the id) + let (x, y) = cross_edges[0]; + let fq = doms[1].seal(); + let xc = doms[0].coord_a(&doms[0].seal(), x).expect("x"); + let want_n = noderef(1, doms[1].coord_a(&fq, y).expect("y")); + let found = (b.graphs[0].off[xc] as usize..b.graphs[0].off[xc + 1] as usize) + .any(|e| b.graphs[0].tgt[e] & CROSS != 0 && tgt_unpack(0, b.graphs[0].tgt[e]) == want_n); + t.check( + "F23", + got == want && routes.is_empty() && found && b.stats.dropped_edges == 0 && !cross_edges.is_empty(), + format!("{} cross-domain edges only: all workloads == oracle {}; edge {x:#x}->{y:#x} stored as CROSS | (domain 1, coord {})", cross_edges.len(), got == want, nr_coord(want_n)), + ); + } + + // ---- F24: a path crossing three domains ---------------------------------------------- + { + let doms = split(&all, 3, 300); + let (d0, d1, d2) = (&all[..467], &all[467..934], &all[934..]); + let x = d0.iter().copied().find(|&g| fx.a(g) < A_LT).expect("x"); + let y = d1[0]; + let z = d2.iter().copied().find(|&g| fx.b(g) < B_LT).expect("z"); + let w = d0.iter().copied().find(|&g| g != x && fx.b(g) < B_LT).expect("w"); + let path = vec![(x, y), (y, z), (z, w)]; + let run = |edges: &[(u64, u64)]| { + let b = Binding::prepare(&refs(&doms), edges, Arm::B, &|g| fx.a(g), &|g| fx.b(g), A_LT, B_LT).expect("bind"); + let (got, routes) = folds(&b); + let want = oracle(edges, &|g| fx.a(g) < A_LT, &|g| fx.b(g) < B_LT, &[]); + (got, want, routes) + }; + let (g3, w3, r3) = run(&path); + let (g2, w2o, r2) = run(&path[..2]); + let (g1, w1o, r1) = run(&path[..1]); + t.check( + "F24", + g3 == w3 && g2 == w2o && g1 == w1o && r3.is_empty() && r2.is_empty() && r1.is_empty() && g3.w4 == 1 && g2.w3 == 1 && g1.w3 == 0, + format!("x(domain 0)->y(domain 1)->z(domain 2)->w(domain 0): W4 over 3 hops={} (oracle {}), W3 over 2 hops={} and {} with only the first hop; csr, front and tile routes agree", g3.w4, w3.w4, g2.w3, g1.w3), + ); + } + + // ---- F25: the same global id in two selections ------------------------------------------- + { + let d2 = split(&all, 2, 400); + let d3 = split(&all, 3, 500); + let b2 = bind(&fx, &refs(&d2), Arm::A, A_LT, B_LT); + let b3 = bind(&fx, &refs(&d3), Arm::A, A_LT, B_LT); + let both_oracle = all.iter().filter(|&&g| fx.a(g) < A_LT && fx.b(g) < B_LT).count() as i64; + let mut tmp2: Vec> = b2.a.clone(); + let mut tmp3: Vec> = b3.a.clone(); + let c2 = and_count(&b2.a, &b2.b, &mut tmp2); + let c3 = and_count(&b3.a, &b3.b, &mut tmp3); + let g = all.iter().copied().find(|&g| fx.a(g) < A_LT && fx.b(g) < B_LT).expect("an id in both"); + let (f2, f3) = (d2.iter().map(|s| s.seal()).collect::>(), d3.iter().map(|s| s.seal()).collect::>()); + let loc = |doms: &[WorkingSet], fr: &[Frame]| doms.iter().enumerate().find_map(|(i, ws)| ws.coord_a(&fr[i], g).ok().map(|c| (i, c))); + let (l2, l3) = (loc(&d2, &f2), loc(&d3, &f3)); + let both_bits = |b: &Binding, l: (usize, usize)| bit(&b.a[l.0], l.1) && bit(&b.b[l.0], l.1); + t.check( + "F25", + c2 == both_oracle && c3 == both_oracle && l2.is_some() && l3.is_some() && both_bits(&b2, l2.unwrap()) && both_bits(&b3, l3.unwrap()), + format!("id {g:#x} is in selection A and selection B: coordinate {l2:?} under 2 domains, {l3:?} under 3; |A AND B| = {c2} = {c3} = oracle {both_oracle}"), + ); + } + + // ---- F26: a duplicate id across incorrectly configured domains is refused -------------------- + { + let good = split(&all, 3, 600); + let ok_union = union_check(&refs(&good)); + let overlapping = vec![ + WorkingSet::build(&all[..700], 610).expect("d1"), + WorkingSet::build(&all[400..1100], 611).expect("d2"), + ]; + let bad_union = union_check(&refs(&overlapping)); + // listed together in one table: Ambiguous from locate + let mut tiles: Vec> = all[..510].chunks(255).map(|c| c.to_vec()).collect(); + tiles[1].push(all[3]); + let together = WorkingSet::from_tiles(lance_graph_dt64::Width::W256, tiles, 612).expect("set"); + let amb = together.coord_a(&together.seal(), all[3]); + t.check( + "F26", + ok_union == Ok(all.len()) && matches!(bad_union, Err(g) if all[400..700].contains(&g)) && amb == Err(LocateRefusal::Ambiguous), + format!("disjoint 3 domains: union check {ok_union:?}; domains overlapping on 300 ids: {bad_union:?}; duplicate listed in one table -> {amb:?}"), + ); + } + + // ---- F27: a deleted cross-domain edge ---------------------------------------------------------- + { + let doms = split(&all, 2, 700); + let mut b = bind(&fx, &refs(&doms), Arm::C, A_LT, B_LT); + let idx: Vec = doms.iter().zip(&b.frames).map(|(ws, f)| CoordIndex::build_with(ws, f, cflags).expect("C")).collect(); + let frames = b.frames.clone(); + let (base, _) = folds(&b); + let (q_valid0, p_valid0) = (b.graphs[1].valid_edges(), b.graphs[0].valid_edges()); + let mut pick: Option<(u64, u64)> = None; + for &(s, d) in &fx.edges { + if !(fx.p.contains(&s) && fx.q.contains(&d) && fx.a(s) < A_LT) { + continue; + } + let (Some(sn), Some(dn)) = (route_global_c(&idx, &frames, s), route_global_c(&idx, &frames, d)) else { continue }; + let mut g2 = b.graphs.clone(); + if g2[nr_set(sn)].delete(nr_coord(sn), tgt_pack(nr_set(sn), dn)) && w2(&g2, &b.a, &b.b) != base.w2 { + pick = Some((s, d)); + break; + } + } + let (s, d) = pick.expect("an effective cross-domain deletion"); + let (sn, dn) = (route_global_c(&idx, &frames, s).unwrap(), route_global_c(&idx, &frames, d).unwrap()); + let done = b.delete(nr_set(sn), nr_coord(sn), dn); + let (after, routes) = folds(&b); + let want = orc(&fx, A_LT, B_LT, &[(s, d)]); + t.check( + "F27", + done && after == want && routes.is_empty() && after.w2 < base.w2 && b.graphs[1].valid_edges() == q_valid0 && b.graphs[0].valid_edges() == p_valid0 - 1, + format!("deleted {s:#x}->{d:#x} (domain 0 -> domain 1): W2 {} -> {} (oracle {}); domain 0 lost one edge, domain 1 untouched; frames unchanged", base.w2, after.w2, want.w2), + ); + } + + // ---- F28: historical replay across domains --------------------------------------------------------- + { + let mut doms = split(&all, 2, 800); + let (f_old0, f_old1) = (doms[0].seal(), doms[1].seal()); + let tiles_old: Vec> = doms.iter().map(|d| d.tile_ids.clone()).collect(); + let b1 = bind(&fx, &refs(&doms), Arm::A, A_LT, B_LT); + for (k, d) in doms.iter_mut().enumerate() { + let f = d.seal(); + let mut tile0: Vec = d.table.map(&f, 0).expect("t0").globals().to_vec(); + tile0.reverse(); + d.replace_tile(0, &tile0).expect("replace"); + let _ = k; + } + let fr_old = [f_old0, f_old1]; + // every cross target of b1 still decodes to the right global under the OLD frames + let mut decode_ok = true; + let mut cross_n = 0usize; + for (si, c) in b1.graphs.iter().enumerate() { + for x in 0..c.n { + for e in c.off[x] as usize..c.off[x + 1] as usize { + if c.tgt[e] & CROSS != 0 { + cross_n += 1; + let n = tgt_unpack(si, c.tgt[e]); + let tw = doms[nr_set(n)].tw(); + let g = doms[nr_set(n)].table.map(&fr_old[nr_set(n)], tiles_old[nr_set(n)][nr_coord(n) / tw]).ok().and_then(|v| v.global((nr_coord(n) % tw) as u8)); + let src_g = doms[si].table.map(&fr_old[si], tiles_old[si][x / doms[si].tw()]).ok().and_then(|v| v.global((x % doms[si].tw()) as u8)); + decode_ok &= g.is_some() && src_g.is_some() && fx.edges.contains(&(src_g.unwrap(), g.unwrap())); + } + } + } + } + // under the CURRENT frames the same coordinates mean other ids + let cur: Vec = doms.iter().map(|d| d.seal()).collect(); + let moved = (0..256usize).filter(|&c| doms[0].table.map(&fr_old[0], 0).unwrap().global(c as u8) != doms[0].table.map(&cur[0], 0).unwrap().global(c as u8)).count(); + let stale = b1.guard(&refs(&doms), true); + let (old_ans, _) = folds(&b1); + t.check( + "F28", + decode_ok && cross_n > 0 && moved > 0 && matches!(stale, Err(BindError::Stale(_))) && old_ans == want_all, + format!("{cross_n} cross-domain targets of the old binding all decode to the right ids under the old frames of BOTH domains; {moved} coordinates of tile 0 mean other ids under the new frames; the old binding is stale to the guard ({stale:?}) and still answers its own frames (== oracle {})", old_ans == want_all), + ); + } + + // ---- F29: aggregate composition laws --------------------------------------------------------------------- + { + let doms = split(&all, 3, 900); + let b = bind(&fx, &refs(&doms), Arm::C, A_LT, B_LT); + let g = &b.graphs; + let mut sc = scratch(&b); + let parts: Vec>> = (0..3).map(|k| restrict(&b.a, k)).collect(); + // EXISTS = OR of parts + let any_full = w2(g, &b.a, &b.b) > 0; + let any_or = parts.iter().any(|pk| w2(g, pk, &b.b) > 0); + let empty_b: Vec> = b.b.iter().map(|m| vec![0u64; m.len()]).collect(); + let none_or = parts.iter().any(|pk| w2(g, pk, &empty_b) > 0) || w2(g, &b.a, &empty_b) > 0; + // COUNT = checked sum over DISJOINT contributions + let w2_parts: Vec = parts.iter().map(|pk| w2(g, pk, &b.b)).collect(); + let sum_w2 = checked_sum(&w2_parts); + let full_w2 = w2(g, &b.a, &b.b); + // DISTINCT = exact union; the per-domain sum is WRONG + let w5_parts: Vec = parts.iter().map(|pk| w5(g, pk, &b.b, &mut sc)).collect(); + let sum_w5 = checked_sum(&w5_parts); + let full_w5 = w5(g, &b.a, &b.b, &mut sc); + let mut uni: Vec> = b.b.iter().map(|m| vec![0u64; m.len()]).collect(); + for pk in &parts { + step(g, pk, &mut sc.m1); + for si in 0..uni.len() { + ndarray::simd::mask_or_assign(&mut uni[si], &sc.m1[si]); + } + } + let exact_w5 = and_count(&uni, &b.b, &mut sc.m2); + // Bag: multiplicities preserved, checked i64 + let w6_parts: Vec = parts.iter().map(|pk| w6(g, pk, None).expect("fits")).collect(); + let w6b_parts: Vec = parts.iter().map(|pk| w6(g, pk, Some(&b.b)).expect("fits")).collect(); + let (sum_w6, sum_w6b) = (checked_sum(&w6_parts), checked_sum(&w6b_parts)); + let overflow = checked_sum(&[i64::MAX, 1]); + // overlapping domains evaluated independently: sums are WRONG, the exact union is right + let ov: Vec = vec![ + WorkingSet::build(&all[..700], 910).expect("d1"), + WorkingSet::build(&all[400..1100], 911).expect("d2"), + WorkingSet::build(&all[800..], 912).expect("d3"), + ]; + let member: Vec> = [&all[..700], &all[400..1100], &all[800..]].iter().map(|s| s.iter().copied().collect()).collect(); + let e_union: Vec<(u64, u64)> = fx.edges.iter().copied().filter(|(s, d)| member.iter().any(|m| m.contains(s) && m.contains(d))).collect(); + let want_u = oracle(&e_union, &|g| fx.a(g) < A_LT, &|g| fx.b(g) < B_LT, &[]); + let (mut s2, mut s5, mut s6) = (0i64, 0i64, 0i64); + let (mut xs, mut ys): (Vec, Vec) = (Vec::new(), Vec::new()); + for ws in &ov { + let bk = Binding::prepare(&[ws], &fx.edges, Arm::C, &|g| fx.a(g), &|g| fx.b(g), A_LT, B_LT).expect("domain binding"); + let mut sck = scratch(&bk); + let fr = ws.seal(); + s2 += w2(&bk.graphs, &bk.a, &bk.b); + s5 += w5(&bk.graphs, &bk.a, &bk.b, &mut sck); + s6 += w6(&bk.graphs, &bk.a, None).expect("fits"); + semijoin(&bk.graphs, &bk.b, &mut sck.m1); + ndarray::simd::mask_and(&bk.a[0], &sck.m1[0], &mut sck.m2[0]); + for_each_bit(&sck.m2[0], |c| xs.push(global_of(ws, &fr, c))); + step(&bk.graphs, &bk.a, &mut sck.m1); + ndarray::simd::mask_and(&sck.m1[0], &bk.b[0], &mut sck.m2[0]); + for_each_bit(&sck.m2[0], |c| ys.push(global_of(ws, &fr, c))); + } + xs.sort_unstable(); + xs.dedup(); + ys.sort_unstable(); + ys.dedup(); + let ok = any_full == any_or + && !none_or + && sum_w2 == Some(full_w2) + && full_w2 == want_all.w2 + && sum_w5 != Some(full_w5) + && exact_w5 == full_w5 + && full_w5 == want_all.w5 + && sum_w6 == Some(want_all.w6) + && sum_w6b == Some(want_all.w6b) + && overflow.is_none() + && union_check(&refs(&ov)).is_err() + && s2 != want_u.w2 + && s5 != want_u.w5 + && s6 != want_u.w6 + && xs.len() as i64 == want_u.w2 + && ys.len() as i64 == want_u.w5; + t.check( + "F29", + ok, + format!( + "disjoint domains: EXISTS=OR {any_or}; COUNT sum {sum_w2:?} = {full_w2}; DISTINCT sum of per-domain counts {sum_w5:?} is WRONG, exact union {exact_w5} = {full_w5}; Bag sums {sum_w6:?}/{sum_w6b:?} = oracle {}/{} (i64 checked, overflow detected {}). OVERLAPPING domains evaluated alone: sums COUNT {s2} DISTINCT {s5} BAG {s6} are WRONG vs oracle {}/{}/{}; exact union by global id {}/{} is right", + want_all.w6, + want_all.w6b, + overflow.is_none(), + want_u.w2, + want_u.w5, + want_u.w6, + xs.len(), + ys.len() + ), + ); + } + + println!("falsify_p1: {} of {} checks failed", t.fail, t.pass + t.fail); + if t.fail > 0 { + std::process::exit(1); + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs new file mode 100644 index 000000000..528088925 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs @@ -0,0 +1,1528 @@ +//! LAB: shared library of the D-GLOBAL-WHERE P1 probe (falsify_p1, sweep, big). +//! +//! Lab only. No production change; identities live ONLY in +//! `lance_graph_dt64::dr::{MapTable, LocalMap}`. Everything here is either an +//! instrument (allocator, rng, timers), a positional structure over DR +//! coordinates (masks, coordinate CSR, tile matrix), a derived index that is +//! built FROM `MapTable` views under one frame (arm C), or a LAB type the spec +//! names (`SharedSelection`, EXO-46). +//! +//! # Model +//! +//! * `WorkingSet`: ONE `MapTable` (own frame store and clock) holding up to 256 +//! DR256 tiles (TileIds are ordinals 0..tiles for a freshly built set). Its +//! members are chosen by the QUERY (not contiguous, not by id bits). +//! Coordinate of an identity = `tile_ordinal * tw + local`, `tw` = tile width +//! (64 or 256). For a set built by `WorkingSet::build(ids)` the coordinate +//! of `ids[i]` is `i`, and `extend` keeps that. +//! * Lanes are read through the pointer table at PREPARATION only +//! (`gather_lane`); folds read coordinate-indexed arrays (len `n_coords`, +//! padding = `PAD`). A lane array is therefore the source lane re-laid in +//! coordinate order; a fold never looks an identity up. +//! * Node reference (`noderef`): `(set << 16) | coord` (coord < 65536, set < +//! 32768). Coordinate-CSR targets store `coord` for a same-set target and +//! `CROSS | noderef` for a target in another working set. +//! +//! # API index (for sweep.rs / big.rs) +//! +//! * instruments: `CountingAlloc`, `alloc_bytes/alloc_calls/live_bytes/ +//! peak_bytes/reset_peak`, `Rng`, `SEED`, `time_runs`, `stats`, `Stage`, +//! `StageTimes`, `fmt_us`, `gate_label` +//! * bits: `bit`, `set_bit`, `clear_bit`, `popcount`, `for_each_bit`, `words_for` +//! * identity: `WorkingSet::{build, from_tiles, extend, replace_tile, +//! remove_tile, seal, gather_lane, valid_mask, coord_a, n_coords, tw}` +//! * routing: `route_batch_a_in`, `route_batch_b_in`, `route_batch_c`, +//! `CoordIndex::{build, build_in, build_with, lookup}`, `RouteStats`, +//! `COORD_UNMAPPED`, `COORD_AMBIGUOUS`, `Arm` +//! * relation view: `CoordCsr` (+ `delete`), `Binding::{prepare, rewhere_b, +//! guard, delete}`, `TileMatrix` +//! * where: `virtual_where`, `Prepared` (Quack WHERE over a corpus lane) +//! * folds: `w2`, `w2_and`, `w2_xor`, `w3_csr`, `w3_front`, `w4_csr`, +//! `w4_front`, `TileMatrix::fold` (W4 tile), `w5`, `w6` (+ `FoldScratch`, +//! `semijoin`, `step`) +//! * oracle: `oracle()` over a global edge list (HashSet/HashMap allowed here) +//! * EXO-46: `SharedSelection`, `ShareRefusal` +//! +//! Workload semantics (A, B are masks over the working-set coordinates): +//! W2 = |{x in A : exists x->y, y in B}|; W3 = |{x in A : exists x->y->z, z in B}|; +//! W4 = |{z in B : z reached from A in exactly 3 hops}| (distinct); +//! W5 = |{y in B : exists x in A, x->y}| (count distinct, 1 hop, as SQL G5); +//! W6 = sum over x in A, x->y of cnt(y), cnt(y) = outdeg(y), or with `Some(B)` +//! the out-edges of y into B (bag count, as SQL G6) = sum_y indegA[y]*cnt(y). +//! Only VALID (not deleted) edges take part in every fold. + +use std::alloc::{GlobalAlloc, Layout, System}; +use std::collections::{HashMap, HashSet}; +use std::sync::atomic::{AtomicUsize, Ordering::Relaxed}; +use std::time::Instant; + +use lance_graph_dt64::dr::{ + Frame, LocalMap, LocateRefusal, MapRead, MapRefusal, MapTable, RouteVersion, Scope, TileId, +}; +use lance_graph_dt64::{Axis, BindStore, MethodRef, Refusal, Width}; +use lance_graph_mask_risc::{execute_into, Foreign, LaneRef, Out, Planes, Program, Scratch, Value}; +use lance_graph_quack::{lower, Agg, Cmp, Col, Filter, Query}; + +// --------------------------------------------------------------------------- +// counting allocator (each binary declares the #[global_allocator] static) +// --------------------------------------------------------------------------- + +/// A pass-through allocator that counts bytes, calls, live bytes and the peak. +pub struct CountingAlloc; + +static ALLOC_BYTES: AtomicUsize = AtomicUsize::new(0); +static ALLOC_CALLS: AtomicUsize = AtomicUsize::new(0); +static LIVE_BYTES: AtomicUsize = AtomicUsize::new(0); +static PEAK_BYTES: AtomicUsize = AtomicUsize::new(0); + +// SAFETY: a pure pass-through to `System`; the atomics are the only addition. +unsafe impl GlobalAlloc for CountingAlloc { + unsafe fn alloc(&self, layout: Layout) -> *mut u8 { + ALLOC_BYTES.fetch_add(layout.size(), Relaxed); + ALLOC_CALLS.fetch_add(1, Relaxed); + let live = LIVE_BYTES.fetch_add(layout.size(), Relaxed) + layout.size(); + PEAK_BYTES.fetch_max(live, Relaxed); + // SAFETY: same layout, same contract as the caller's. + unsafe { System.alloc(layout) } + } + unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { + LIVE_BYTES.fetch_sub(layout.size(), Relaxed); + // SAFETY: `ptr` came from `alloc` above with this `layout`. + unsafe { System.dealloc(ptr, layout) } + } +} + +pub fn alloc_bytes() -> usize { + ALLOC_BYTES.load(Relaxed) +} +pub fn alloc_calls() -> usize { + ALLOC_CALLS.load(Relaxed) +} +pub fn live_bytes() -> usize { + LIVE_BYTES.load(Relaxed) +} +pub fn peak_bytes() -> usize { + PEAK_BYTES.load(Relaxed) +} +pub fn reset_peak() { + PEAK_BYTES.store(LIVE_BYTES.load(Relaxed), Relaxed); +} + +// --------------------------------------------------------------------------- +// deterministic data +// --------------------------------------------------------------------------- + +pub const SEED: u64 = 0x9E37_79B9_7F4A_7C15; + +/// SplitMix64. +pub struct Rng(pub u64); + +impl Rng { + pub fn new(seed: u64) -> Rng { + Rng(seed) + } + pub fn next_u64(&mut self) -> u64 { + self.0 = self.0.wrapping_add(0x9E37_79B9_7F4A_7C15); + let mut z = self.0; + z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); + z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); + z ^ (z >> 31) + } + pub fn below(&mut self, n: u64) -> u64 { + self.next_u64() % n + } + /// Uniform in `[0, 1)`. + pub fn unit(&mut self) -> f64 { + (self.next_u64() >> 11) as f64 / (1u64 << 53) as f64 + } +} + +// --------------------------------------------------------------------------- +// bit helpers +// --------------------------------------------------------------------------- + +#[inline] +pub fn words_for(n: usize) -> usize { + n.div_ceil(64) +} +#[inline] +pub fn bit(m: &[u64], i: usize) -> bool { + (m[i >> 6] >> (i & 63)) & 1 == 1 +} +#[inline] +pub fn set_bit(m: &mut [u64], i: usize) { + m[i >> 6] |= 1u64 << (i & 63); +} +#[inline] +pub fn clear_bit(m: &mut [u64], i: usize) { + m[i >> 6] &= !(1u64 << (i & 63)); +} +/// Set bits of a mask (`ndarray::simd::popcount_batch_u64`). +#[inline] +pub fn popcount(m: &[u64]) -> u64 { + ndarray::simd::popcount_batch_u64(m) +} +/// Call `f` with the index of every set bit, ascending. No allocation. +#[inline] +pub fn for_each_bit(m: &[u64], mut f: impl FnMut(usize)) { + for (w, &word) in m.iter().enumerate() { + let mut bits = word; + while bits != 0 { + f(w * 64 + bits.trailing_zeros() as usize); + bits &= bits - 1; + } + } +} + +// --------------------------------------------------------------------------- +// timing and stage helpers +// --------------------------------------------------------------------------- + +/// Run `f` `runs` times, returning each wall time in microseconds. +pub fn time_runs(runs: usize, mut f: impl FnMut()) -> Vec { + let mut out = Vec::with_capacity(runs); + for _ in 0..runs { + let t = Instant::now(); + f(); + out.push(t.elapsed().as_nanos() as f64 / 1000.0); + } + out +} + +/// `(median, p10, p90)` of a sample (sorts a copy). +pub fn stats(samples: &[f64]) -> (f64, f64, f64) { + let mut s = samples.to_vec(); + s.sort_by(|a, b| a.partial_cmp(b).unwrap()); + let at = |p: f64| s[(((s.len() - 1) as f64) * p).round() as usize]; + (at(0.5), at(0.1), at(0.9)) +} + +/// The measured stages of a query over an unbounded corpus (SPEC correction). +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Stage { + /// Global WHERE -> candidate ids (scan arm or attribute-index arm). + Discover, + /// Reachable demanded ids via the global relation index, bounded at 65,536. + Expand, + /// DR coordinate binding of exactly those ids (arms A/B/C). + Bind, + /// Coordinate CSR + presence bits restricted to the working set. + Project, + /// The fold over the working set. + Fold, +} + +impl Stage { + pub const ALL: [Stage; 5] = [Stage::Discover, Stage::Expand, Stage::Bind, Stage::Project, Stage::Fold]; + pub fn name(self) -> &'static str { + match self { + Stage::Discover => "discover", + Stage::Expand => "expand", + Stage::Bind => "bind", + Stage::Project => "project", + Stage::Fold => "fold", + } + } + fn idx(self) -> usize { + self as usize + } +} + +/// Accumulated nanoseconds per stage. `time` wraps one stage execution. +#[derive(Clone, Debug, Default)] +pub struct StageTimes { + ns: [u128; 5], + calls: [u64; 5], +} + +impl StageTimes { + pub fn new() -> StageTimes { + StageTimes::default() + } + /// Run `f`, charge its wall time to `stage`. + pub fn time(&mut self, stage: Stage, f: impl FnOnce() -> R) -> R { + let t = Instant::now(); + let r = f(); + self.ns[stage.idx()] += t.elapsed().as_nanos(); + self.calls[stage.idx()] += 1; + r + } + /// Charge an externally measured duration (nanoseconds). + pub fn add_ns(&mut self, stage: Stage, ns: u128) { + self.ns[stage.idx()] += ns; + self.calls[stage.idx()] += 1; + } + pub fn us(&self, stage: Stage) -> f64 { + self.ns[stage.idx()] as f64 / 1000.0 + } + pub fn calls(&self, stage: Stage) -> u64 { + self.calls[stage.idx()] + } + pub fn total_us(&self) -> f64 { + self.ns.iter().sum::() as f64 / 1000.0 + } + pub fn reset(&mut self) { + *self = StageTimes::default(); + } + /// One line per stage. `cold` stages (preparation) are labelled, not gated. + pub fn report(&self, cold: bool) -> String { + Stage::ALL + .iter() + .map(|&s| format!("{}={}", s.name(), fmt_us(self.us(s), cold))) + .collect::>() + .join(" ") + } +} + +/// Gate label for a microsecond value: warm values >= 1000 us are a failed +/// gate; cold/preparation values >= 1000 us are reported, not gated. +pub fn gate_label(us: f64, cold: bool) -> &'static str { + if us < 1000.0 { + "" + } else if cold { + " COLD (reported, not gate)" + } else { + " FAILED-GATE" + } +} + +pub fn fmt_us(us: f64, cold: bool) -> String { + format!("{us:.3}us{}", gate_label(us, cold)) +} + +// --------------------------------------------------------------------------- +// working set +// --------------------------------------------------------------------------- + +/// Tiles a working set may hold: the `Extent::DR256_GLOBAL_X64` reservation. +pub const MAX_TILES: usize = 256; +/// Lane value at coordinates that hold no identity. +pub const PAD: i32 = i32::MAX; + +#[derive(Debug)] +pub enum WsError { + Map(MapRefusal), + Read(MapRead), +} +impl From for WsError { + fn from(e: MapRefusal) -> WsError { + WsError::Map(e) + } +} +impl From for WsError { + fn from(e: MapRead) -> WsError { + WsError::Read(e) + } +} + +/// One `MapTable`, up to 256 tiles, <= 65,536 identities chosen by the query. +#[derive(Debug)] +pub struct WorkingSet { + pub table: MapTable, + /// The tile list `locate` reads, in ordinal order. + pub tile_ids: Vec, + pub width: Width, + source: u64, + relmap: u64, +} + +impl WorkingSet { + /// Explicit tile contents (a tile may even repeat another tile's id: that + /// is the Ambiguous fixture). Refuses duplicates inside one tile. + pub fn from_tiles(width: Width, tiles: Vec>, source: u64) -> Result { + if tiles.len() > MAX_TILES { + return Err(MapRefusal::TooMany.into()); + } + let mut table = MapTable::new(source, 0); + let mut changes = Vec::with_capacity(tiles.len()); + let mut tile_ids = Vec::with_capacity(tiles.len()); + for (t, g) in tiles.iter().enumerate() { + changes.push((t as TileId, Some(LocalMap::prepare(width, g)?))); + tile_ids.push(t as TileId); + } + table.advance(source, 0, changes); + Ok(WorkingSet { + table, + tile_ids, + width, + source, + relmap: 0, + }) + } + + /// Chunk `ids` (in the given order) into tiles of the width + /// `Axis::for_survivors` picks. The coordinate of `ids[i]` is `i`. + pub fn build(ids: &[u64], source: u64) -> Result { + if ids.len() > MAX_TILES * 256 { + return Err(MapRefusal::TooMany.into()); + } + let width = Axis::for_survivors(ids.len()).tile; + let tw = width.positions(); + let tiles: Vec> = ids.chunks(tw).map(|c| c.to_vec()).collect(); + WorkingSet::from_tiles(width, tiles, source) + } + + pub fn tw(&self) -> usize { + self.width.positions() + } + pub fn n_coords(&self) -> usize { + self.tile_ids.len() * self.tw() + } + pub fn seal(&self) -> Frame { + self.table.seal() + } + /// Identities held under `frame` (sum of tile lengths). + pub fn n_ids(&self, frame: &Frame) -> usize { + self.tile_ids + .iter() + .filter_map(|&t| self.table.map(frame, t).ok()) + .map(|m| m.len()) + .sum() + } + + /// Arm A for one id: `MapTable::locate` over this set's tile list. + pub fn coord_a(&self, frame: &Frame, g: u64) -> Result { + coord_a_in(&self.table, frame, &self.tile_ids, self.tw(), g) + } + + /// Bit per coordinate that holds an identity under `frame`. + pub fn valid_mask(&self, frame: &Frame) -> Vec { + let tw = self.tw(); + let mut m = vec![0u64; words_for(self.n_coords())]; + for (o, &t) in self.tile_ids.iter().enumerate() { + if let Ok(view) = self.table.map(frame, t) { + for l in 0..view.len() { + set_bit(&mut m, o * tw + l); + } + } + } + m + } + + /// Re-lay a source lane in coordinate order (preparation only: the one + /// place identity is read to fetch a value). Length `n_coords`, `PAD` + /// where no identity. + pub fn gather_lane(&self, frame: &Frame, source: impl Fn(u64) -> i32) -> Vec { + let tw = self.tw(); + let mut lane = vec![PAD; self.n_coords()]; + for (o, &t) in self.tile_ids.iter().enumerate() { + if let Ok(view) = self.table.map(frame, t) { + for (l, &g) in view.globals().iter().enumerate() { + lane[o * tw + l] = source(g); + } + } + } + lane + } + + /// Append identities: fill the last non-full tile, then new tiles, in ONE + /// `MapTable::advance`. An existing tile only ever grows by appending, so + /// `TileMap::extends` holds and every old coordinate is kept. Returns the + /// number of tiles changed. + pub fn extend(&mut self, new_globals: &[u64]) -> Result { + if new_globals.is_empty() { + return Ok(0); + } + let frame = self.table.seal(); + let tw = self.tw(); + let mut changes: Vec<(TileId, Option)> = Vec::new(); + let mut rest = new_globals; + if let Some(&last) = self.tile_ids.last() { + let view = self.table.map(&frame, last)?; + let free = tw - view.len(); + if free > 0 { + let take = free.min(rest.len()); + let mut v = view.globals().to_vec(); + v.extend_from_slice(&rest[..take]); + changes.push((last, Some(LocalMap::prepare(self.width, &v)?))); + rest = &rest[take..]; + } + } + let mut next_ids = self.tile_ids.clone(); + while !rest.is_empty() { + if next_ids.len() >= MAX_TILES { + return Err(MapRefusal::TooMany.into()); + } + let take = tw.min(rest.len()); + let t = next_ids.last().map_or(0, |l| l + 1); + changes.push((t, Some(LocalMap::prepare(self.width, &rest[..take])?))); + next_ids.push(t); + rest = &rest[take..]; + } + let n = changes.len(); + self.source += 1; + self.table.advance(self.source, self.relmap, changes); + self.tile_ids = next_ids; + Ok(n) + } + + /// Replace one tile's map (a reorder / removal of an id is a replacement). + pub fn replace_tile(&mut self, tile: TileId, globals: &[u64]) -> Result { + let m = LocalMap::prepare(self.width, globals)?; + self.source += 1; + Ok(self.table.advance(self.source, self.relmap, vec![(tile, Some(m))])) + } + + /// Remove a tile (an event to `None`). `tile_ids` is NOT edited: callers + /// that read the new frame pass the reduced list to the `_in` functions. + pub fn remove_tile(&mut self, tile: TileId) -> RouteVersion { + self.source += 1; + self.table.advance(self.source, self.relmap, vec![(tile, None)]) + } +} + +// --------------------------------------------------------------------------- +// routing arms (identical answers, including refusals) +// --------------------------------------------------------------------------- + +pub const COORD_UNMAPPED: u32 = u32::MAX; +pub const COORD_AMBIGUOUS: u32 = u32::MAX - 1; + +#[derive(Default, Clone, Copy, Debug, PartialEq, Eq)] +pub struct RouteStats { + /// `MapTable::locate` calls made (0 for arm C queries). + pub locate_calls: u64, + pub distinct: u64, + pub unmapped: u64, + pub ambiguous: u64, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Arm { + A, + B, + C, +} +impl Arm { + pub const ALL: [Arm; 3] = [Arm::A, Arm::B, Arm::C]; + pub fn name(self) -> &'static str { + match self { + Arm::A => "A", + Arm::B => "B", + Arm::C => "C", + } + } +} + +/// Arm A for one id over an explicit tile list. +pub fn coord_a_in( + table: &MapTable, + frame: &Frame, + tiles: &[TileId], + tw: usize, + g: u64, +) -> Result { + let (ordinal, local) = table.locate(frame, tiles, g)?; + Ok(ordinal as usize * tw + usize::from(local)) +} + +fn code_of(r: Result) -> Result { + match r { + Ok(c) => Ok(c as u32), + Err(LocateRefusal::Unmapped) => Ok(COORD_UNMAPPED), + Err(LocateRefusal::Ambiguous) => Ok(COORD_AMBIGUOUS), + Err(e) => Err(e), + } +} + +/// Arm A over a batch: one `locate` per endpoint. `out[i]` is the coordinate +/// or `COORD_UNMAPPED` / `COORD_AMBIGUOUS`. A frame-read refusal is `Err` +/// (it hits every id alike). +pub fn route_batch_a_in( + table: &MapTable, + frame: &Frame, + tiles: &[TileId], + tw: usize, + endpoints: &[u64], + out: &mut [u32], +) -> Result { + let mut st = RouteStats::default(); + for (i, &g) in endpoints.iter().enumerate() { + st.locate_calls += 1; + let c = code_of(coord_a_in(table, frame, tiles, tw, g))?; + tally(&mut st, c); + out[i] = c; + } + Ok(st) +} + +/// Arm B over a batch: distinct sorted ids, `locate` ONCE each, then resolve +/// endpoints by binary search into the transient sorted array (dropped on +/// return: not an index). +pub fn route_batch_b_in( + table: &MapTable, + frame: &Frame, + tiles: &[TileId], + tw: usize, + endpoints: &[u64], + out: &mut [u32], +) -> Result { + let mut d: Vec = endpoints.to_vec(); + d.sort_unstable(); + d.dedup(); + let mut codes: Vec = Vec::with_capacity(d.len()); + let mut st = RouteStats { + distinct: d.len() as u64, + ..RouteStats::default() + }; + for &g in &d { + st.locate_calls += 1; + codes.push(code_of(coord_a_in(table, frame, tiles, tw, g))?); + } + for (i, &g) in endpoints.iter().enumerate() { + let at = d.binary_search(&g).expect("endpoint is in the distinct set"); + out[i] = codes[at]; + tally(&mut st, codes[at]); + } + Ok(st) +} + +fn tally(st: &mut RouteStats, c: u32) { + if c == COORD_UNMAPPED { + st.unmapped += 1; + } else if c == COORD_AMBIGUOUS { + st.ambiguous += 1; + } +} + +/// Switches for the falsifier disable runs. +#[derive(Clone, Copy, Debug, Default)] +pub struct CFlags { + /// Skip marking equal adjacent globals Ambiguous (first coordinate wins). + pub disable_dupcheck: bool, + /// Skip the `same_issue` frame check in `lookup`. + pub disable_framecheck: bool, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum CRefusal { + StaleIndex, + Ambiguous, + Unmapped, +} + +/// Arm C (LAB, optional acceleration): a sorted `(global, coord)` array built +/// FROM `table.map(frame, t).globals()` of every tile under ONE frame. It +/// carries that frame and refuses any other. Never an identity authority. +#[derive(Clone, Debug)] +pub struct CoordIndex { + built: Frame, + entries: Vec<(u64, u32)>, + flags: CFlags, +} + +impl CoordIndex { + pub fn build(ws: &WorkingSet, frame: &Frame) -> Result { + CoordIndex::build_with(ws, frame, CFlags::default()) + } + pub fn build_with(ws: &WorkingSet, frame: &Frame, flags: CFlags) -> Result { + CoordIndex::build_in(&ws.table, &ws.tile_ids, ws.tw(), frame, flags) + } + pub fn build_in( + table: &MapTable, + tiles: &[TileId], + tw: usize, + frame: &Frame, + flags: CFlags, + ) -> Result { + let mut raw: Vec<(u64, u32)> = Vec::new(); + for (o, &t) in tiles.iter().enumerate() { + let view = table.map(frame, t).map_err(LocateRefusal::Read)?; + for (l, &g) in view.globals().iter().enumerate() { + raw.push((g, (o * tw + l) as u32)); + } + } + raw.sort_unstable(); + let mut entries: Vec<(u64, u32)> = Vec::with_capacity(raw.len()); + for (g, c) in raw { + match entries.last_mut() { + Some(last) if last.0 == g => { + if !flags.disable_dupcheck { + last.1 = COORD_AMBIGUOUS; + } + } + _ => entries.push((g, c)), + } + } + Ok(CoordIndex { + built: frame.clone(), + entries, + flags, + }) + } + pub fn frame(&self) -> &Frame { + &self.built + } + pub fn len(&self) -> usize { + self.entries.len() + } + pub fn is_empty(&self) -> bool { + self.entries.is_empty() + } + /// One binary search; refuses a frame this index was not built for. + pub fn lookup(&self, frame: &Frame, g: u64) -> Result { + if !self.flags.disable_framecheck && !frame.same_issue(&self.built) { + return Err(CRefusal::StaleIndex); + } + match self.entries.binary_search_by_key(&g, |e| e.0) { + Ok(at) if self.entries[at].1 == COORD_AMBIGUOUS => Err(CRefusal::Ambiguous), + Ok(at) => Ok(self.entries[at].1), + Err(_) => Err(CRefusal::Unmapped), + } + } +} + +/// Arm C over a batch: 0 `locate` calls. `StaleIndex` is `Err`. +pub fn route_batch_c( + idx: &CoordIndex, + frame: &Frame, + endpoints: &[u64], + out: &mut [u32], +) -> Result { + let mut st = RouteStats::default(); + for (i, &g) in endpoints.iter().enumerate() { + let c = match idx.lookup(frame, g) { + Ok(c) => c, + Err(CRefusal::Unmapped) => COORD_UNMAPPED, + Err(CRefusal::Ambiguous) => COORD_AMBIGUOUS, + Err(CRefusal::StaleIndex) => return Err(CRefusal::StaleIndex), + }; + tally(&mut st, c); + out[i] = c; + } + Ok(st) +} + +// --------------------------------------------------------------------------- +// node references and the coordinate CSR (the project stage) +// --------------------------------------------------------------------------- + +/// Marks a CSR target that lives in another working set. +pub const CROSS: u32 = 1 << 31; +pub const UNROUTED: u32 = u32::MAX; + +#[inline] +pub fn noderef(set: usize, coord: usize) -> u32 { + ((set as u32) << 16) | coord as u32 +} +#[inline] +pub fn nr_set(n: u32) -> usize { + ((n >> 16) & 0x7FFF) as usize +} +#[inline] +pub fn nr_coord(n: u32) -> usize { + (n & 0xFFFF) as usize +} +/// CSR target encoding: local coord, or `CROSS | noderef` for another set. +#[inline] +pub fn tgt_pack(src_set: usize, dst: u32) -> u32 { + if nr_set(dst) == src_set { + nr_coord(dst) as u32 + } else { + CROSS | dst + } +} +#[inline] +pub fn tgt_unpack(src_set: usize, t: u32) -> u32 { + if t & CROSS != 0 { + t & !CROSS + } else { + noderef(src_set, t as usize) + } +} + +/// Per working set: edges by source coordinate. `valid` is the presence +/// plane over edge slots; a deletion clears a bit and moves no coordinate. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct CoordCsr { + pub n: usize, + pub off: Vec, + pub tgt: Vec, + pub valid: Vec, +} + +impl CoordCsr { + /// Counting-sort the routed edges whose source is in set `si`. + pub fn from_routed(si: usize, n_coords: usize, edges: &[(u32, u32)]) -> CoordCsr { + let mut off = vec![0u32; n_coords + 1]; + for &(s, _) in edges { + if nr_set(s) == si { + off[nr_coord(s) + 1] += 1; + } + } + for i in 0..n_coords { + off[i + 1] += off[i]; + } + let total = off[n_coords] as usize; + let mut tgt = vec![0u32; total]; + let mut cur: Vec = off[..n_coords].to_vec(); + for &(s, d) in edges { + if nr_set(s) == si { + let x = nr_coord(s); + tgt[cur[x] as usize] = tgt_pack(si, d); + cur[x] += 1; + } + } + let mut valid = vec![0u64; words_for(total)]; + for e in 0..total { + set_bit(&mut valid, e); + } + CoordCsr { + n: n_coords, + off, + tgt, + valid, + } + } + pub fn edges(&self) -> usize { + self.tgt.len() + } + pub fn valid_edges(&self) -> usize { + popcount(&self.valid) as usize + } + /// Clear the presence bit of one valid edge `x -> t` (packed target). + pub fn delete(&mut self, x: usize, t: u32) -> bool { + for e in self.off[x] as usize..self.off[x + 1] as usize { + if self.tgt[e] == t && bit(&self.valid, e) { + clear_bit(&mut self.valid, e); + return true; + } + } + false + } +} + +// --------------------------------------------------------------------------- +// the binding: routed endpoints, coordinate CSR, selections (bind + project) +// --------------------------------------------------------------------------- + +#[derive(Debug)] +pub enum BindError { + Locate(LocateRefusal), + C(CRefusal), + /// An endpoint id is held by more than one tile of a set. + Ambiguous(u64), + /// The binding's frame of set `i` is no longer that set's current seal. + Stale(usize), +} + +#[derive(Clone, Copy, Debug, Default)] +pub struct BindStats { + pub locate_calls: u64, + pub endpoints: usize, + /// Edges with an endpoint outside every set (dropped, not routed). + pub dropped_edges: usize, +} + +/// A reusable binding over one or more working sets: the frames it was built +/// under, the coordinate CSR per set, the coordinate-ordered lanes and the +/// A/B masks. Reuse is legal only while `guard` says every frame is current. +#[derive(Clone, Debug)] +pub struct Binding { + pub frames: Vec, + pub graphs: Vec, + pub valid: Vec>, + pub lane_a: Vec>, + pub lane_b: Vec>, + pub a: Vec>, + pub b: Vec>, + pub stats: BindStats, +} + +impl Binding { + /// Route every endpoint of `edges` (global ids) with `arm` into the sets, + /// build the coordinate CSR per set, gather the lanes and evaluate the + /// virtual WHERE (`a < a_lt`, `b < b_lt`). The first set that maps an id + /// owns it. + pub fn prepare( + sets: &[&WorkingSet], + edges: &[(u64, u64)], + arm: Arm, + a_of: &dyn Fn(u64) -> i32, + b_of: &dyn Fn(u64) -> i32, + a_lt: i32, + b_lt: i32, + ) -> Result { + let frames: Vec = sets.iter().map(|s| s.seal()).collect(); + let mut endpoints: Vec = Vec::with_capacity(edges.len() * 2); + for &(s, d) in edges { + endpoints.push(s); + endpoints.push(d); + } + let mut routed = vec![UNROUTED; endpoints.len()]; + let mut out = vec![0u32; endpoints.len()]; + let mut stats = BindStats { + endpoints: endpoints.len(), + ..BindStats::default() + }; + for (si, ws) in sets.iter().enumerate() { + let st = match arm { + Arm::A => route_batch_a_in(&ws.table, &frames[si], &ws.tile_ids, ws.tw(), &endpoints, &mut out) + .map_err(BindError::Locate)?, + Arm::B => route_batch_b_in(&ws.table, &frames[si], &ws.tile_ids, ws.tw(), &endpoints, &mut out) + .map_err(BindError::Locate)?, + Arm::C => { + let idx = CoordIndex::build(ws, &frames[si]).map_err(BindError::Locate)?; + route_batch_c(&idx, &frames[si], &endpoints, &mut out).map_err(BindError::C)? + } + }; + stats.locate_calls += st.locate_calls; + for i in 0..endpoints.len() { + if routed[i] != UNROUTED || out[i] == COORD_UNMAPPED { + continue; + } + if out[i] == COORD_AMBIGUOUS { + return Err(BindError::Ambiguous(endpoints[i])); + } + routed[i] = noderef(si, out[i] as usize); + } + } + let mut pairs: Vec<(u32, u32)> = Vec::with_capacity(edges.len()); + for e in 0..edges.len() { + let (s, d) = (routed[2 * e], routed[2 * e + 1]); + if s == UNROUTED || d == UNROUTED { + stats.dropped_edges += 1; + } else { + pairs.push((s, d)); + } + } + let mut graphs = Vec::new(); + let mut valid = Vec::new(); + let mut lane_a = Vec::new(); + let mut lane_b = Vec::new(); + let mut a = Vec::new(); + let mut b = Vec::new(); + for (si, ws) in sets.iter().enumerate() { + let n = ws.n_coords(); + graphs.push(CoordCsr::from_routed(si, n, &pairs)); + let v = ws.valid_mask(&frames[si]); + let la = ws.gather_lane(&frames[si], a_of); + let lb = ws.gather_lane(&frames[si], b_of); + let mut ma = vec![0u64; words_for(n)]; + let mut mb = vec![0u64; words_for(n)]; + virtual_where(&la, a_lt, &v, &mut ma); + virtual_where(&lb, b_lt, &v, &mut mb); + valid.push(v); + lane_a.push(la); + lane_b.push(lb); + a.push(ma); + b.push(mb); + } + Ok(Binding { + frames, + graphs, + valid, + lane_a, + lane_b, + a, + b, + stats, + }) + } + + /// A B-side parameter change: re-run only the virtual WHERE. + pub fn rewhere_b(&mut self, b_lt: i32) { + for si in 0..self.b.len() { + virtual_where(&self.lane_b[si], b_lt, &self.valid[si], &mut self.b[si]); + } + } + + /// The version guard: every frame the binding was built under must still + /// be the current seal of its set. `enabled = false` is the `bindguard` + /// disable run (the guard never refuses). + pub fn guard(&self, sets: &[&WorkingSet], enabled: bool) -> Result<(), BindError> { + if !enabled { + return Ok(()); + } + for (si, ws) in sets.iter().enumerate() { + if !self.frames[si].same_issue(&ws.seal()) { + return Err(BindError::Stale(si)); + } + } + Ok(()) + } + + /// Presence-only update: clear one edge `(set si, src coord x) -> dst`. + pub fn delete(&mut self, si: usize, x: usize, dst: u32) -> bool { + let t = tgt_pack(si, dst); + self.graphs[si].delete(x, t) + } +} + +/// Arm C routing of one global id across sets (index per set): the noderef. +pub fn route_global_c(idx: &[CoordIndex], frames: &[Frame], g: u64) -> Option { + for (si, ix) in idx.iter().enumerate() { + if let Ok(c) = ix.lookup(&frames[si], g) { + return Some(noderef(si, c as usize)); + } + } + None +} + +// --------------------------------------------------------------------------- +// virtual WHERE +// --------------------------------------------------------------------------- + +/// The virtual WHERE over a working set: `lane[c] < lt` at every coordinate +/// that holds an identity (`valid`), as a coordinate mask. `out` has +/// `words_for(lane.len())` words. +pub fn virtual_where(lane: &[i32], lt: i32, valid: &[u64], out: &mut [u64]) { + ndarray::simd::lt_i32_to_mask(lane, lt, out); + ndarray::simd::mask_and_assign(out, valid); +} + +/// One Quack query over one `i32` lane of `n_rows` rows, lowered once (the +/// global scan arm of `discover`, and `Agg::Count` for G1). +pub struct Prepared { + program: Program, + scratch: Scratch<'static>, + n_rows: usize, +} + +impl Prepared { + pub fn new(cmp: Cmp, agg: Agg, n_rows: usize) -> Prepared { + let q = Query { + filter: Filter::cmp(Col(0), cmp), + agg, + }; + let program = lower(&q).expect("quack lowers"); + let scratch = Scratch::for_program(&program, n_rows).expect("scratch carves"); + Prepared { + program, + scratch, + n_rows, + } + } + /// `Agg::Rows`: the kept mask lands in `out` (`words_for(n_rows)` long). + pub fn keep(&mut self, lane: &[i32], live: &[u64], out: &mut [u64]) { + let masks: [&[u64]; 1] = [live]; + let lanes = [LaneRef::I32(lane)]; + let planes = Planes { + n_rows: self.n_rows, + masks: &masks, + lanes: &lanes, + }; + execute_into(&self.program, &planes, &Foreign::NONE, &mut self.scratch, Out::Mask(out)) + .expect("mask-risc runs"); + } + /// `Agg::Count`. + pub fn count(&mut self, lane: &[i32], live: &[u64]) -> usize { + let masks: [&[u64]; 1] = [live]; + let lanes = [LaneRef::I32(lane)]; + let planes = Planes { + n_rows: self.n_rows, + masks: &masks, + lanes: &lanes, + }; + match execute_into(&self.program, &planes, &Foreign::NONE, &mut self.scratch, Out::None) + .expect("mask-risc runs") + { + Value::Count(c) => c, + other => panic!("expected Value::Count, got {other:?}"), + } + } +} + +// --------------------------------------------------------------------------- +// folds over the coordinate CSR (no allocation; scratch is passed in) +// --------------------------------------------------------------------------- + +/// Reusable masks and queues for the folds, sized once per binding. +pub struct FoldScratch { + pub m1: Vec>, + pub m2: Vec>, + pub m3: Vec>, + pub seen: Vec>, + pub q_a: Vec, + pub q_b: Vec, +} + +impl FoldScratch { + /// `sizes[i]` = coordinates of set `i`. + pub fn new(sizes: &[usize]) -> FoldScratch { + let mk = || sizes.iter().map(|&n| vec![0u64; words_for(n)]).collect::>(); + let total: usize = sizes.iter().sum(); + FoldScratch { + m1: mk(), + m2: mk(), + m3: mk(), + seen: mk(), + q_a: Vec::with_capacity(total), + q_b: Vec::with_capacity(total), + } + } +} + +fn pop_all(m: &[Vec]) -> i64 { + m.iter().map(|w| popcount(w) as i64).sum() +} + +/// `|a AND m|` summed over sets, using `tmp` (distinct from `a` and `m`). +pub fn and_count(a: &[Vec], m: &[Vec], tmp: &mut [Vec]) -> i64 { + let mut total = 0i64; + for si in 0..a.len() { + ndarray::simd::mask_and(&a[si], &m[si], &mut tmp[si]); + total += popcount(&tmp[si]) as i64; + } + total +} + +/// `out[x]` = x has a valid edge into `target` (row pass over every row). +pub fn semijoin(g: &[CoordCsr], target: &[Vec], out: &mut [Vec]) { + for (si, c) in g.iter().enumerate() { + out[si].fill(0); + for x in 0..c.n { + for e in c.off[x] as usize..c.off[x + 1] as usize { + if bit(&c.valid, e) { + let n = tgt_unpack(si, c.tgt[e]); + if bit(&target[nr_set(n)], nr_coord(n)) { + set_bit(&mut out[si], x); + break; + } + } + } + } + } +} + +/// `dst` = the 1-hop neighbour set of `src` over valid edges (scatter OR). +pub fn step(g: &[CoordCsr], src: &[Vec], dst: &mut [Vec]) { + for d in dst.iter_mut() { + d.fill(0); + } + for (si, c) in g.iter().enumerate() { + for_each_bit(&src[si], |x| { + for e in c.off[x] as usize..c.off[x + 1] as usize { + if bit(&c.valid, e) { + let n = tgt_unpack(si, c.tgt[e]); + set_bit(&mut dst[nr_set(n)], nr_coord(n)); + } + } + }); + } +} + +fn hits_b(g: &[CoordCsr], si: usize, x: usize, b: &[Vec]) -> bool { + let c = &g[si]; + for e in c.off[x] as usize..c.off[x + 1] as usize { + if bit(&c.valid, e) { + let n = tgt_unpack(si, c.tgt[e]); + if bit(&b[nr_set(n)], nr_coord(n)) { + return true; + } + } + } + false +} + +fn hits_b2(g: &[CoordCsr], si: usize, x: usize, b: &[Vec]) -> bool { + let c = &g[si]; + for e in c.off[x] as usize..c.off[x + 1] as usize { + if bit(&c.valid, e) { + let n = tgt_unpack(si, c.tgt[e]); + if hits_b(g, nr_set(n), nr_coord(n), b) { + return true; + } + } + } + false +} + +/// W2, direct: for each x in A, early-exit scan of its edges into B. +pub fn w2(g: &[CoordCsr], a: &[Vec], b: &[Vec]) -> i64 { + let mut count = 0i64; + for si in 0..g.len() { + for_each_bit(&a[si], |x| { + if hits_b(g, si, x, b) { + count += 1; + } + }); + } + count +} + +/// W2 over ONE set (set 0) with a BORROWED A mask: the fold borrows the +/// selection's mask (EXO-46), nothing is copied or passed between programs. +pub fn w2_borrowed(g: &[CoordCsr], a: &[u64], b: &[Vec]) -> i64 { + let mut count = 0i64; + for_each_bit(a, |x| { + if hits_b(g, 0, x, b) { + count += 1; + } + }); + count +} + +/// W2 as mask algebra: `popcount(A AND semijoin(B))`. +pub fn w2_and(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { + semijoin(g, b, &mut sc.m1); + and_count(a, &sc.m1, &mut sc.m2) +} + +/// W2 through XOR: `|A AND S| = (|A| + |S| - |A XOR S|) / 2`. +pub fn w2_xor(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { + semijoin(g, b, &mut sc.m1); + let mut x = 0i64; + for si in 0..a.len() { + ndarray::simd::mask_xor(&a[si], &sc.m1[si], &mut sc.m2[si]); + x += popcount(&sc.m2[si]) as i64; + } + (pop_all(a) + pop_all(&sc.m1) - x) / 2 +} + +/// W3, DFS with early exit per source. +pub fn w3_csr(g: &[CoordCsr], a: &[Vec], b: &[Vec]) -> i64 { + let mut count = 0i64; + for si in 0..g.len() { + for_each_bit(&a[si], |x| { + if hits_b2(g, si, x, b) { + count += 1; + } + }); + } + count +} + +/// W3 by frontier masks: `popcount(A AND semijoin(semijoin(B)))`. +pub fn w3_front(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { + semijoin(g, b, &mut sc.m1); + semijoin(g, &sc.m1, &mut sc.m2); + and_count(a, &sc.m2, &mut sc.m3) +} + +/// W4, BFS per level with a per-level visited bitmap; the answer counts the +/// distinct nodes at exactly 3 hops that are in B. +pub fn w4_csr(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { + let FoldScratch { q_a, q_b, seen, .. } = sc; + q_a.clear(); + for si in 0..g.len() { + for_each_bit(&a[si], |x| q_a.push(noderef(si, x))); + } + for _ in 0..3 { + for s in seen.iter_mut() { + s.fill(0); + } + q_b.clear(); + for &n in q_a.iter() { + let (si, x) = (nr_set(n), nr_coord(n)); + let c = &g[si]; + for e in c.off[x] as usize..c.off[x + 1] as usize { + if bit(&c.valid, e) { + let m = tgt_unpack(si, c.tgt[e]); + let (ms, mc) = (nr_set(m), nr_coord(m)); + if !bit(&seen[ms], mc) { + set_bit(&mut seen[ms], mc); + q_b.push(m); + } + } + } + } + std::mem::swap(q_a, q_b); + } + q_a.iter().filter(|&&n| bit(&b[nr_set(n)], nr_coord(n))).count() as i64 +} + +/// W4 by frontier masks: three scatter-OR steps, then `popcount(F3 AND B)`. +pub fn w4_front(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { + for si in 0..a.len() { + sc.m1[si].copy_from_slice(&a[si]); + } + step(g, &sc.m1, &mut sc.m2); + step(g, &sc.m2, &mut sc.m3); + step(g, &sc.m3, &mut sc.m1); + and_count(&sc.m1, b, &mut sc.m2) +} + +/// W5: distinct y in B with an edge from A (1 hop). +pub fn w5(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { + step(g, a, &mut sc.m1); + and_count(&sc.m1, b, &mut sc.m2) +} + +/// W6: bag 2-path count, checked i64 (`None` = overflow). +pub fn w6(g: &[CoordCsr], a: &[Vec], b: Option<&[Vec]>) -> Option { + let mut total = 0i64; + let mut ovf = false; + for si in 0..g.len() { + let c = &g[si]; + for_each_bit(&a[si], |x| { + for e in c.off[x] as usize..c.off[x + 1] as usize { + if !bit(&c.valid, e) { + continue; + } + let y = tgt_unpack(si, c.tgt[e]); + let (ys, yc) = (nr_set(y), nr_coord(y)); + let c1 = &g[ys]; + let mut cnt = 0i64; + for e2 in c1.off[yc] as usize..c1.off[yc + 1] as usize { + if !bit(&c1.valid, e2) { + continue; + } + match b { + None => cnt += 1, + Some(bm) => { + let z = tgt_unpack(ys, c1.tgt[e2]); + if bit(&bm[nr_set(z)], nr_coord(z)) { + cnt += 1; + } + } + } + } + match total.checked_add(cnt) { + Some(t) => total = t, + None => ovf = true, + } + } + }); + } + if ovf { + None + } else { + Some(total) + } +} + +// --------------------------------------------------------------------------- +// W4 tile: dense row masks, only when the total active coordinates <= 4096 +// --------------------------------------------------------------------------- + +/// Dense adjacency rows over all sets' coordinates (`off[si] + coord`). +pub struct TileMatrix { + pub total: usize, + wpr: usize, + off: Vec, + rows: Vec, + f1: Vec, + f2: Vec, + a: Vec, + b: Vec, +} + +impl TileMatrix { + /// `None` when the total coordinate count exceeds 4096. + pub fn build(g: &[CoordCsr]) -> Option { + let total: usize = g.iter().map(|c| c.n).sum(); + if total > 4096 { + return None; + } + let wpr = words_for(total.max(1)); + let mut off = Vec::with_capacity(g.len()); + let mut acc = 0usize; + for c in g { + off.push(acc); + acc += c.n; + } + let mut rows = vec![0u64; total.max(1) * wpr]; + for (si, c) in g.iter().enumerate() { + for x in 0..c.n { + for e in c.off[x] as usize..c.off[x + 1] as usize { + if bit(&c.valid, e) { + let n = tgt_unpack(si, c.tgt[e]); + let d = off[nr_set(n)] + nr_coord(n); + let r = off[si] + x; + set_bit(&mut rows[r * wpr..(r + 1) * wpr], d); + } + } + } + } + Some(TileMatrix { + total, + wpr, + off, + rows, + f1: vec![0; wpr], + f2: vec![0; wpr], + a: vec![0; wpr], + b: vec![0; wpr], + }) + } + /// Presence-only update on the dense rows. + pub fn clear_edge(&mut self, si: usize, x: usize, dst: u32) { + let r = self.off[si] + x; + let d = self.off[nr_set(dst)] + nr_coord(dst); + let wpr = self.wpr; + clear_bit(&mut self.rows[r * wpr..(r + 1) * wpr], d); + } + /// Scatter the per-set A and B masks into the dense space. + pub fn load(&mut self, a: &[Vec], b: &[Vec]) { + self.a.fill(0); + self.b.fill(0); + for si in 0..a.len() { + let o = self.off[si]; + let (da, db) = (&mut self.a, &mut self.b); + for_each_bit(&a[si], |x| set_bit(da, o + x)); + for_each_bit(&b[si], |x| set_bit(db, o + x)); + } + } + /// W4: three dense OR-of-rows steps, then `popcount(F3 AND B)`. + pub fn fold(&mut self) -> i64 { + let wpr = self.wpr; + let TileMatrix { rows, f1, f2, a, b, .. } = self; + f1.copy_from_slice(a); + for step_no in 0..3 { + let (src, dst) = if step_no % 2 == 0 { (&*f1, &mut *f2) } else { (&*f2, &mut *f1) }; + dst.fill(0); + for_each_bit(src, |x| ndarray::simd::mask_or_assign(dst, &rows[x * wpr..(x + 1) * wpr])); + } + // three steps: f1 -> f2 -> f1 -> f2; the result is f2. + ndarray::simd::mask_and(f2, b, f1); + popcount(f1) as i64 + } +} + +// --------------------------------------------------------------------------- +// scalar oracle over the global edge list (HashSet/HashMap allowed: oracle) +// --------------------------------------------------------------------------- + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Oracle { + pub w2: i64, + pub w3: i64, + pub w4: i64, + pub w5: i64, + /// Bag 2-path count without a B filter. + pub w6: i64, + /// Bag 2-path count with z in B (SQL G6). + pub w6b: i64, +} + +pub fn oracle( + edges: &[(u64, u64)], + in_a: &dyn Fn(u64) -> bool, + in_b: &dyn Fn(u64) -> bool, + deleted: &[(u64, u64)], +) -> Oracle { + let del: HashSet<(u64, u64)> = deleted.iter().copied().collect(); + let mut adj: HashMap> = HashMap::new(); + for &(s, d) in edges { + if !del.contains(&(s, d)) { + adj.entry(s).or_default().push(d); + } + } + let a_nodes: Vec = adj.keys().copied().filter(|&x| in_a(x)).collect(); + let nbrs = |x: u64| adj.get(&x).map(|v| v.as_slice()).unwrap_or(&[]); + let w2 = a_nodes.iter().filter(|&&x| nbrs(x).iter().any(|&y| in_b(y))).count() as i64; + let w3 = a_nodes + .iter() + .filter(|&&x| nbrs(x).iter().any(|&y| nbrs(y).iter().any(|&z| in_b(z)))) + .count() as i64; + let mut front: HashSet = a_nodes.iter().copied().collect(); + let mut reach1: HashSet = HashSet::new(); + for hop in 0..3 { + let mut next: HashSet = HashSet::new(); + for &x in &front { + next.extend(nbrs(x).iter().copied()); + } + if hop == 0 { + reach1 = next.clone(); + } + front = next; + } + let w4 = front.iter().filter(|&&z| in_b(z)).count() as i64; + let w5 = reach1.iter().filter(|&&y| in_b(y)).count() as i64; + let mut w6 = 0i64; + let mut w6b = 0i64; + for &x in &a_nodes { + for &y in nbrs(x) { + w6 += nbrs(y).len() as i64; + w6b += nbrs(y).iter().filter(|&&z| in_b(z)).count() as i64; + } + } + Oracle { w2, w3, w4, w5, w6, w6b } +} + +// --------------------------------------------------------------------------- +// EXO-46 shared selection (LAB) +// --------------------------------------------------------------------------- + +#[derive(Debug, Clone, PartialEq)] +pub enum ShareRefusal { + /// dt64's `BindStore::admit` refused the method reference. + Bind(Refusal), + /// The method reference is for another class than the selection's. + ClassMismatch { selection: u32, asked: u32 }, + /// The method presented a permit that does not hold its reference + /// (a permit is per method; it is never inherited). + NotPermitted, + Scope, + /// The selection's frame is not the table's current seal. + StaleFrame, +} + +/// A sealed selection one working set owns: the frame it was evaluated under, +/// the scope it was authorized for, a criteria tag and the mask. Methods +/// borrow the mask through `admit`; no mask is passed between programs. +#[derive(Debug, Clone)] +pub struct SharedSelection { + pub class: u32, + pub frame: Frame, + pub scope: Scope, + pub criteria: u64, + pub mask: Vec, +} + +impl SharedSelection { + /// Frame currency is `frame.same_issue(¤t)`, `current` being + /// `table.seal()`: the seal is replaced by every `advance`, so a stale + /// frame fails even when numbers are equal (an identity compare of issues, + /// never a digest compare). Order: dt64 admit (class bound, method known, + /// sig rev, guard), class match, the method's own permit, scope, frame. + /// Allocation-free on the success path (unguarded methods). + pub fn admit( + &self, + store: &BindStore, + mref: &MethodRef, + permit: &[MethodRef], + current: &Frame, + scope_now: Scope, + ) -> Result<&[u64], ShareRefusal> { + store.admit(mref).map_err(ShareRefusal::Bind)?; + if mref.class != self.class { + return Err(ShareRefusal::ClassMismatch { + selection: self.class, + asked: mref.class, + }); + } + if !permit.contains(mref) { + return Err(ShareRefusal::NotPermitted); + } + if self.scope != scope_now { + return Err(ShareRefusal::Scope); + } + if !self.frame.same_issue(current) { + return Err(ShareRefusal::StaleFrame); + } + Ok(&self.mask) + } +} + +// --------------------------------------------------------------------------- +// multi-domain helpers +// --------------------------------------------------------------------------- + +/// The global-id union check for domains (working sets) that should be +/// disjoint: `Ok(total ids)` or `Err(first id held by two members)`. It reads +/// the pointer tables, never a second identity table. +pub fn union_check(sets: &[&WorkingSet]) -> Result { + let mut all: Vec = Vec::new(); + for ws in sets { + let f = ws.seal(); + for &t in &ws.tile_ids { + if let Ok(v) = ws.table.map(&f, t) { + all.extend_from_slice(v.globals()); + } + } + } + all.sort_unstable(); + for w in all.windows(2) { + if w[0] == w[1] { + return Err(w[0]); + } + } + Ok(all.len()) +} + +/// Checked sum of per-domain contributions (`None` on overflow). +pub fn checked_sum(parts: &[i64]) -> Option { + parts.iter().try_fold(0i64, |acc, &p| acc.checked_add(p)) +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log b/.claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log new file mode 100644 index 000000000..4c12ccd7e --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log @@ -0,0 +1,39 @@ +# fixture: P=1000 ids Q=400 ids edges=5688 P-source edges=4056 P->Q edges=339 +F1 PASS 1400 ids x 3 arms G->L->G and L->G->L, mismatches=0 +F2 PASS 8112 endpoints: A==B true A==C true; 339 endpoints are Q ids (Unmapped in P, same refusal in all arms) +F3 PASS A calls=8112 (2*edges=8112, map lookups 32448) B calls=1236 (distinct=1236, map lookups 4944) C query calls=0 (map lookups 0, build lookups 0) +F4 PASS A=Err(Ambiguous) B=4294967294 C=Err(Ambiguous) (an unrelated id still agrees: true) +F5 PASS A=Err(Unmapped) B=4294967295 C=Err(Unmapped) +F6 PASS A=Err(Read(Stale(ForeignFrame))) C=Err(StaleIndex) +F7 PASS under f1: A old true C old true; C(f1) asked with f2 -> Err(StaleIndex); C rebuilt==A under f2 true; 256 ids moved +F8 PASS tiles changed=2 extends=true digest changed=true (a digest guard would refuse) generations same=true old coords kept=true W2 old=336 new-restricted=336 old binding is stale to the frame guard=true +F9 PASS oracle W2=336 fresh f2 binding=336 reused f1 binding without the check=327 (WRONG: true) guarded -> Err(Stale(0)) C(f1) with f2 -> Err(StaleIndex) +F10 PASS old frame Ok(512); new frame with the reduced tile list Err(Unmapped) (C Err(Unmapped)); new frame with the old list Err(Read(NoSuchTile(2))); old frame again Ok(512) +F11 PASS W2 336 -> 335 (oracle 335) after the effective deletion; unrelated deletion leaves W2 335 (all workloads == oracle: true); map lookups during folds+updates: 0; frame still current true +F12 PASS 339 P->Q edges, B held in Q coordinates: W2=336 oracle=336; over cross edges only: DR-decoded 59 oracle 59, coordinate coincidence 46 (WRONG) +F13 PASS id 0x55bdef6 is coordinate 10 in one set and 3 in the other (both resolve back); A selection: 1000 ids, DR-aligned equality true; bitwise coincidence equality false (WRONG) +F14 PASS 64 reuses (B parameter changed each time, only the WHERE re-run) vs 64 fresh bindings: 0 differ +F15a PASS M1 and M2, each with its own permit, admit the SAME selection (same mask address, same fold answer) +F15b PASS M2 with only M1's permit -> Err(NotPermitted) +F15c PASS unbound class -> Err(Bind(UnknownClass(2131427583))); other bound class -> Err(ClassMismatch { selection: 2131427329, asked: 2131427330 }) +F15d PASS stale sig rev -> Err(Bind(SignatureRevisionMismatch { class: 2131427329, method: MethodId(1), bound: SigRev(1), asked: SigRev(2) })) +F15e PASS another scope -> Err(Scope) +F15f PASS stale frame after advance -> Err(StaleFrame) +F15g PASS mask bit-identical before/after the presence update; fold 240 -> 239 +F15h PASS admit returns a borrow of the selection's own mask (&[u64] tied to &self): no mask is passed or copied between programs +F15i PASS admit + fold allocated 0 bytes in 0 calls +F16 PASS 9 (arm x params) runs, W2 direct/AND/XOR, W3 csr/front, W4 csr/front/tile, W5, W6 (plain and B) == oracle; sample W2=336 W3=360 W4=691 W5=517 W6=7167 W6b=3574 +F17 PASS W2/W3/W4(csr,front,tile)/W5/W6 folds: allocations []; no tuple vector (folds read masks, offsets and targets only; signatures carry no Vec of tuples) +F18 PASS duplicate check on -> Err(Ambiguous); compiled out -> Ok(0) (a silent wrong coordinate, so F4 fails under --disable dupcheck) +F19 PASS frame check on -> Err(StaleIndex); compiled out -> Ok(0) but the truth under f2 is Some(255) (so F6/F7/F9 fail under --disable framecheck) +F20 PASS guard on -> Err(Stale(0)); compiled out -> Ok(()) and the reused binding answers 327 where the truth is 336 (silent wrong answer, so F9 fails under --disable bindguard) +F21 PASS extend by 200 ids touched 1 tile(s) via MapTable::advance; TileMap::extends=true; old coordinates kept=true; every coordinate == full rebuild true; binding structure equal true; all workloads equal rebuild and oracle true; extend 17.179us vs full rebuild 29.612us (preparation: reported, not gate) +F22 PASS EXISTS/COUNT/DISTINCT/Bag == one domain == oracle for 1, 2, 3 domains (D=1 arm A W2=336 W5=517 W6=7167; D=2 arm B W2=336 W5=517 W6=7167; D=3 arm C W2=336 W5=517 W6=7167); [] +F23 PASS 339 cross-domain edges only: all workloads == oracle true; edge 0x747ea2ea->0xb3619b13 stored as CROSS | (domain 1, coord 497) +F24 PASS x(domain 0)->y(domain 1)->z(domain 2)->w(domain 0): W4 over 3 hops=1 (oracle 1), W3 over 2 hops=1 and 0 with only the first hop; csr, front and tile routes agree +F25 PASS id 0x724c81ec is in selection A and selection B: coordinate Some((0, 2)) under 2 domains, Some((0, 2)) under 3; |A AND B| = 200 = 200 = oracle 200 +F26 PASS disjoint 3 domains: union check Ok(1400); domains overlapping on 300 ids: Err(5620832); duplicate listed in one table -> Err(Ambiguous) +F27 PASS deleted 0x6dd3aee7->0xd24aa499 (domain 0 -> domain 1): W2 336 -> 335 (oracle 335); domain 0 lost one edge, domain 1 untouched; frames unchanged +F28 PASS 1799 cross-domain targets of the old binding all decode to the right ids under the old frames of BOTH domains; 256 coordinates of tile 0 mean other ids under the new frames; the old binding is stale to the guard (Err(Stale(0))) and still answers its own frames (== oracle true) +F29 PASS disjoint domains: EXISTS=OR true; COUNT sum Some(336) = 336; DISTINCT sum of per-domain counts Some(672) is WRONG, exact union 517 = 517; Bag sums Some(7167)/Some(3574) = oracle 7167/3574 (i64 checked, overflow detected true). OVERLAPPING domains evaluated alone: sums COUNT 385 DISTINCT 541 BAG 4600 are WRONG vs oracle 309/450/4834; exact union by global id 309/450 is right +falsify_p1: 0 of 37 checks failed From 8450977458b00bf36d80f01842d33b6a195c0995 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 18:28:33 +0000 Subject: [PATCH 05/23] D-GLOBAL-WHERE P2: where_k K-criteria matrix + DuckDB where bench (draft, lab) where_k compiles; not yet run at 1M/10M. bench_where/compare_where smoke-tested at N=20000 against an independent 3VL oracle. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../duckdb/bench_where.py | 222 ++++ .../duckdb/compare_where.py | 250 ++++ .../probe/src/bin/where_k.rs | 1065 +++++++++++++++++ 3 files changed, 1537 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py new file mode 100644 index 000000000..5765ed8b7 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py @@ -0,0 +1,222 @@ +#!/usr/bin/env python3 +"""D-GLOBAL-WHERE P2 Part 5, DuckDB side: the criteria-aware WHERE. + +LAB SCRIPT. Not production code, not part of any build or CI gate. Measures +DuckDB 2.0.0 (python package, in-memory, normal optimizer) on the predicate +trees the Rust `where_k` binary writes to `/cases.json`, and writes +`/where_duckdb.json` for `compare_where.py`. + +Run: python3 -I bench_where.py [ ...] [--threads 1,4] [--runs 31] + +Each is `/where/n` (one corpus size). The `nodes` table is built +inside DuckDB from the same closed formula the Rust side uses, no CSV: + + f(id, j) = (((id * 2654435761 + j * 40503) % 2147483648) * 1103515245 + % 2147483648) % 1000 (BIGINT, no overflow) + c_j = f(id, j) for j != 1; c1 = (c0 + f(id, 1) % 20) % 1000 + c15 = NULL where f(id, 15) % 10 == 0, else f(id, 15) + +and the table is ANALYZEd. The predicate SQL is built from the SAME tree, with +SQL three-valued semantics (NULL in c15 makes a comparison UNKNOWN; the WHERE +keeps TRUE rows only), which is exactly what the Rust side's +`Filter::sql_where` is required to reproduce. Answers are checked by +compare_where.py. + +Per (threads, case), on one fresh connection per thread count: + count query: SELECT count(*) FROM nodes WHERE + exists query: SELECT EXISTS(SELECT 1 FROM nodes WHERE ) +Each is a PREPAREd statement (constants inlined: the predicate IS the case). + cold_us = PREPARE + first EXECUTE (the table is warm; the statement is not) + warm = RUNS EXECUTEs; wall median / p10 / p90 + engine_med_us= median over 5 profiled EXECUTEs of JSON `query.total_time` + trivial_query_wall_us = median wall of a prepared `SELECT 1`, REPORTED, not + subtracted anywhere +threads = 1 only: EXPLAIN ANALYZE of one case per K group to /explain/. +All times are microseconds. Load = building `nodes` + ANALYZE, reported per +thread count as build_us / analyze_us / load_us. +""" +import json +import os +import statistics +import sys +import tempfile +import time + +import duckdb + +SQL_OP = {"lt": "<", "le": "<=", "gt": ">", "ge": ">=", "eq": "=", "ne": "<>"} + + +def f_expr(j, idv="i"): + return f"((((({idv} * 2654435761 + {j * 40503}) % 2147483648) * 1103515245) % 2147483648) % 1000)" + + +def col_expr(j): + if j == 1: + return f"CAST((({f_expr(0)} + ({f_expr(1)} % 20)) % 1000) AS INTEGER)" + if j == 15: + return f"CASE WHEN {f_expr(15)} % 10 = 0 THEN NULL ELSE CAST({f_expr(15)} AS INTEGER) END" + return f"CAST({f_expr(j)} AS INTEGER)" + + +def build_sql(n): + cols = ", ".join(f"{col_expr(j)} AS c{j}" for j in range(16)) + return f"CREATE TABLE nodes AS SELECT i AS id, {cols} FROM range({n}) t(i)" + + +def pred_sql(t): + op = t["op"] + if op == "cmp": + return f"(c{t['col']} {SQL_OP[t['cmpop']]} {t['value']})" + if op in ("and", "or"): + return "(" + f" {op.upper()} ".join(pred_sql(a) for a in t["args"]) + ")" + if op == "not": + return f"(NOT {pred_sql(t['arg'])})" + raise ValueError(f"bad op {op}") + + +def us(ns): + return round(ns / 1000.0, 3) + + +def pct(s, p): + return s[min(len(s) - 1, max(0, int(round(p * (len(s) - 1)))))] + + +def qs(path): + return path.replace("'", "''") + + +def engine_us(con, name, tmpdir): + path = os.path.join(tmpdir, "profile.json") + if os.path.exists(path): + os.remove(path) + con.execute("PRAGMA enable_profiling='json'") + con.execute(f"PRAGMA profiling_output='{qs(path)}'") + con.execute(f"EXECUTE {name}").fetchone() + con.execute("PRAGMA disable_profiling") + with open(path) as f: + return round(json.load(f)["query"]["total_time"] * 1e6, 3) + + +def measure(con, name, sql, runs, tmpdir): + t0 = time.perf_counter_ns() + con.execute(f"PREPARE {name} AS {sql}") + ans = con.execute(f"EXECUTE {name}").fetchone()[0] + cold = us(time.perf_counter_ns() - t0) + ns = [] + for _ in range(runs): + t0 = time.perf_counter_ns() + a = con.execute(f"EXECUTE {name}").fetchone()[0] + ns.append(time.perf_counter_ns() - t0) + assert a == ans, "answer drift" + s = sorted(ns) + engs = [engine_us(con, name, tmpdir) for _ in range(5)] + return { + "answer": ans if isinstance(ans, bool) else int(ans), + "cold_us": cold, + "warm_med_us": us(statistics.median(s)), + "warm_p10_us": us(pct(s, 0.10)), + "warm_p90_us": us(pct(s, 0.90)), + "engine_med_us": round(statistics.median(engs), 3), + } + + +def explain_picks(cases): + """One case per K group for EXPLAIN ANALYZE: prefer a regular medium AND.""" + picks = {} + for c in cases: + g = c["k_group"] + pref = (not c["adversarial"]) and c["pop"] == "medium" and c["shape"] in ("and", "single") + if g not in picks or (pref and not picks[g][1]): + picks[g] = (c, pref) + return [v[0] for v in picks.values()] + + +def run_dir(d, threads, runs, tmpdir): + with open(os.path.join(d, "cases.json")) as f: + spec = json.load(f) + n = spec["n"] + cases = spec["cases"] + recs = [] + loads = {} + explained = {c["id"] for c in explain_picks(cases)} + for T in threads: + con = duckdb.connect(":memory:") + con.execute(f"SET threads={T}") + t0 = time.perf_counter_ns() + con.execute(build_sql(n)) + t1 = time.perf_counter_ns() + con.execute("ANALYZE") + t2 = time.perf_counter_ns() + loads[str(T)] = {"build_us": us(t1 - t0), "analyze_us": us(t2 - t1), "load_us": us(t2 - t0)} + con.execute("PREPARE triv AS SELECT 1") + fl = [] + for _ in range(runs): + t0 = time.perf_counter_ns() + con.execute("EXECUTE triv").fetchone() + fl.append(time.perf_counter_ns() - t0) + triv = us(statistics.median(fl)) + print(f"{d} threads={T} built in {loads[str(T)]['build_us']:.0f} us, analyze {loads[str(T)]['analyze_us']:.0f} us", flush=True) + for c in cases: + pred = pred_sql(c["tree"]) + cnt = measure(con, "qc", f"SELECT count(*) FROM nodes WHERE {pred}", runs, tmpdir) + ex = measure(con, "qe", f"SELECT EXISTS(SELECT 1 FROM nodes WHERE {pred})", runs, tmpdir) + assert ex["answer"] == (cnt["answer"] > 0), f"exists/count disagree on {c['id']}" + if T == 1 and c["id"] in explained: + txt = con.execute(f"EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE {pred}").fetchall()[0][1] + os.makedirs(os.path.join(d, "explain"), exist_ok=True) + with open(os.path.join(d, "explain", f"{c['id']}.txt"), "w") as fh: + fh.write(f"-- {c['id']} (K group {c['k_group']})\n-- WHERE {pred}\n{txt}\n") + recs.append({ + "id": c["id"], "threads": T, "count": cnt["answer"], "exists": ex["answer"], + "count_cold_us": cnt["cold_us"], "count_warm_med_us": cnt["warm_med_us"], + "count_warm_p10_us": cnt["warm_p10_us"], "count_warm_p90_us": cnt["warm_p90_us"], + "count_engine_med_us": cnt["engine_med_us"], + "exists_cold_us": ex["cold_us"], "exists_warm_med_us": ex["warm_med_us"], + "exists_warm_p10_us": ex["warm_p10_us"], "exists_warm_p90_us": ex["warm_p90_us"], + "exists_engine_med_us": ex["engine_med_us"], + "trivial_query_wall_us": triv, + }) + print(f"{d} threads={T} {c['id']} count={cnt['answer']} warm {cnt['warm_med_us']:.1f} us", flush=True) + mem = con.execute("SELECT sum(memory_usage_bytes) FROM duckdb_memory()").fetchone()[0] + loads[str(T)]["mem_bytes"] = int(mem) if mem is not None else None + con.close() + out = {"n": n, "duckdb_version": duckdb.__version__, "runs": runs, "load": loads, "records": recs} + dst = os.path.join(d, "where_duckdb.json") + with open(dst, "w") as fh: + json.dump(out, fh, indent=1) + print(f"wrote {len(recs)} records to {dst}") + + +def main(argv): + if len(argv) < 2 or argv[1].startswith("-"): + print(__doc__) + return 2 + dirs, threads, runs = [], [1, 4], 31 + i = 1 + while i < len(argv): + if argv[i] == "--threads": + threads = [int(x) for x in argv[i + 1].split(",")] + i += 2 + elif argv[i] == "--runs": + runs = int(argv[i + 1]) + i += 2 + elif argv[i].startswith("-"): + print("unknown arg", argv[i]) + return 2 + else: + dirs.append(argv[i]) + i += 1 + for d in dirs: + if not os.path.exists(os.path.join(d, "cases.json")): + print("missing", os.path.join(d, "cases.json")) + return 2 + with tempfile.TemporaryDirectory() as tmpdir: + for d in dirs: + run_dir(d, threads, runs, tmpdir) + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py new file mode 100644 index 000000000..4f7496274 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python3 +"""D-GLOBAL-WHERE P2 Part 5: compare the Quack/mask-risc WHERE with DuckDB. + +LAB SCRIPT. Run: python3 -I compare_where.py [ ...] + +Each is `/where/n` holding cases.json + where_ours.json (Rust +`where_k`) + where_duckdb.json (bench_where.py). Exit 1 if any DuckDB answer +differs from the oracle count in cases.json (count, and EXISTS == count > 0); +nothing is compared until every answer matches. Writes /compare_where.md +and prints it. + +Ours per case: lower_us (plain / fused) and, per terminal, the best of the four +orderings {plain, fused, and_by_skip, and_by_skip + fused} by warm median. +`virtual` = Count/Any (no mask survives), `transient` = Rows (a Keep mask held +for the call). DuckDB: warm wall median, engine time (profiling +query.total_time), and the EXISTS variant. Ratio = DuckDB / ours (>1 means +ours is faster). Verdict: WIN > 1.10, LOSS < 0.90, else PARITY. Count is +compared with `SELECT count(*)`, Any with `SELECT EXISTS(...)`; Rows has no +DuckDB counterpart here (DuckDB returns no mask) and is reported alone. + +Summaries cover the regular grid only (K group x population x shape); the +adversarial and nullable cases are listed and verdicted but excluded from the +weighted figure, which is the mean per K group weighted 34/46/14/6 over the +groups 1, 2-4, 5-16, 17+. The unweighted figure is the plain mean over the +regular cases. Group means are of microseconds, then the ratio of those means; +the geometric mean of per-case ratios is shown beside it. +""" +import json +import math +import os +import sys + +GROUPS = ["1", "2-4", "5-16", "17+"] +WEIGHTS = {"1": 0.34, "2-4": 0.46, "5-16": 0.14, "17+": 0.06} +TERMS = ("count", "any", "rows") + + +def verdict(r): + if r is None: + return "n/a" + if r > 1.10: + return "WIN" + if r < 0.90: + return "LOSS" + return "PARITY" + + +def ratio(duck, ours): + if duck is None or ours is None or ours <= 0: + return None + return duck / ours + + +def fmt(x, nd=1): + return "-" if x is None else f"{x:.{nd}f}" + + +def pop_class(c, n): + a = c["achieved"] + if not c["adversarial"]: + return c["pop"] + if a == 0: + return "empty" + if a <= 100: + return "tiny" + return "medium" if a <= n // 20 else "large" + + +def best(rec, term): + vals = [] + for v in (rec.get("variants") or {}).values(): + if v: + vals.append(v[f"{term}_us"]) + return min(vals) if vals else None + + +def best_tag(rec, term): + bt, bv = None, None + for tag, v in (rec.get("variants") or {}).items(): + if v and (bv is None or v[f"{term}_us"] < bv): + bt, bv = tag, v[f"{term}_us"] + return bt + + +def gmean(xs): + xs = [x for x in xs if x and x > 0] + return math.exp(sum(math.log(x) for x in xs) / len(xs)) if xs else None + + +def load(d): + with open(os.path.join(d, "cases.json")) as f: + cases = json.load(f) + with open(os.path.join(d, "where_ours.json")) as f: + ours = json.load(f) + with open(os.path.join(d, "where_duckdb.json")) as f: + duck = json.load(f) + return cases, ours, duck + + +def check(d, cases, duck): + bad = [] + byid = {c["id"]: c for c in cases["cases"]} + for r in duck["records"]: + c = byid.get(r["id"]) + if c is None: + bad.append(f"{d}: duckdb record for unknown case {r['id']}") + continue + if r["count"] != c["achieved"]: + bad.append(f"{d} {r['id']} threads={r['threads']}: duckdb count {r['count']} != oracle {c['achieved']}") + if r["exists"] != (c["achieved"] > 0): + bad.append(f"{d} {r['id']} threads={r['threads']}: duckdb exists {r['exists']} != oracle {c['achieved'] > 0}") + seen = {(r["id"], r["threads"]) for r in duck["records"]} + threads = sorted({r["threads"] for r in duck["records"]}) + for c in cases["cases"]: + for t in threads: + if (c["id"], t) not in seen: + bad.append(f"{d}: missing duckdb record {c['id']} threads={t}") + return bad + + +def table(n, cases, ours, duck, T): + oid = {r["id"]: r for r in ours["records"]} + did = {r["id"]: r for r in duck["records"] if r["threads"] == T} + lines = [] + lines.append(f"### N = {n:,}, DuckDB threads = {T}") + lines.append("") + lines.append( + "| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | " + "duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any |" + ) + lines.append("|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---|") + rows = [] + for c in cases["cases"]: + o = oid[c["id"]] + dk = did[c["id"]] + oc, oa, orr = best(o, "count"), best(o, "any"), best(o, "rows") + r_cw = ratio(dk["count_warm_med_us"], oc) + r_ce = ratio(dk["count_engine_med_us"], oc) + r_a = ratio(dk["exists_warm_med_us"], oa) + rows.append((c, o, dk, oc, oa, orr, r_cw, r_ce, r_a)) + lines.append( + f"| {c['k_group']} | {c['id']} | {pop_class(c, n)} | {c['shape']} | {c['achieved']:,} | " + f"{fmt(o.get('lower_us_plain'), 2)}/{fmt(o.get('lower_us_fused'), 2)} | {fmt(oc)} ({best_tag(o, 'count')}) | " + f"{fmt(oa)} | {fmt(orr)} | {fmt(dk['count_warm_med_us'])} | {fmt(dk['count_engine_med_us'])} | " + f"{fmt(dk['exists_warm_med_us'])} | {fmt(r_cw, 2)} | {verdict(r_cw)} | {fmt(r_ce, 2)} | {verdict(r_ce)} | " + f"{fmt(r_a, 2)} | {verdict(r_a)} |" + ) + lines.append("") + lines.append("Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` " + f"(one Keep mask of {(n + 63) // 64 * 8:,} bytes held for the call); `persistent` never occurs here. " + "Ours rows has no DuckDB counterpart.") + lines.append("") + lines += summaries(n, rows, T) + return lines + + +def mean(xs): + xs = [x for x in xs if x is not None] + return sum(xs) / len(xs) if xs else None + + +def summaries(n, rows, T): + reg = [r for r in rows if not r[0]["adversarial"]] + lines = [f"Summary, N = {n:,}, threads = {T} (regular grid only: {len(reg)} cases; " + f"{len(rows) - len(reg)} adversarial/nullable cases excluded from the figures below)", ""] + lines.append("| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio |") + lines.append("|---|---:|---:|---:|---|---:|---:|---:|---|---:|") + specs = [ + ("count vs duck count, wall", 3, lambda r: r[2]["count_warm_med_us"]), + ("count vs duck count, engine", 3, lambda r: r[2]["count_engine_med_us"]), + ("any vs duck exists, wall", 4, lambda r: r[2]["exists_warm_med_us"]), + ] + for name, oi, dget in specs: + ours_g, duck_g = {}, {} + for g in GROUPS: + rs = [r for r in reg if r[0]["k_group"] == g] + ours_g[g] = mean([r[oi] for r in rs]) + duck_g[g] = mean([dget(r) for r in rs]) + wo = sum(WEIGHTS[g] * ours_g[g] for g in GROUPS if ours_g[g] is not None) + wd = sum(WEIGHTS[g] * duck_g[g] for g in GROUPS if duck_g[g] is not None) + wsum = sum(WEIGHTS[g] for g in GROUPS if ours_g[g] is not None) + wo, wd = (wo / wsum, wd / wsum) if wsum else (None, None) + uo = mean([r[oi] for r in reg]) + ud = mean([dget(r) for r in reg]) + rw, ru = ratio(wd, wo), ratio(ud, uo) + gm = gmean([ratio(dget(r), r[oi]) for r in reg]) + lines.append( + f"| {name} | {fmt(wo)} | {fmt(wd)} | {fmt(rw, 2)} | {verdict(rw)} | {fmt(uo)} | {fmt(ud)} | {fmt(ru, 2)} | {verdict(ru)} | {fmt(gm, 2)} |" + ) + lines.append("") + lines.append("Per K group (count vs duck count, wall; mean us over regular cases):") + lines.append("") + lines.append("| K group | cases | ours us | duck us | ratio | verdict | weight |") + lines.append("|---|---:|---:|---:|---:|---|---:|") + for g in GROUPS: + rs = [r for r in reg if r[0]["k_group"] == g] + o = mean([r[3] for r in rs]) + dk = mean([r[2]["count_warm_med_us"] for r in rs]) + rr = ratio(dk, o) + lines.append(f"| {g} | {len(rs)} | {fmt(o)} | {fmt(dk)} | {fmt(rr, 2)} | {verdict(rr)} | {WEIGHTS[g]:.2f} |") + lines.append("") + gate = [r for r in rows if r[3] is not None and r[3] >= 1000.0] + lines.append(f"Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): {len(gate)} of {len(rows)} cases.") + lines.append("") + return lines + + +def main(argv): + if len(argv) < 2: + print(__doc__) + return 2 + dirs = argv[1:] + loaded = {} + problems = [] + for d in dirs: + cases, ours, duck = load(d) + loaded[d] = (cases, ours, duck) + problems += check(d, cases, duck) + if problems: + print("ANSWER MISMATCH between DuckDB and the oracle:") + for p in problems: + print(" " + p) + return 1 + for d in dirs: + cases, ours, duck = loaded[d] + n = cases["n"] + lines = [f"# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = {n:,}", ""] + lines.append("Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json " + "(checked before this file was written).") + lines.append("") + miss = [c for c in cases["cases"] if not c["target_met"]] + if miss: + lines.append("Population targets NOT met by the generator (achieved is what is measured; " + "never assumed from K): " + ", ".join(f"{c['id']} (target {c['target']:,}, achieved {c['achieved']:,})" for c in miss)) + lines.append("") + lines.append("DuckDB build + ANALYZE: " + "; ".join( + f"threads {t}: {v['load_us']:,.0f} us (build {v['build_us']:,.0f}, analyze {v['analyze_us']:,.0f})" + for t, v in sorted(duck["load"].items(), key=lambda kv: int(kv[0])))) + lines.append("") + for T in sorted({r["threads"] for r in duck["records"]}): + lines += table(n, cases, ours, duck, T) + text = "\n".join(lines) + "\n" + with open(os.path.join(d, "compare_where.md"), "w") as f: + f.write(text) + print(text) + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs new file mode 100644 index 000000000..88486e37b --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs @@ -0,0 +1,1065 @@ +//! LAB: D-GLOBAL-WHERE P2 Part 5, the criteria-aware WHERE probe (ours side). +//! +//! Lab only. Standalone: it does not use the probe's lib.rs. A K-criteria +//! `WHERE` over resident `i32` lanes c0..c15 (c15 nullable through a resident +//! validity plane), lowered by Quack (`lower` / `lower_fused`, optionally +//! `Filter::and_by_skip` ordered, `Filter::sql_where` for the nullable case) +//! and executed by mask-risc `execute_into`. No tuple, no row-ID list, no +//! persisted intermediate in any timed path. The scalar row loop below is the +//! ORACLE only (it is how `achieved` is computed and how every answer is +//! checked); it is never timed. +//! +//! Usage: `where_k [--n 1000000|10000000]...` (default: both sizes). +//! Writes `/where/n/cases.json` and `/where/n/where_ours.json`. +//! Exit 1 on any answer mismatch against the oracle. A warm value >= 1000 us +//! prints FAILED-GATE (counted, reported, does not change the exit code: it is +//! a gate on the substrate path, not a correctness check). +//! +//! Column formula (identical to the SQL in duckdb/bench_where.py; u64, no +//! overflow because every operand is < 2^31 before each multiply): +//! f(id, j) = (((id * 2654435761 + j * 40503) % 2147483648) * 1103515245 +//! % 2147483648) % 1000 +//! c_j = f(id, j) for j != 1; c1 = (c0 + f(id, 1) % 20) % 1000 +//! c15 is NULL (validity bit clear) where f(id, 15) % 10 == 0; the value +//! lane keeps f(id, 15) there as stale payload, which must never matter. + +use std::alloc::{GlobalAlloc, Layout, System}; +use std::fmt::Write as _; +use std::sync::atomic::{AtomicUsize, Ordering::Relaxed}; +use std::time::Instant; + +use lance_graph_mask_risc::{ + execute_into, tile_words_for, words_for, Foreign, LaneRef, Out, Planes, Program, Scratch, + Value, +}; +use lance_graph_quack::{lower, lower_fused, Agg, Cmp, Col, Filter, Mask, Query}; + +// --------------------------------------------------------------------------- +// counting allocator +// --------------------------------------------------------------------------- + +struct CountingAlloc; +static ALLOC_BYTES: AtomicUsize = AtomicUsize::new(0); + +// SAFETY: pure pass-through to `System`; the atomic is the only addition. +unsafe impl GlobalAlloc for CountingAlloc { + unsafe fn alloc(&self, layout: Layout) -> *mut u8 { + ALLOC_BYTES.fetch_add(layout.size(), Relaxed); + // SAFETY: same layout and contract as the caller's. + unsafe { System.alloc(layout) } + } + unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { + // SAFETY: `ptr` came from `alloc` above with this `layout`. + unsafe { System.dealloc(ptr, layout) } + } +} + +#[global_allocator] +static GLOBAL: CountingAlloc = CountingAlloc; + +fn alloc_bytes() -> usize { + ALLOC_BYTES.load(Relaxed) +} + +// --------------------------------------------------------------------------- +// deterministic data +// --------------------------------------------------------------------------- + +const SEED: u64 = 0x9E37_79B9_7F4A_7C15; + +struct Rng(u64); +impl Rng { + fn next_u64(&mut self) -> u64 { + self.0 = self.0.wrapping_add(0x9E37_79B9_7F4A_7C15); + let mut z = self.0; + z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); + z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); + z ^ (z >> 31) + } + fn below(&mut self, n: u64) -> u64 { + self.next_u64() % n + } +} + +#[inline] +fn f(id: u64, j: u64) -> u64 { + let a = (id * 2_654_435_761 + j * 40_503) % 2_147_483_648; + ((a * 1_103_515_245) % 2_147_483_648) % 1000 +} + +struct Data { + n: usize, + cols: Vec>, + live: Vec, + valid: Vec, +} + +fn build_data(n: usize) -> Data { + let words = words_for(n); + let mut cols: Vec> = (0..16).map(|_| Vec::with_capacity(n)).collect(); + let mut valid = vec![0u64; words]; + for id in 0..n as u64 { + let c0 = f(id, 0); + for (j, col) in cols.iter_mut().enumerate() { + let v = if j == 1 { + (c0 + f(id, 1) % 20) % 1000 + } else { + f(id, j as u64) + }; + col.push(v as i32); + } + if f(id, 15) % 10 != 0 { + let r = id as usize; + valid[r >> 6] |= 1u64 << (r & 63); + } + } + let mut live = vec![0u64; words]; + for r in 0..n { + live[r >> 6] |= 1u64 << (r & 63); + } + Data { + n, + cols, + live, + valid, + } +} + +struct Env<'a> { + n: usize, + masks: [&'a [u64]; 2], + lanes: Vec>, +} + +impl<'a> Env<'a> { + fn new(d: &'a Data) -> Env<'a> { + Env { + n: d.n, + masks: [&d.live, &d.valid], + lanes: d.cols.iter().map(|c| LaneRef::I32(c)).collect(), + } + } + fn planes(&self) -> Planes<'_> { + Planes { + n_rows: self.n, + masks: &self.masks, + lanes: &self.lanes, + } + } +} + +// --------------------------------------------------------------------------- +// predicate tree (shared shape with cases.json) +// --------------------------------------------------------------------------- + +#[derive(Clone, Copy, PartialEq, Eq)] +enum Op { + Lt, + Le, + Gt, + Ge, + Eq, + Ne, +} + +impl Op { + fn name(self) -> &'static str { + match self { + Op::Lt => "lt", + Op::Le => "le", + Op::Gt => "gt", + Op::Ge => "ge", + Op::Eq => "eq", + Op::Ne => "ne", + } + } + fn cmp(self, v: i32) -> Cmp { + match self { + Op::Lt => Cmp::LtI32(v), + Op::Le => Cmp::LeI32(v), + Op::Gt => Cmp::GtI32(v), + Op::Ge => Cmp::GeI32(v), + Op::Eq => Cmp::EqI32(v), + Op::Ne => Cmp::NeI32(v), + } + } + fn holds(self, x: i32, v: i32) -> bool { + match self { + Op::Lt => x < v, + Op::Le => x <= v, + Op::Gt => x > v, + Op::Ge => x >= v, + Op::Eq => x == v, + Op::Ne => x != v, + } + } +} + +#[derive(Clone)] +enum Node { + Leaf { col: u16, op: Op, v: i32 }, + And(Vec), + Or(Vec), + Not(Box), +} + +fn leaf(col: u16, op: Op, v: i32) -> Node { + Node::Leaf { col, op, v } +} + +fn leaf_count(n: &Node) -> usize { + match n { + Node::Leaf { .. } => 1, + Node::And(c) | Node::Or(c) => c.iter().map(leaf_count).sum(), + Node::Not(c) => leaf_count(c), + } +} + +fn tree_json(n: &Node) -> String { + match n { + Node::Leaf { col, op, v } => format!( + "{{\"op\":\"cmp\",\"col\":{col},\"cmpop\":\"{}\",\"value\":{v}}}", + op.name() + ), + Node::And(c) | Node::Or(c) => { + let name = if matches!(n, Node::And(_)) { "and" } else { "or" }; + let parts: Vec = c.iter().map(tree_json).collect(); + format!("{{\"op\":\"{name}\",\"args\":[{}]}}", parts.join(",")) + } + Node::Not(c) => format!("{{\"op\":\"not\",\"arg\":{}}}", tree_json(c)), + } +} + +/// ORACLE: SQL three-valued evaluation of the tree at one row. +/// 0 = FALSE, 1 = TRUE, 2 = UNKNOWN. +fn eval3(n: &Node, row: usize, d: &Data) -> u8 { + match n { + Node::Leaf { col, op, v } => { + if *col == 15 && (d.valid[row >> 6] >> (row & 63)) & 1 == 0 { + return 2; + } + u8::from(op.holds(d.cols[*col as usize][row], *v)) + } + Node::And(c) => { + let mut unk = false; + for x in c { + match eval3(x, row, d) { + 0 => return 0, + 2 => unk = true, + _ => {} + } + } + if unk { + 2 + } else { + 1 + } + } + Node::Or(c) => { + let mut unk = false; + for x in c { + match eval3(x, row, d) { + 1 => return 1, + 2 => unk = true, + _ => {} + } + } + if unk { + 2 + } else { + 0 + } + } + Node::Not(c) => match eval3(c, row, d) { + 0 => 1, + 1 => 0, + _ => 2, + }, + } +} + +/// ORACLE: rows for which the WHERE clause is TRUE (scalar row loop). +fn oracle_count(n: &Node, d: &Data) -> usize { + (0..d.n).filter(|&r| eval3(n, r, d) == 1).count() +} + +// --------------------------------------------------------------------------- +// tree -> Quack filter (plain order, and_by_skip order) +// --------------------------------------------------------------------------- + +fn to_filter(n: &Node) -> Filter { + match n { + Node::Leaf { col, op, v } => Filter::cmp(Col(*col), op.cmp(*v)), + Node::And(c) => Filter::and(c.iter().map(to_filter)), + Node::Or(c) => Filter::or(c.iter().map(to_filter)), + Node::Not(c) => Filter::negate(to_filter(c)), + } +} + +/// Estimated survival fraction. Assumes uniform columns on 0..999 and +/// independent leaves; it is NOT measured from the data. It is the score +/// source for the `and_by_skip` ordering: the more selective child (the +/// smaller estimate) gets the higher skip score and moves to the front. +fn est(n: &Node) -> f64 { + let s = match n { + Node::Leaf { op, v, .. } => { + let v = f64::from(*v); + match op { + Op::Lt => v / 1000.0, + Op::Le => (v + 1.0) / 1000.0, + Op::Gt => (999.0 - v) / 1000.0, + Op::Ge => (1000.0 - v) / 1000.0, + Op::Eq => 0.001, + Op::Ne => 0.999, + } + } + Node::And(c) => c.iter().map(est).product(), + Node::Or(c) => 1.0 - c.iter().map(|x| 1.0 - est(x)).product::(), + Node::Not(c) => 1.0 - est(c), + }; + s.clamp(0.0, 1.0) +} + +fn to_filter_skip(n: &Node) -> Filter { + match n { + Node::Leaf { .. } => to_filter(n), + Node::And(c) => Filter::and_by_skip( + c.iter() + .map(|x| (((1.0 - est(x)) * 1_000_000.0) as u32, to_filter_skip(x))), + ), + Node::Or(c) => Filter::or(c.iter().map(to_filter_skip)), + Node::Not(c) => Filter::negate(to_filter_skip(c)), + } +} + +fn finish(f: Filter, nullable: bool) -> Filter { + if nullable { + f.sql_where(&[(Col(15), Mask(1))]) + } else { + f + } +} + +// --------------------------------------------------------------------------- +// prepared programs +// --------------------------------------------------------------------------- + +struct Prog { + program: Program, + scratch: Scratch<'static>, +} + +fn mk(filter: &Filter, agg: Agg, n: usize, fused: bool) -> Option { + let q = Query { + filter: filter.clone(), + agg, + }; + let lowered = if fused { lower_fused(&q) } else { lower(&q) }; + let program = match lowered { + Ok(p) => p, + Err(e) => { + eprintln!("lower failed (fused={fused}): {e:?}"); + return None; + } + }; + let scratch = Scratch::for_program(&program, n).ok()?; + Some(Prog { program, scratch }) +} + +fn run_count(p: &mut Prog, planes: &Planes<'_>) -> usize { + match execute_into( + &p.program, + planes, + &Foreign::NONE, + &mut p.scratch, + Out::None, + ) + .expect("mask-risc runs") + { + Value::Count(c) => c, + other => panic!("expected Count, got {other:?}"), + } +} + +fn run_any(p: &mut Prog, planes: &Planes<'_>) -> bool { + match execute_into( + &p.program, + planes, + &Foreign::NONE, + &mut p.scratch, + Out::None, + ) + .expect("mask-risc runs") + { + Value::Bool(b) => b, + other => panic!("expected Bool, got {other:?}"), + } +} + +fn run_rows(p: &mut Prog, planes: &Planes<'_>, out: &mut [u64]) { + execute_into( + &p.program, + planes, + &Foreign::NONE, + &mut p.scratch, + Out::Mask(out), + ) + .expect("mask-risc runs"); +} + +/// Search helper: count of a tree through plain `lower` (no oracle). +fn count_node(node: &Node, planes: &Planes<'_>, n: usize) -> usize { + let mut p = mk(&to_filter(node), Agg::Count, n, false).expect("search lowers"); + run_count(&mut p, planes) +} + +// --------------------------------------------------------------------------- +// timing +// --------------------------------------------------------------------------- + +/// Median wall time in us over `runs` runs after one warm-up. If the warm-up +/// alone exceeds 20 ms the run count drops to 11 (recorded by the caller). +fn median_us(runs: usize, mut f: impl FnMut()) -> (f64, usize) { + let t = Instant::now(); + f(); + let first = t.elapsed().as_nanos() as f64 / 1000.0; + let runs = if first > 20_000.0 { runs.min(11) } else { runs }; + let mut v = Vec::with_capacity(runs); + for _ in 0..runs { + let t = Instant::now(); + f(); + v.push(t.elapsed().as_nanos() as f64 / 1000.0); + } + v.sort_by(|a, b| a.partial_cmp(b).unwrap()); + (v[v.len() / 2], runs) +} + +fn jf(x: f64) -> String { + format!("{x:.3}") +} +fn jo(x: Option) -> String { + x.map_or("null".to_string(), jf) +} + +// --------------------------------------------------------------------------- +// case generation +// --------------------------------------------------------------------------- + +struct Case { + id: String, + k_group: &'static str, + pop: &'static str, + shape: String, + adversarial: bool, + nullable: bool, + target: usize, + tree: Node, + achieved: usize, +} + +fn k_group(k: usize) -> &'static str { + match k { + 0 | 1 => "1", + 2..=4 => "2-4", + 5..=16 => "5-16", + _ => "17+", + } +} + +/// Leaf `i` of a grid case: even leaves are `col < v`, odd leaves are +/// `col >= 1000 - v`; both have selectivity `v / 1000`. +fn grid_leaf(col: u16, i: usize, v: i32) -> Node { + if i % 2 == 0 { + leaf(col, Op::Lt, v) + } else { + leaf(col, Op::Ge, 1000 - v) + } +} + +fn grid_tree(shape: &str, k: usize, cols: &[u16], vs: &[i32]) -> Node { + let leaves: Vec = (0..k) + .map(|i| grid_leaf(cols[i % cols.len()], i, vs[i])) + .collect(); + if k == 1 { + return leaves.into_iter().next().unwrap(); + } + match shape { + "and" => Node::And(leaves), + "or" => Node::Or(leaves), + _ => { + // mixed: AND of OR-pairs (an odd last leaf stands alone). + let mut groups: Vec = Vec::new(); + let mut it = leaves.into_iter(); + while let Some(a) = it.next() { + match it.next() { + Some(b) => groups.push(Node::Or(vec![a, b])), + None => groups.push(a), + } + } + Node::And(groups) + } + } +} + +fn lerr(c: usize, t: usize) -> f64 { + ((c as f64 + 1.0).ln() - (t as f64 + 1.0).ln()).abs() +} + +/// Search the per-leaf constants that bring the achieved count closest to +/// `target`: bisection over one shared constant (every grid tree is monotone +/// non-decreasing in it), then a greedy +-1 refinement per leaf. The count is +/// read from the engine under test; the final answer is re-checked against +/// the scalar oracle by the caller. +fn search( + planes: &Planes<'_>, + n: usize, + shape: &str, + k: usize, + cols: &[u16], + target: usize, +) -> Vec { + let eval = |vs: &[i32]| count_node(&grid_tree(shape, k, cols, vs), planes, n); + if eval(&vec![1000; k]) < target { + return vec![1000; k]; + } + let (mut lo, mut hi) = (0i32, 1000i32); + while lo < hi { + let mid = (lo + hi) / 2; + if eval(&vec![mid; k]) >= target { + hi = mid; + } else { + lo = mid + 1; + } + } + let mut best = lo; + if lo > 0 { + let c_hi = eval(&vec![lo; k]); + let c_lo = eval(&vec![lo - 1; k]); + if lerr(c_lo, target) < lerr(c_hi, target) { + best = lo - 1; + } + } + let mut vs = vec![best; k]; + let mut cur = eval(&vs); + for _round in 0..2 { + for i in 0..k { + if lerr(cur, target) < 0.03 { + return vs; + } + for dir in [1i32, -1] { + for _ in 0..6 { + let nv = vs[i] + dir; + if !(0..=1000).contains(&nv) { + break; + } + let old = vs[i]; + vs[i] = nv; + let c = eval(&vs); + if lerr(c, target) < lerr(cur, target) { + cur = c; + } else { + vs[i] = old; + break; + } + } + } + } + } + vs +} + +fn explicit( + id: &str, + pop: &'static str, + adv: bool, + nullable: bool, + shape: &str, + tree: Node, +) -> Case { + Case { + id: id.to_string(), + k_group: k_group(leaf_count(&tree)), + pop, + shape: shape.to_string(), + adversarial: adv, + nullable, + target: 0, + tree, + achieved: 0, + } +} + +fn gen_cases(d: &Data, planes: &Planes<'_>) -> Vec { + let n = d.n; + let mut cases: Vec = Vec::new(); + // ---- regular grid: K x population x shape ---- + let pops: [(&'static str, usize); 3] = [("tiny", 50), ("medium", n / 100), ("large", n / 2)]; + let mut ci = 0u64; + for k in [1usize, 3, 8, 17, 24] { + let shapes: &[&str] = if k == 1 { + &["single"] + } else { + &["and", "or", "mixed"] + }; + for &shape in shapes { + for &(pop, target) in &pops { + ci += 1; + let mut rng = Rng(SEED ^ ci.wrapping_mul(0x1000_0000_01B3)); + let mut cols: Vec = (0..15).collect(); + for i in (1..cols.len()).rev() { + let j = rng.below(i as u64 + 1) as usize; + cols.swap(i, j); + } + let vs = search(planes, n, shape, k, &cols, target); + cases.push(Case { + id: format!("k{k}_{pop}_{shape}"), + k_group: k_group(k), + pop, + shape: shape.to_string(), + adversarial: false, + nullable: false, + target, + tree: grid_tree(shape, k, &cols, &vs), + achieved: 0, + }); + } + } + } + // ---- adversarial ---- + let lt = |c: u16, v: i32| leaf(c, Op::Lt, v); + cases.push(explicit( + "adv_one_everything", + "adv", + true, + false, + "and", + Node::And(vec![lt(4, 1000), lt(5, 10)]), + )); + cases.push(explicit( + "adv_one_nothing", + "adv", + true, + false, + "and", + Node::And(vec![lt(5, 1), lt(6, 900), lt(7, 900)]), + )); + cases.push(explicit( + "adv_or_one_everything", + "adv", + true, + false, + "or", + Node::Or(vec![lt(0, 1000), lt(3, 5)]), + )); + cases.push(explicit( + "adv_or_one_nothing", + "adv", + true, + false, + "or", + Node::Or(vec![lt(5, 0), lt(6, 1)]), + )); + cases.push(explicit( + "adv_16_nonselective", + "adv", + true, + false, + "and", + Node::And( + (0..16) + .map(|i| lt((i % 15) as u16, 985 + (i % 5) as i32)) + .collect(), + ), + )); + let r = (n / 3) as u64; + let mut collapse: Vec = (0..15u16) + .map(|j| { + let v = if j == 1 { + (f(r, 0) + f(r, 1) % 20) % 1000 + } else { + f(r, u64::from(j)) + }; + leaf(j, Op::Eq, v as i32) + }) + .collect(); + collapse.push(leaf(0, Op::Ge, f(r, 0) as i32)); + cases.push(explicit( + "adv_16_collapse_one", + "adv", + true, + false, + "and", + Node::And(collapse), + )); + cases.push(explicit( + "adv_correlated_2", + "adv", + true, + false, + "and", + Node::And(vec![lt(0, 500), lt(1, 520)]), + )); + cases.push(explicit( + "adv_correlated_5", + "adv", + true, + false, + "and", + Node::And(vec![lt(0, 500), lt(1, 510), lt(0, 490), lt(1, 530), lt(0, 520)]), + )); + cases.push(explicit( + "adv_contradictory_2", + "adv", + true, + false, + "and", + Node::And(vec![lt(0, 100), leaf(0, Op::Ge, 900)]), + )); + let mut contra = vec![lt(0, 100), leaf(0, Op::Ge, 900)]; + contra.extend((0..15u16).map(|j| lt(1 + (j % 14), 900))); + cases.push(explicit( + "adv_contradictory_17", + "adv", + true, + false, + "and", + Node::And(contra), + )); + // ---- nullable (through Filter::sql_where over the validity plane) ---- + cases.push(explicit( + "null_and", + "null", + true, + true, + "and", + Node::And(vec![lt(15, 500), lt(0, 500)]), + )); + cases.push(explicit( + "null_not", + "null", + true, + true, + "not", + Node::Not(Box::new(lt(15, 500))), + )); + cases.push(explicit( + "null_or", + "null", + true, + true, + "or", + Node::Or(vec![lt(15, 100), lt(2, 100)]), + )); + cases.push(explicit( + "null_not_and", + "null", + true, + true, + "not", + Node::Not(Box::new(Node::And(vec![lt(15, 500), lt(0, 500)]))), + )); + cases.push(explicit( + "null_and_5", + "null", + true, + true, + "and", + Node::And(vec![ + leaf(15, Op::Ge, 200), + lt(0, 700), + lt(2, 700), + lt(3, 900), + lt(15, 900), + ]), + )); + cases +} + +// --------------------------------------------------------------------------- +// measurement +// --------------------------------------------------------------------------- + +struct Totals { + gate_failed: usize, + mismatches: usize, +} + +/// Measure one filter variant: Count, Any, Rows. Returns the JSON object and +/// the Count median (for the best-order pick), or None when the variant does +/// not lower. +fn measure_variant( + filter: &Filter, + fused: bool, + planes: &Planes<'_>, + n: usize, + achieved: usize, + ctx: &str, + t: &mut Totals, +) -> Option<(String, f64)> { + let mut pc = mk(filter, Agg::Count, n, fused)?; + let mut pa = mk(filter, Agg::Any, n, fused)?; + let mut pr = mk(filter, Agg::Rows, n, fused)?; + let words = words_for(n); + let mut out = vec![0u64; words]; + + // correctness first + let c = run_count(&mut pc, planes); + let a = run_any(&mut pa, planes); + run_rows(&mut pr, planes, &mut out); + // Only bits below n_rows are rows; a complemented mask may carry tail bits. + let mut rows: usize = out.iter().map(|w| w.count_ones() as usize).sum(); + if n % 64 != 0 { + if let Some(last) = out.last() { + rows -= (last >> (n % 64)).count_ones() as usize; + } + } + if c != achieved || a != (achieved > 0) || rows != achieved { + eprintln!( + "MISMATCH {ctx}: oracle {achieved}, count {c}, any {a}, rows(popcount of Keep) {rows}" + ); + t.mismatches += 1; + } + + // temp bytes: allocator delta of one warm eval of each terminal + let b0 = alloc_bytes(); + std::hint::black_box(run_count(&mut pc, planes)); + let count_alloc = alloc_bytes() - b0; + let b0 = alloc_bytes(); + std::hint::black_box(run_any(&mut pa, planes)); + let any_alloc = alloc_bytes() - b0; + let b0 = alloc_bytes(); + run_rows(&mut pr, planes, &mut out); + let rows_alloc = alloc_bytes() - b0; + let scratch_bytes = pc.scratch.slots() * tile_words_for(n) * 8; + + let (count_us, rc) = median_us(31, || { + std::hint::black_box(run_count(&mut pc, planes)); + }); + let (any_us, ra) = median_us(31, || { + std::hint::black_box(run_any(&mut pa, planes)); + }); + let (rows_us, rr) = median_us(31, || { + run_rows(&mut pr, planes, &mut out); + }); + for (what, v) in [("count", count_us), ("any", any_us), ("rows", rows_us)] { + if v >= 1000.0 { + println!("FAILED-GATE {ctx} {what} warm {v:.1} us"); + t.gate_failed += 1; + } + } + let json = format!( + "{{\"count_us\":{},\"any_us\":{},\"rows_us\":{},\"runs\":[{rc},{ra},{rr}],\ +\"slots\":{},\"scratch_bytes\":{scratch_bytes},\"alloc_bytes_eval\":{{\"count\":{count_alloc},\"any\":{any_alloc},\"rows\":{rows_alloc}}}}}", + jf(count_us), + jf(any_us), + jf(rows_us), + pc.scratch.slots() + ); + Some((json, count_us)) +} + +fn lower_us(filter: &Filter, fused: bool) -> Option { + let q = Query { + filter: filter.clone(), + agg: Agg::Count, + }; + let go = |q: &Query| if fused { lower_fused(q) } else { lower(q) }; + if go(&q).is_err() { + return None; + } + let (m, _) = median_us(31, || { + let r = go(&q); + std::hint::black_box(&r); + }); + Some(m) +} + +fn run_size(out_root: &str, n: usize) -> bool { + println!("== N = {n} =="); + let t0 = Instant::now(); + let data = build_data(n); + println!( + "columns built in {:.2} s (16 x i32 lanes + validity plane)", + t0.elapsed().as_secs_f64() + ); + let env = Env::new(&data); + let planes = env.planes(); + + let t0 = Instant::now(); + let mut cases = gen_cases(&data, &planes); + // oracle + engine cross-check for every case + let mut totals = Totals { + gate_failed: 0, + mismatches: 0, + }; + for c in cases.iter_mut() { + c.achieved = oracle_count(&c.tree, &data); + let k = leaf_count(&c.tree); + let ours = { + let mut p = mk(&finish(to_filter(&c.tree), c.nullable), Agg::Count, n, false) + .expect("case lowers"); + run_count(&mut p, &planes) + }; + let met = if c.target == 0 { + "-".to_string() + } else { + format!("{}", c.achieved <= c.target * 2 && c.achieved * 2 >= c.target) + }; + println!( + "case {:<24} K={k:<2} target {:>8} achieved {:>8} met={met}", + c.id, c.target, c.achieved + ); + if ours != c.achieved { + eprintln!( + "MISMATCH generation {}: oracle {} vs quack {}", + c.id, c.achieved, ours + ); + totals.mismatches += 1; + } + } + println!( + "generated {} cases in {:.2} s", + cases.len(), + t0.elapsed().as_secs_f64() + ); + + let dir = format!("{out_root}/where/n{n}"); + std::fs::create_dir_all(&dir).expect("create out dir"); + + // cases.json + let mut js = String::new(); + write!(js, "{{\"n\":{n},\"seed\":{SEED},\"cases\":[").unwrap(); + for (i, c) in cases.iter().enumerate() { + if i > 0 { + js.push(','); + } + let met = c.target == 0 || (c.achieved <= c.target * 2 && c.achieved * 2 >= c.target); + write!( + js, + "\n{{\"id\":\"{}\",\"k\":{},\"k_group\":\"{}\",\"pop\":\"{}\",\"shape\":\"{}\",\ +\"adversarial\":{},\"nullable\":{},\"target\":{},\"achieved\":{},\"target_met\":{met},\"tree\":{}}}", + c.id, + leaf_count(&c.tree), + c.k_group, + c.pop, + c.shape, + c.adversarial, + c.nullable, + c.target, + c.achieved, + tree_json(&c.tree) + ) + .unwrap(); + } + js.push_str("\n]}\n"); + std::fs::write(format!("{dir}/cases.json"), js).expect("write cases.json"); + + // measurement + let mut ours = String::new(); + write!(ours, "{{\"n\":{n},\"records\":[").unwrap(); + let mask_bytes = words_for(n) * 8; + for (i, c) in cases.iter().enumerate() { + let k = leaf_count(&c.tree); + let plain = finish(to_filter(&c.tree), c.nullable); + let skip = finish(to_filter_skip(&c.tree), c.nullable); + let skip_same = plain == skip; + let lower_plain = lower_us(&plain, false); + let lower_fused_us = lower_us(&plain, true); + let mut variants = String::new(); + let mut best: Option<(&str, f64)> = None; + for (tag, filt, fused) in [ + ("plain", &plain, false), + ("fused", &plain, true), + ("skip", &skip, false), + ("skip_fused", &skip, true), + ] { + let ctx = format!("n={n} case={} variant={tag}", c.id); + if let Some((json, cus)) = + measure_variant(filt, fused, &planes, n, c.achieved, &ctx, &mut totals) + { + if !variants.is_empty() { + variants.push(','); + } + write!(variants, "\"{tag}\":{json}").unwrap(); + if best.is_none_or(|(_, b)| cus < b) { + best = Some((tag, cus)); + } + } else { + if !variants.is_empty() { + variants.push(','); + } + write!(variants, "\"{tag}\":null").unwrap(); + } + } + let (best_tag, best_us) = best.map_or(("none", f64::NAN), |(t, u)| (t, u)); + println!( + "measured {:<24} K={k:<2} achieved {:>8} lower plain {} fused {} us, best count {} = {:.2} us", + c.id, + c.achieved, + jo(lower_plain), + jo(lower_fused_us), + best_tag, + best_us + ); + if i > 0 { + ours.push(','); + } + write!( + ours, + "\n{{\"id\":\"{}\",\"k\":{k},\"k_group\":\"{}\",\"pop\":\"{}\",\"shape\":\"{}\",\ +\"adversarial\":{},\"nullable\":{},\"achieved\":{},\"lower_us_plain\":{},\"lower_us_fused\":{},\ +\"skip_same_as_plain\":{skip_same},\"best_count_variant\":\"{best_tag}\",\ +\"representation\":{{\"count\":\"virtual\",\"any\":\"virtual\",\"rows\":\"transient\"}},\ +\"rows_mask_bytes\":{mask_bytes},\"variants\":{{{variants}}}}}", + c.id, + c.k_group, + c.pop, + c.shape, + c.adversarial, + c.nullable, + c.achieved, + jo(lower_plain), + jo(lower_fused_us), + ) + .unwrap(); + } + ours.push_str("\n]}\n"); + std::fs::write(format!("{dir}/where_ours.json"), ours).expect("write where_ours.json"); + println!( + "N={n}: {} FAILED-GATE values (warm >= 1000 us, reported), {} mismatches", + totals.gate_failed, totals.mismatches + ); + totals.mismatches == 0 +} + +fn main() { + let args: Vec = std::env::args().collect(); + if args.len() < 2 || args[1].starts_with("--") { + eprintln!("usage: where_k [--n 1000000|10000000]..."); + std::process::exit(2); + } + let out = args[1].clone(); + let mut sizes: Vec = Vec::new(); + let mut i = 2; + while i < args.len() { + if args[i] == "--n" && i + 1 < args.len() { + sizes.push(args[i + 1].parse().expect("--n takes an integer")); + i += 2; + } else { + eprintln!("unknown argument {}", args[i]); + std::process::exit(2); + } + } + if sizes.is_empty() { + sizes = vec![1_000_000, 10_000_000]; + } + let mut ok = true; + for n in sizes { + ok &= run_size(&out, n); + } + if !ok { + println!("WHERE-K FAILED: answer mismatch"); + std::process::exit(1); + } + println!("WHERE-K ALL ANSWERS MATCH THE ORACLE"); +} From 22da16e44b5afe36fb0aff2d77706872a13dcb46 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 21:02:18 +0000 Subject: [PATCH 06/23] D-GLOBAL-WHERE P2: apply the corrected parity rule to compare_where/compare_big Same rule as the P0 fix (#1946): coverage is enforced in both directions, DuckDB results must cover exactly threads {1,4}, and any missing comparison exits 1 instead of becoming a note under an all-agree verdict. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../duckdb/compare_big.py | 30 ++++++++++++++----- .../duckdb/compare_where.py | 21 ++++++++++++- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py index 536b24f57..a3954eaa5 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py +++ b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py @@ -28,6 +28,8 @@ FAILED-GATE, cold/prep >= 1000 us prints COLD (reported, not gate). """ import json + +EXPECTED_THREADS = [1, 4] import os import re import sys @@ -103,13 +105,18 @@ def ssum(o, keys): return sum(v for v in vals if v is not None) -def compare_dir(d, mism, notes): +def compare_dir(d, mism, notes, missing): ours = load(os.path.join(d, "ours_big.json")) dd = load(os.path.join(d, "duckdb_big.json")) lab = label(d) dd_by = {(r["query"], r.get("arm", "plain"), r["threads"]): r for r in dd} arms = sorted({r.get("arm", "plain") for r in dd}, reverse=True) threads = sorted({r["threads"] for r in dd}) + if threads != EXPECTED_THREADS: + missing.append(f"{lab}: duckdb thread counts {threads}, expected {EXPECTED_THREADS}") + ours_q = {o["query"] for o in ours} + for q in sorted({r["query"] for r in dd} - ours_q): + missing.append(f"{lab}: no ours record for {q}") rows = sorted(ours, key=lambda r: (qorder(r["query"]), r["mode"])) lines = [f"# D-GLOBAL-WHERE P1: corpus {lab}, ours vs DuckDB", "", "Microseconds throughout. Ratio = DuckDB / ours (> 1: ours faster). " @@ -127,15 +134,15 @@ def compare_dir(d, mism, notes): for arm in arms: dr = dd_by.get((o["query"], arm, T)) if dr is None: - notes.append(f"{lab}: no duckdb record for {o['query']} arm={arm} threads={T}") + missing.append(f"{lab}: no duckdb record for {o['query']} arm={arm} threads={T}") continue if o.get("answer_per_t") != dr["answer_per_t"]: mism.append((lab, o["query"], o["mode"], arm, T, "answer_per_t", o.get("answer_per_t"), dr["answer_per_t"])) if "after_delete_per_t" in o: if o["after_delete_per_t"] != dr["after_delete_per_t"]: mism.append((lab, o["query"], o["mode"], arm, T, "after_delete_per_t", o["after_delete_per_t"], dr["after_delete_per_t"])) - else: - notes.append(f"{lab}: ours lacks after_delete_per_t for {o['query']} {o['mode']}: not compared") + elif any(r.get("after_delete_per_t") is not None for r in dd if r["query"] == o["query"]): + missing.append(f"{lab}: ours lacks after_delete_per_t for {o['query']} {o['mode']}") ow = o.get("warm_med_us") rw = ratio(dr["warm_med_us"], ow) re_ = ratio(dr.get("engine_med_us"), ow) @@ -161,9 +168,9 @@ def main(argv): print(__doc__) return 2 dirs = sorted(argv[1:], key=size_key) - mism, notes, data, out_all = [], [], {}, [] + mism, notes, missing, data, out_all = [], [], [], {}, [] for d in dirs: - ours, dd, lines = compare_dir(d, mism, notes) + ours, dd, lines = compare_dir(d, mism, notes, missing) data[d] = (ours, dd) with open(os.path.join(d, "compare_big.md"), "w") as f: f.write("\n".join(lines)) @@ -210,11 +217,13 @@ def main(argv): tail = [] if notes: tail += ["## Notes", ""] + [f"- {n}" for n in sorted(set(notes))] + [""] + if missing: + tail += ["## MISSING COMPARISONS", ""] + [f"- {m}" for m in sorted(set(missing))] + [""] if mism: tail += ["## ANSWER MISMATCHES", "", "| corpus | query | mode | duckdb arm | threads | field | ours | duckdb |", "|---|---|---|---|---|---|---|---|"] tail += ["| " + " | ".join(str(x) for x in m) + " |" for m in mism] + [""] - else: - tail += ["All compared answers agree.", ""] + elif not missing: + tail += ["All compared answers agree; coverage complete in both directions.", ""] text = "\n".join(out_all + sc + tail) with open(os.path.join(os.path.dirname(os.path.normpath(dirs[0])) or ".", "compare_big_scaling.md"), "w") as f: f.write("\n".join(sc + tail)) @@ -224,6 +233,11 @@ def main(argv): for m in mism: print("MISMATCH corpus=%s query=%s mode=%s arm=%s threads=%s field=%s ours=%s duckdb=%s" % m, file=sys.stderr) return 1 + if missing: + print(f"\nFAIL: {len(missing)} missing comparison(s)", file=sys.stderr) + for m in sorted(set(missing)): + print("MISSING " + m, file=sys.stderr) + return 1 return 0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py index 4f7496274..d706072ce 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py +++ b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py @@ -26,6 +26,8 @@ the geometric mean of per-case ratios is shown beside it. """ import json + +EXPECTED_THREADS = [1, 4] import math import os import sys @@ -111,13 +113,29 @@ def check(d, cases, duck): bad.append(f"{d} {r['id']} threads={r['threads']}: duckdb exists {r['exists']} != oracle {c['achieved'] > 0}") seen = {(r["id"], r["threads"]) for r in duck["records"]} threads = sorted({r["threads"] for r in duck["records"]}) + # Coverage is enforced in both directions (the corrected P0 parity rule): + # an incomplete run must fail, never print an all-agree verdict. + if threads != EXPECTED_THREADS: + bad.append(f"{d}: duckdb thread counts {threads}, expected {EXPECTED_THREADS}") for c in cases["cases"]: - for t in threads: + for t in EXPECTED_THREADS: if (c["id"], t) not in seen: bad.append(f"{d}: missing duckdb record {c['id']} threads={t}") return bad +def check_ours(d, cases, ours): + bad = [] + oid = {r["id"]: r for r in ours["records"]} + for c in cases["cases"]: + if c["id"] not in oid: + bad.append(f"{d}: missing ours record {c['id']}") + for i in oid: + if i not in {c["id"] for c in cases["cases"]}: + bad.append(f"{d}: ours record for unknown case {i}") + return bad + + def table(n, cases, ours, duck, T): oid = {r["id"]: r for r in ours["records"]} did = {r["id"]: r for r in duck["records"] if r["threads"] == T} @@ -216,6 +234,7 @@ def main(argv): cases, ours, duck = load(d) loaded[d] = (cases, ours, duck) problems += check(d, cases, duck) + problems += check_ours(d, cases, ours) if problems: print("ANSWER MISMATCH between DuckDB and the oracle:") for p in problems: From 4b1a8683d951da8b4e1704a79a316fb2ab04940a Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 21:06:17 +0000 Subject: [PATCH 07/23] D-GLOBAL-WHERE P2: projection probe draft (64 logical props over 32 lanes, lab) Draft, NOT yet compiled or run: U/P/S layouts, packed 4x8 and sparse u16 encodings, refusals R1-R3, scalar oracle. Compile and measurement follow after the 10M where_k run finishes. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../probe/src/bin/project.rs | 976 ++++++++++++++++++ 1 file changed, 976 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs new file mode 100644 index 000000000..d6d237831 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs @@ -0,0 +1,976 @@ +//! LAB: D-GLOBAL-WHERE P2 Part 5b, the projection probe (property matching). +//! +//! Lab only, not production. Standalone: it does not use the probe's lib.rs. +//! +//! Question: CSV-style property matching / virtual CustomObject selection is a +//! PROJECTION concern. What does it cost to carry 64 LOGICAL properties over +//! 32 PHYSICAL SoA lanes, and where does a packed layout stop being able to +//! represent what the logical layer can say? +//! +//! Logical properties p0..p63: +//! p0..p15 full-range i32 +//! p16..p47 small u8 (0..=255), the packable ones +//! p48..p63 sparse: present on ~2 % of rows (f(id,j) % 50 == 0), value +//! 0..=999; ABSENT is NOT 0 (SQL NULL: a compare on an absent +//! value is unknown, so the row is not selected). +//! +//! Layouts (all built from the same logical formula `lv`): +//! U unpacked: 64 i32 lanes + 16 presence planes. 64 lanes exceeds the +//! 32-lane budget, so U is the REFERENCE, not a candidate. +//! P packed, 32 lanes: 16 i32 lanes (p0..p15, bytes aliased to U's first 16 +//! lanes and not charged twice), 8 u32 lanes holding 4 x u8 each +//! (p16..p47), 8 u32 lanes holding 2 x u16 each (p48..p63). Sparse +//! encoding in P: stored = value + 1 as u16, 0 = absent. Legal because +//! values <= 999 fit; a value that would need stored > 65535 is refused at +//! build time (`encode_sparse`). Because 0 means absent, a packed sparse +//! compare can never match an absent row. +//! S sparse: p0..p47 as unpacked i32 lanes (aliased to U's first 48 lanes), +//! and each sparse property as one presence mask (words_for(n) u64) plus a +//! COMPACT i32 value column over present rows only, in row order. The +//! compact column is read by walking the presence bits, so absent rows are +//! never visited and can never match. +//! +//! Evaluation: Quack `lower` + mask-risc `execute_into`, `Agg::Count`, plain +//! (non-fused) lowering. Quack has no ordered compare over an unsigned lane, +//! so a packed ORDERED compare (< or >=) needs a Rust extraction loop +//! (shift + mask + compare, 64 rows per output word) that writes a +//! preallocated mask plane which Quack then ANDs/ORs like any other plane. +//! A packed EQUALITY compare needs no loop: it lowers to `Cmp::MatchU32` +//! with pattern/care. The S sparse compare is also a Rust loop (over present +//! bits only). That loop cost is what this probe exists to measure against the +//! unpacked lane compare. Every extraction loop is counted as `ext_loops`. +//! +//! REFUSALS (never silently clamped; each is exercised by a check that fails +//! the run if it does not fire): +//! R1 a constant outside a packed field's range under P. +//! R2 (not a refusal, a parity law) a sparse compare never matches absent +//! rows under any layout: count(p50 >= 0) == presence count, not N. +//! R3 a sparse value that does not fit the P u16 encoding, refused when the +//! lane is built (separate tiny fixture). +//! +//! ORACLE: an independent scalar row loop over the LOGICAL formula `lv`; it +//! never reads any layout. It is never timed. Every arm's Count must equal it +//! or the binary exits 1. +//! +//! NOT claimed: no ms-scale result is a measurement here: a warm value +//! >= 1000 us prints FAILED-GATE and is reported, not hidden; build/prep +//! values are COLD (reported, not gate). No claim that the layouts are +//! equivalent beyond what the oracle checks. No tuple, no row-id list, no +//! persisted intermediate in any timed path. +//! +//! Usage: `project [--n 1000000|10000000]...` (default: both sizes). +//! Writes `/project/n/project.json`. + +use std::alloc::{GlobalAlloc, Layout, System}; +use std::fmt::Write as _; +use std::sync::atomic::{AtomicUsize, Ordering::Relaxed}; +use std::time::Instant; + +use lance_graph_mask_risc::{ + execute_into, words_for, Foreign, LaneRef, Out, Planes, Program, Scratch, Value, +}; +use lance_graph_quack::{lower, Agg, Cmp, Col, Filter, Mask, Query}; + +// --------------------------------------------------------------------------- +// counting allocator +// --------------------------------------------------------------------------- + +struct CountingAlloc; +static ALLOC_BYTES: AtomicUsize = AtomicUsize::new(0); + +// SAFETY: pure pass-through to `System`; the atomic is the only addition. +unsafe impl GlobalAlloc for CountingAlloc { + unsafe fn alloc(&self, layout: Layout) -> *mut u8 { + ALLOC_BYTES.fetch_add(layout.size(), Relaxed); + // SAFETY: same layout and contract as the caller's. + unsafe { System.alloc(layout) } + } + unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { + // SAFETY: `ptr` came from `alloc` above with this `layout`. + unsafe { System.dealloc(ptr, layout) } + } +} + +#[global_allocator] +static GLOBAL: CountingAlloc = CountingAlloc; + +fn alloc_bytes() -> usize { + ALLOC_BYTES.load(Relaxed) +} + +// --------------------------------------------------------------------------- +// logical data (the single source of truth; layouts and oracle both use `lv`) +// --------------------------------------------------------------------------- + +const SEED: u64 = 0x9E37_79B9_7F4A_7C15; +const N_PROPS: usize = 64; +const N_FULL: usize = 16; +const N_SMALL_END: usize = 48; +const MAX_EXT: usize = 16; + +/// Same closed formula as where_k.rs (u64, no overflow). +#[inline] +fn f(id: u64, j: u64) -> u64 { + let a = (id * 2_654_435_761 + j * 40_503) % 2_147_483_648; + ((a * 1_103_515_245) % 2_147_483_648) % 1000 +} + +/// SplitMix64-style finalizer keyed by (SEED, id, j); gives full-range bits. +#[inline] +fn h(id: u64, j: u64) -> u64 { + let mut z = SEED ^ id.wrapping_mul(0x9E37_79B9_7F4A_7C15) ^ (j + 1).wrapping_mul(0xD1B5_4A32_D192_ED03); + z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); + z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); + z ^ (z >> 31) +} + +/// Logical value of property `j` at row `id`; None = absent (SQL NULL). +#[inline] +fn lv(id: u64, j: usize) -> Option { + let ju = j as u64; + if j < N_FULL { + Some(i64::from(h(id, ju) as u32 as i32)) + } else if j < N_SMALL_END { + Some(((h(id, ju) >> 8) % 256) as i64) + } else if f(id, ju) % 50 == 0 { + Some(((h(id, ju) >> 16) % 1000) as i64) + } else { + None + } +} + +#[derive(Clone, Copy, PartialEq, Eq)] +enum Kind { + Full, + Small, + Sparse, +} +impl Kind { + fn of(j: usize) -> Kind { + if j < N_FULL { + Kind::Full + } else if j < N_SMALL_END { + Kind::Small + } else { + Kind::Sparse + } + } +} + +// --------------------------------------------------------------------------- +// predicate tree, refusals +// --------------------------------------------------------------------------- + +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum Op { + Lt, + Eq, + Ge, +} +impl Op { + fn name(self) -> &'static str { + match self { + Op::Lt => "<", + Op::Eq => "=", + Op::Ge => ">=", + } + } +} +#[inline] +fn holds(op: Op, v: i64, c: i64) -> bool { + match op { + Op::Lt => v < c, + Op::Eq => v == c, + Op::Ge => v >= c, + } +} + +#[derive(Clone)] +enum Pr { + Leaf(usize, Op, i64), + And(Vec), + Or(Vec), +} + +#[derive(Debug, Clone)] +enum Refusal { + ConstOutsideI32 { prop: usize, c: i64 }, + ConstOutsidePackedU8 { prop: usize, c: i64 }, + ConstOutsidePackedU16 { prop: usize, c: i64 }, + SparseValueUnencodable { v: i64 }, + TooManyExtractions, + LowerFailed, +} +impl Refusal { + fn reason(&self) -> String { + match self { + Refusal::ConstOutsideI32 { prop, c } => { + format!("p{prop}: constant {c} does not fit an i32 lane") + } + Refusal::ConstOutsidePackedU8 { prop, c } => { + format!("p{prop}: constant {c} outside packed u8 range 0..=255") + } + Refusal::ConstOutsidePackedU16 { prop, c } => { + format!("p{prop}: constant {c} outside packed u16 sparse range 0..=65534") + } + Refusal::SparseValueUnencodable { v } => { + format!("sparse value {v} does not fit the u16 (value+1) encoding") + } + Refusal::TooManyExtractions => format!("more than {MAX_EXT} extraction planes"), + Refusal::LowerFailed => "quack lowering failed".to_string(), + } + } +} + +/// P sparse encoding: stored = value + 1 as u16, 0 = absent. +fn encode_sparse(v: i64) -> Result { + if v < 0 || v + 1 > 65_535 { + return Err(Refusal::SparseValueUnencodable { v }); + } + Ok((v + 1) as u16) +} + +/// Tiny-fixture packer for two sparse properties in one P lane (R3). +fn pack_sparse_pair(a: Option, b: Option) -> Result { + let ea = a.map_or(Ok(0u16), encode_sparse)?; + let eb = b.map_or(Ok(0u16), encode_sparse)?; + Ok(u32::from(ea) | (u32::from(eb) << 16)) +} + +/// ORACLE: scalar row evaluation over the logical formula. Absent => false +/// (equivalent to SQL unknown here because the trees contain no NOT). +fn oracle_row(p: &Pr, id: u64) -> bool { + match p { + Pr::Leaf(j, op, c) => lv(id, *j).is_some_and(|v| holds(*op, v, *c)), + Pr::And(c) => c.iter().all(|x| oracle_row(x, id)), + Pr::Or(c) => c.iter().any(|x| oracle_row(x, id)), + } +} +fn oracle_count(p: &Pr, n: usize) -> usize { + (0..n as u64).filter(|&id| oracle_row(p, id)).count() +} + +// --------------------------------------------------------------------------- +// layouts +// --------------------------------------------------------------------------- + +struct Store { + n: usize, + live: Vec, + // U (S aliases lanes 0..48, P aliases lanes 0..16) + u_lanes: Vec>, + u_pres: Vec>, + // P + p_small: Vec>, + p_sp: Vec>, + // S + s_pres: Vec>, + s_vals: Vec>, +} + +fn build_u(n: usize) -> (Vec>, Vec>) { + let words = words_for(n); + let mut lanes: Vec> = (0..N_PROPS).map(|_| Vec::with_capacity(n)).collect(); + let mut pres = vec![vec![0u64; words]; 16]; + for id in 0..n { + for (j, lane) in lanes.iter_mut().enumerate() { + let v = lv(id as u64, j); + lane.push(v.unwrap_or(0) as i32); + if j >= N_SMALL_END && v.is_some() { + pres[j - N_SMALL_END][id >> 6] |= 1u64 << (id & 63); + } + } + } + (lanes, pres) +} + +fn build_p(n: usize) -> (Vec>, Vec>) { + let mut small = vec![vec![0u32; n]; 8]; + let mut sp = vec![vec![0u32; n]; 8]; + for id in 0..n { + for i in 0..32 { + let v = lv(id as u64, N_FULL + i).expect("small is never absent") as u32; + small[i / 4][id] |= v << (8 * (i % 4)); + } + for s in 0..16 { + let e = match lv(id as u64, N_SMALL_END + s) { + Some(v) => u32::from(encode_sparse(v).expect("sparse values are <= 999")), + None => 0, + }; + sp[s / 2][id] |= e << (16 * (s % 2)); + } + } + (small, sp) +} + +fn build_s(n: usize) -> (Vec>, Vec>) { + let words = words_for(n); + let mut pres = vec![vec![0u64; words]; 16]; + let mut vals: Vec> = (0..16).map(|_| Vec::new()).collect(); + for id in 0..n { + for s in 0..16 { + if let Some(v) = lv(id as u64, N_SMALL_END + s) { + pres[s][id >> 6] |= 1u64 << (id & 63); + vals[s].push(v as i32); + } + } + } + (pres, vals) +} + +#[derive(Clone, Copy, PartialEq, Eq)] +enum Arm { + U, + P, + S, +} +impl Arm { + fn name(self) -> &'static str { + match self { + Arm::U => "U", + Arm::P => "P", + Arm::S => "S", + } + } +} + +struct ArmView<'a> { + arm: Arm, + lanes: Vec>, +} + +fn view(arm: Arm, st: &Store) -> ArmView<'_> { + let mut lanes: Vec> = Vec::new(); + match arm { + Arm::U => lanes.extend(st.u_lanes.iter().map(|c| LaneRef::I32(c))), + Arm::S => lanes.extend(st.u_lanes[..N_SMALL_END].iter().map(|c| LaneRef::I32(c))), + Arm::P => { + lanes.extend(st.u_lanes[..N_FULL].iter().map(|c| LaneRef::I32(c))); + lanes.extend(st.p_small.iter().map(|c| LaneRef::U32(c))); + lanes.extend(st.p_sp.iter().map(|c| LaneRef::U32(c))); + } + } + ArmView { arm, lanes } +} + +// --------------------------------------------------------------------------- +// compilation: logical predicate -> Quack filter + extraction specs +// --------------------------------------------------------------------------- + +enum Spec { + PackU8 { lane: usize, shift: u32, op: Op, c: u32 }, + PackU16 { lane: usize, shift: u32, op: Op, c: i64 }, + Sparse { s: usize, op: Op, c: i64 }, +} + +struct Ctx { + arm: Arm, + specs: Vec, + touched: Vec, + planes: usize, +} +impl Ctx { + fn touch(&mut self, id: u32) { + if !self.touched.contains(&id) { + self.touched.push(id); + } + } +} + +fn qcmp(op: Op, c: i32) -> Cmp { + match op { + Op::Lt => Cmp::LtI32(c), + Op::Eq => Cmp::EqI32(c), + Op::Ge => Cmp::GeI32(c), + } +} + +fn push_ext(cx: &mut Ctx, spec: Spec) -> Result { + if cx.specs.len() >= MAX_EXT { + return Err(Refusal::TooManyExtractions); + } + cx.specs.push(spec); + cx.planes += 1; + Ok(Filter::plane(Mask(cx.specs.len() as _))) +} + +fn leaf(cx: &mut Ctx, j: usize, op: Op, c: i64) -> Result { + let kind = Kind::of(j); + let as_i32 = |c: i64| i32::try_from(c).map_err(|_| Refusal::ConstOutsideI32 { prop: j, c }); + match (cx.arm, kind) { + (_, Kind::Full) | (Arm::U, Kind::Small) | (Arm::S, Kind::Small) => { + let c32 = as_i32(c)?; + cx.touch(j as u32); + Ok(Filter::cmp(Col(j as u16), qcmp(op, c32))) + } + (Arm::U, Kind::Sparse) => { + let c32 = as_i32(c)?; + cx.touch(j as u32); + cx.planes += 1; + Ok(Filter::and([ + Filter::cmp(Col(j as u16), qcmp(op, c32)), + Filter::plane(Mask((1 + j - N_SMALL_END) as _)), + ])) + } + (Arm::P, Kind::Small) => { + if !(0..=255).contains(&c) { + return Err(Refusal::ConstOutsidePackedU8 { prop: j, c }); + } + let i = j - N_FULL; + let (lane, shift) = (i / 4, 8 * (i % 4) as u32); + cx.touch(1000 + lane as u32); + if op == Op::Eq { + let cmp = Cmp::MatchU32 { + pattern: (c as u32) << shift, + care: 0xFFu32 << shift, + }; + return Ok(Filter::cmp(Col((N_FULL + lane) as u16), cmp)); + } + push_ext(cx, Spec::PackU8 { lane, shift, op, c: c as u32 }) + } + (Arm::P, Kind::Sparse) => { + if !(0..=65_534).contains(&c) { + return Err(Refusal::ConstOutsidePackedU16 { prop: j, c }); + } + let s = j - N_SMALL_END; + let (lane, shift) = (s / 2, 16 * (s % 2) as u32); + cx.touch(2000 + lane as u32); + if op == Op::Eq { + // stored = value + 1, so an absent row (0) can never match. + let cmp = Cmp::MatchU32 { + pattern: ((c + 1) as u32) << shift, + care: 0xFFFFu32 << shift, + }; + return Ok(Filter::cmp(Col((N_FULL + 8 + lane) as u16), cmp)); + } + push_ext(cx, Spec::PackU16 { lane, shift, op, c }) + } + (Arm::S, Kind::Sparse) => { + let s = j - N_SMALL_END; + cx.touch(3000 + s as u32); + push_ext(cx, Spec::Sparse { s, op, c }) + } + } +} + +fn compile(cx: &mut Ctx, p: &Pr) -> Result { + match p { + Pr::Leaf(j, op, c) => leaf(cx, *j, *op, *c), + Pr::And(v) => { + let fs = v.iter().map(|x| compile(cx, x)).collect::, _>>()?; + Ok(Filter::and(fs)) + } + Pr::Or(v) => { + let fs = v.iter().map(|x| compile(cx, x)).collect::, _>>()?; + Ok(Filter::or(fs)) + } + } +} + +// --------------------------------------------------------------------------- +// prepared program + evaluation +// --------------------------------------------------------------------------- + +struct Prog { + program: Program, + scratch: Scratch<'static>, +} + +struct Prep { + prog: Prog, + specs: Vec, + bufs: Vec>, + lanes_touched: usize, + planes: usize, +} + +fn prepare(v: &ArmView<'_>, st: &Store, p: &Pr) -> Result { + let mut cx = Ctx { + arm: v.arm, + specs: Vec::new(), + touched: Vec::new(), + planes: 0, + }; + let filter = compile(&mut cx, p)?; + let q = Query { + filter, + agg: Agg::Count, + }; + let program = lower(&q).map_err(|_| Refusal::LowerFailed)?; + let scratch = Scratch::for_program(&program, st.n).map_err(|_| Refusal::LowerFailed)?; + let bufs = (0..cx.specs.len()) + .map(|_| vec![0u64; words_for(st.n)]) + .collect(); + Ok(Prep { + prog: Prog { program, scratch }, + lanes_touched: cx.touched.len(), + planes: cx.planes, + specs: cx.specs, + bufs, + }) +} + +/// Extraction loop: one output word per 64 rows; shift + mask + compare. +fn fill_lane(buf: &mut [u64], lane: &[u32], shift: u32, wmask: u32, test: impl Fn(u32) -> bool) { + for (w, chunk) in lane.chunks(64).enumerate() { + let mut word = 0u64; + for (b, &x) in chunk.iter().enumerate() { + word |= u64::from(test((x >> shift) & wmask)) << b; + } + buf[w] = word; + } +} + +fn fill(buf: &mut [u64], sp: &Spec, st: &Store) { + match *sp { + Spec::PackU8 { lane, shift, op, c } => { + let l = &st.p_small[lane]; + match op { + Op::Lt => fill_lane(buf, l, shift, 0xFF, |e| e < c), + Op::Ge => fill_lane(buf, l, shift, 0xFF, |e| e >= c), + Op::Eq => fill_lane(buf, l, shift, 0xFF, |e| e == c), + } + } + Spec::PackU16 { lane, shift, op, c } => { + // e = value + 1 (0 = absent). value < c <=> 0 < e <= c. + let l = &st.p_sp[lane]; + let cu = c as u32; + match op { + Op::Lt => fill_lane(buf, l, shift, 0xFFFF, |e| e != 0 && e <= cu), + Op::Ge => fill_lane(buf, l, shift, 0xFFFF, |e| e >= cu + 1), + Op::Eq => fill_lane(buf, l, shift, 0xFFFF, |e| e == cu + 1), + } + } + Spec::Sparse { s, op, c } => { + let (pres, vals) = (&st.s_pres[s], &st.s_vals[s]); + let mut k = 0usize; + for (w, &pw) in pres.iter().enumerate() { + let (mut m, mut out) = (pw, 0u64); + while m != 0 { + let b = m.trailing_zeros(); + if holds(op, i64::from(vals[k]), c) { + out |= 1u64 << b; + } + k += 1; + m &= m - 1; + } + buf[w] = out; + } + } + } +} + +fn eval(v: &ArmView<'_>, st: &Store, pr: &mut Prep) -> usize { + let Prep { + prog, specs, bufs, .. + } = pr; + for (i, sp) in specs.iter().enumerate() { + fill(&mut bufs[i], sp, st); + } + let masks: [&[u64]; 17] = std::array::from_fn(|i| { + if i == 0 { + &st.live[..] + } else if v.arm == Arm::U { + &st.u_pres[i - 1][..] + } else if i - 1 < bufs.len() { + &bufs[i - 1][..] + } else { + &st.live[..] + } + }); + let planes = Planes { + n_rows: st.n, + masks: &masks, + lanes: &v.lanes, + }; + match execute_into( + &prog.program, + &planes, + &Foreign::NONE, + &mut prog.scratch, + Out::None, + ) + .expect("mask-risc runs") + { + Value::Count(c) => c, + other => panic!("expected Count, got {other:?}"), + } +} + +// --------------------------------------------------------------------------- +// timing +// --------------------------------------------------------------------------- + +fn median_us(runs: usize, mut f: impl FnMut()) -> (f64, usize) { + let t = Instant::now(); + f(); + let first = t.elapsed().as_nanos() as f64 / 1000.0; + let runs = if first > 20_000.0 { runs.min(11) } else { runs }; + let mut v = Vec::with_capacity(runs); + for _ in 0..runs { + let t = Instant::now(); + f(); + v.push(t.elapsed().as_nanos() as f64 / 1000.0); + } + v.sort_by(|a, b| a.partial_cmp(b).unwrap()); + (v[v.len() / 2], runs) +} + +fn jf(x: f64) -> String { + format!("{x:.3}") +} + +// --------------------------------------------------------------------------- +// cases +// --------------------------------------------------------------------------- + +struct Case { + id: String, + k: usize, + mix: &'static str, + shape: &'static str, + tree: Pr, +} + +fn case_leaf(mix: &str, i: usize) -> Pr { + // kind of the i-th leaf, then property + op + constant by kind. + let kind = match mix { + "full" => 0, + "packed" => 1, + "sparse" => 2, + _ => i % 3, + }; + let idx = if mix == "mixed" { i / 3 } else { i }; + match kind { + 0 => { + let (op, c) = [(Op::Lt, i64::from(i32::MAX / 2)), (Op::Ge, 0), (Op::Lt, 0)][idx % 3]; + Pr::Leaf(idx % N_FULL, op, c) + } + 1 => { + let (op, c) = [(Op::Lt, 200), (Op::Ge, 20), (Op::Lt, 230)][idx % 3]; + Pr::Leaf(N_FULL + idx % 32, op, c) + } + _ => { + let (op, c) = [(Op::Ge, 0), (Op::Lt, 800), (Op::Ge, 100)][idx % 3]; + Pr::Leaf(N_SMALL_END + idx % 16, op, c) + } + } +} + +fn gen_cases() -> Vec { + let mut cases = Vec::new(); + for k in [1usize, 4, 16] { + for mix in ["full", "packed", "sparse", "mixed"] { + let leaves: Vec = (0..k).map(|i| case_leaf(mix, i)).collect(); + let tree = if k == 1 { + leaves.into_iter().next().unwrap() + } else { + Pr::And(leaves) + }; + cases.push(Case { + id: format!("k{k}_{mix}_and"), + k, + mix, + shape: if k == 1 { "single" } else { "and" }, + tree, + }); + } + } + for k in [4usize, 16] { + let leaves: Vec = (0..k).map(|i| case_leaf("mixed", i)).collect(); + cases.push(Case { + id: format!("k{k}_mixed_or"), + k, + mix: "mixed", + shape: "or", + tree: Pr::Or(leaves), + }); + } + cases +} + +// --------------------------------------------------------------------------- +// main +// --------------------------------------------------------------------------- + +struct Totals { + gate_failed: usize, + failures: usize, +} + +fn run_once(arm: Arm, st: &Store, p: &Pr) -> Result { + let v = view(arm, st); + let mut pr = prepare(&v, st, p)?; + Ok(eval(&v, st, &mut pr)) +} + +fn fmt_res(r: &Result) -> String { + match r { + Ok(c) => c.to_string(), + Err(e) => format!("REFUSED({})", e.reason()), + } +} + +/// Refusal and parity checks. Returns the JSON array body. +fn refusal_checks(st: &Store, n: usize, t: &mut Totals) -> String { + let mut js = String::new(); + let (mut r1_fired, mut r3_fired) = (0usize, 0usize); + + // R1: constant outside a packed field's range. P refuses, U and S answer. + let r1: [(&str, Pr); 4] = [ + ("p20 < 300", Pr::Leaf(20, Op::Lt, 300)), + ("p20 = -1", Pr::Leaf(20, Op::Eq, -1)), + ("p20 >= 256", Pr::Leaf(20, Op::Ge, 256)), + ("p50 < 70000", Pr::Leaf(50, Op::Lt, 70_000)), + ]; + for (label, tree) in &r1 { + let (u, p, s) = ( + run_once(Arm::U, st, tree), + run_once(Arm::P, st, tree), + run_once(Arm::S, st, tree), + ); + let o = oracle_count(tree, n); + println!( + "R1 {label:<12} U={} P={} S={} oracle={o}", + fmt_res(&u), + fmt_res(&p), + fmt_res(&s) + ); + let fired = p.is_err(); + let ok = fired && u.as_ref().is_ok_and(|c| *c == o) && s.as_ref().is_ok_and(|c| *c == o); + if fired { + r1_fired += 1; + } + if !ok { + eprintln!("CHECK FAILED R1 {label}"); + t.failures += 1; + } + let _ = write!( + js, + "{{\"check\":\"R1\",\"query\":\"{label}\",\"U\":\"{}\",\"P\":\"{}\",\"S\":\"{}\",\"oracle\":{o}}},", + fmt_res(&u), + fmt_res(&p).replace('"', "'"), + fmt_res(&s) + ); + } + // R1 silence twin: in-range constants must NOT refuse and must be exact. + for (label, tree) in [ + ("p20 < 200", Pr::Leaf(20, Op::Lt, 200)), + ("p20 = 255", Pr::Leaf(20, Op::Eq, 255)), + ("p50 >= 100", Pr::Leaf(50, Op::Ge, 100)), + ] { + let p = run_once(Arm::P, st, &tree); + let o = oracle_count(&tree, n); + println!("R1-silent {label:<12} P={} oracle={o}", fmt_res(&p)); + if !p.as_ref().is_ok_and(|c| *c == o) { + eprintln!("CHECK FAILED R1-silent {label}"); + t.failures += 1; + } + } + + // R2: a sparse compare never matches absent rows, in any layout. + let present = (0..n as u64).filter(|&id| lv(id, 50).is_some()).count(); + let tree = Pr::Leaf(50, Op::Ge, 0); + for arm in [Arm::U, Arm::P, Arm::S] { + let r = run_once(arm, st, &tree); + println!("R2 {} count(p50 >= 0)={} presence={present} N={n}", arm.name(), fmt_res(&r)); + let ok = r.as_ref().is_ok_and(|c| *c == present) && present < n; + if !ok { + eprintln!("CHECK FAILED R2 {}", arm.name()); + t.failures += 1; + } + } + let _ = write!(js, "{{\"check\":\"R2\",\"presence\":{present},\"n\":{n}}},"); + + // R3: out-of-range sparse value refused when the P lane is built. + let bad = pack_sparse_pair(Some(70_000), Some(5)); + let neg = pack_sparse_pair(Some(1), Some(-3)); + let good = pack_sparse_pair(Some(999), None); + println!("R3 70000 -> {:?}, -3 -> {:?}, (999,absent) -> {:?}", bad, neg, good); + if bad.is_err() { + r3_fired += 1; + } + if neg.is_err() { + r3_fired += 1; + } + let good_ok = good.as_ref().is_ok_and(|w| *w == 1000); + if r3_fired != 2 || !good_ok { + eprintln!("CHECK FAILED R3 (fired {r3_fired}/2, valid-encodes {good_ok})"); + t.failures += 1; + } + let _ = write!(js, "{{\"check\":\"R3\",\"fired\":{r3_fired},\"valid_encodes\":{good_ok}}}"); + + if r1_fired != r1.len() { + eprintln!("CHECK FAILED: R1 refusal fired {r1_fired}/{} times", r1.len()); + t.failures += 1; + } + js +} + +fn run_size(out_root: &str, n: usize) -> bool { + println!("== N = {n} =="); + let mut t = Totals { + gate_failed: 0, + failures: 0, + }; + let words = words_for(n); + let mut live = vec![0u64; words]; + for r in 0..n { + live[r >> 6] |= 1u64 << (r & 63); + } + + let t0 = Instant::now(); + let (u_lanes, u_pres) = build_u(n); + let build_u_us = t0.elapsed().as_nanos() as f64 / 1000.0; + let t0 = Instant::now(); + let (p_small, p_sp) = build_p(n); + let build_p_us = t0.elapsed().as_nanos() as f64 / 1000.0; + let t0 = Instant::now(); + let (s_pres, s_vals) = build_s(n); + let build_s_us = t0.elapsed().as_nanos() as f64 / 1000.0; + let compact: usize = s_vals.iter().map(Vec::len).sum(); + let st = Store { + n, + live, + u_lanes, + u_pres, + p_small, + p_sp, + s_pres, + s_vals, + }; + let lane_b = n * 4; + let bytes_u = 64 * lane_b + 16 * words * 8; + let bytes_p = 32 * lane_b; + let bytes_s = 48 * lane_b + 16 * words * 8 + compact * 4; + println!( + "COLD (reported, not gate) build us: U {build_u_us:.0} P {build_p_us:.0} S {build_s_us:.0} \ + (P aliases U's 16 full lanes, S aliases U's 48 lanes; those are not charged again)" + ); + println!( + "storage bytes: U {bytes_u} (64 lanes, over budget) P {bytes_p} (32 lanes) S {bytes_s} \ + (48 lanes + 16 presence + {compact} compact values)" + ); + + let checks_js = refusal_checks(&st, n, &mut t); + + let cases = gen_cases(); + let mut recs = String::new(); + for (ci, c) in cases.iter().enumerate() { + let o = oracle_count(&c.tree, n); + println!("case {:<16} K={:<2} mix={:<6} oracle count {o}", c.id, c.k, c.mix); + for arm in [Arm::U, Arm::P, Arm::S] { + let v = view(arm, &st); + let t0 = Instant::now(); + let prep = prepare(&v, &st, &c.tree); + let prep_us = t0.elapsed().as_nanos() as f64 / 1000.0; + let mut pr = match prep { + Ok(p) => p, + Err(e) => { + eprintln!("UNEXPECTED REFUSAL {} {}: {}", c.id, arm.name(), e.reason()); + t.failures += 1; + continue; + } + }; + let got = eval(&v, &st, &mut pr); + if got != o { + eprintln!("MISMATCH {} {}: oracle {o}, got {got}", c.id, arm.name()); + t.failures += 1; + } + let b0 = alloc_bytes(); + std::hint::black_box(eval(&v, &st, &mut pr)); + let alloc = alloc_bytes() - b0; + let (warm, runs) = median_us(31, || { + std::hint::black_box(eval(&v, &st, &mut pr)); + }); + let gate = warm >= 1000.0; + if gate { + println!("FAILED-GATE n={n} {} {} warm {warm:.1} us", c.id, arm.name()); + t.gate_failed += 1; + } + println!( + " {} lanes {:>2} planes {:>2} ext_loops {:>2} prep {:.0} us (COLD) warm {:.2} us alloc {alloc} B", + arm.name(), + pr.lanes_touched, + pr.planes, + pr.specs.len(), + prep_us, + warm + ); + if !recs.is_empty() { + recs.push(','); + } + let _ = write!( + recs, + "\n{{\"layout\":\"{}\",\"case\":\"{}\",\"k\":{},\"mix\":\"{}\",\"shape\":\"{}\",\ +\"count\":{got},\"oracle\":{o},\"prep_us_cold\":{},\"warm_median_us\":{},\"runs\":{runs},\ +\"failed_gate\":{gate},\"alloc_bytes_eval\":{alloc},\"lanes_touched\":{},\"planes\":{},\"ext_loops\":{}}}", + arm.name(), + c.id, + c.k, + c.mix, + c.shape, + jf(prep_us), + jf(warm), + pr.lanes_touched, + pr.planes, + pr.specs.len() + ); + } + let _ = ci; + } + + let dir = format!("{out_root}/project/n{n}"); + std::fs::create_dir_all(&dir).expect("create out dir"); + let _ = (u_lane_note(), Op::Eq.name()); + let js = format!( + "{{\"n\":{n},\"seed\":{SEED},\"build_us_cold\":{{\"U\":{},\"P\":{},\"S\":{}}},\ +\"storage_bytes\":{{\"U\":{bytes_u},\"P\":{bytes_p},\"S\":{bytes_s}}},\"s_compact_values\":{compact},\ +\"checks\":[{checks_js}],\"records\":[{recs}\n]}}\n", + jf(build_u_us), + jf(build_p_us), + jf(build_s_us) + ); + std::fs::write(format!("{dir}/project.json"), js).expect("write project.json"); + println!( + "N={n}: {} FAILED-GATE values (warm >= 1000 us, reported), {} failures", + t.gate_failed, t.failures + ); + t.failures == 0 +} + +fn u_lane_note() -> &'static str { + "U needs 64 lanes + 16 presence planes; over the 32-lane budget" +} + +fn main() { + let args: Vec = std::env::args().collect(); + if args.len() < 2 || args[1].starts_with("--") { + eprintln!("usage: project [--n 1000000|10000000]..."); + std::process::exit(2); + } + let out = args[1].clone(); + let mut sizes: Vec = Vec::new(); + let mut i = 2; + while i < args.len() { + if args[i] == "--n" && i + 1 < args.len() { + sizes.push(args[i + 1].parse().expect("--n takes an integer")); + i += 2; + } else { + eprintln!("unknown argument {}", args[i]); + std::process::exit(2); + } + } + if sizes.is_empty() { + sizes = vec![1_000_000, 10_000_000]; + } + let mut ok = true; + for n in sizes { + ok &= run_size(&out, n); + } + if !ok { + println!("PROJECT FAILED: answer mismatch or a refusal did not fire"); + std::process::exit(1); + } + println!("PROJECT ALL ANSWERS MATCH THE ORACLE, ALL REFUSALS FIRED"); +} From 53d781329438179c078d40ca4008b1e6f3c157aa Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 21:11:53 +0000 Subject: [PATCH 08/23] D-GLOBAL-WHERE P2: DR composition probe beyond 64K (lab) Composes D working sets with the existing DR algebra (no paging engine, no corpus-wide adjacency). Stages charged separately. At N=1M: every composed answer equals the oracle; refusals TooMany, id-in-two-sets, checked_sum overflow and stale binding all fire with paired controls. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../probe/src/bin/compose.rs | 1348 +++++++++++++++++ 1 file changed, 1348 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs new file mode 100644 index 000000000..60c99c71b --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs @@ -0,0 +1,1348 @@ +//! LAB: D-GLOBAL-WHERE P2, composition-scaling probe ("beyond 64K = repeated joins"). +//! +//! Lab only. Nothing here is production, and nothing here is a compiled or run +//! result until the orchestrator builds and runs it. +//! +//! QUESTION (operator): beyond 65,536 identities the answer is NOT a new paging +//! engine. It is REPEATED JOINS / COMPOSITION with the same DR algebra and the +//! same addressing: a `WorkingSet` is one `MapTable` of <= 256 DR256 tiles (<= +//! 65,536 ids), and an edge into another set is `CROSS | noderef(set << 16 | coord)`. +//! This probe measures how cost scales with the number of compositions D, +//! independently of the selected cardinality |sel| and of the corpus size N. +//! +//! Independent variables, one at a time from a base point: +//! * N in {1_000_000, 10_000_000}: must NOT drive any stage except the WHERE scan. +//! * |sel| in {1_000, 50_000, 200_000, 1_000_000}: D = ceil(|sel| / 65,536). +//! * D in {1, 2, 4, 8} at fixed |sel| = 50_000 (one selection split into more, +//! smaller sets), so composition overhead is separated from volume. +//! * partition: `contig` (chunks of the id-ordered candidates; community blocks +//! stay together, few cross-set edges) and `scatter` (position mod D; nearly +//! every edge crosses a set boundary, the worst case for routing). +//! +//! Graph: deterministic (lib `Rng` = SplitMix64), generated per source id, never +//! materialised corpus-wide: out-degree 4..12 (avg 8); 7/8 of the targets fall in +//! the source's own 1024-id block, 1/8 are uniform over N. The WHERE lane gives a +//! whole block the same high bits, so a threshold selects whole blocks (plus one +//! partial block). Edges whose target lies in no set are dropped (counted), as in +//! `Binding::prepare`. Per-set `CoordCsr` only; there is no dense adjacency. +//! +//! Query per case: A = `a < 300`, B = `b < 500` (virtual WHERE over lanes gathered +//! at preparation); W2 (EXISTS / COUNT of x in A with an edge into B), W6 (bag +//! count of 2-paths) and W5 (DISTINCT: y in B with an edge from A, 1 hop; "DISTINCT +//! reachable" is read as this lib workload). Each set k folds with A restricted to +//! set k (all CSRs visible, so cross targets resolve through `tgt_unpack`), then the +//! parts compose: EXISTS = OR, COUNT = `checked_sum` over disjoint contributions, +//! DISTINCT = exact union of the per-set reach masks (never a sum), bag +//! multiplicities preserved (`w6`, checked i64). +//! +//! Stages charged separately: discover (WHERE scan, N-BOUND BY DESIGN), partition, +//! fetch (edges of the set's sources from the generator, standing in for a global +//! relation index), bind (`WorkingSet::build`), route (arm index build + batch +//! routing of both endpoints), prep (CSR + presence + lanes + masks + fold plan), +//! fold (per set and total, warm), compose (warm), plus continuation (the D-th set +//! added to D-1 built sets vs a full rebuild) and `WorkingSet::extend` vs rebuild. +//! `StageTimes` carries Discover/Bind/Project(prep)/Fold; the lib has no slot for +//! the others, which use local timers. +//! +//! ORACLE: `lib::oracle` over the global edge list of the selected ids (generator +//! run again, edges kept only when the target is selected), outside every timed +//! region, never reading a working set. A composed answer that differs exits 1. +//! +//! REFUSALS (each exercised and checked to fire): an id in two sets -> `union_check` +//! Err; `checked_sum` overflow -> None (checked_sum does NOT see overlap, only +//! overflow; the overlap refusal is union_check, and the wrong sum is shown); +//! stale binding after a set is replaced -> `Binding::guard` Stale (and the arm-C +//! index refuses the new frame); > 65,536 ids into one set -> TooMany. +//! +//! NOT CLAIMED: absolute speed, that the generated graph resembles a real +//! corpus, that `fetch` equals a real relation-index read, that these numbers hold +//! at 30M, or anything about DuckDB. Cold stages (build/route/prep/continuation) +//! are reported, never gated. A warm fold >= 1000 us prints FAILED-GATE (counted, +//! reported; it does not change the exit code). +//! +//! Usage: `compose [--n 1000000|10000000]... [--arm A|B|C]` (default: both +//! sizes, arm C). Writes `/compose/n/compose.json` (and +//! `/compose/scaling.json` when two sizes ran). Exit 1 on any mismatch. + +use std::collections::HashSet; +use std::fmt::Write as _; +use std::hint::black_box; +use std::time::Instant; + +use d_global_where_p1_probe::*; +use lance_graph_dt64::dr::{Frame, MapRefusal}; +use lance_graph_quack::{Agg, Cmp}; + +#[global_allocator] +static ALLOC: CountingAlloc = CountingAlloc; + +const A_LT: i32 = 300; +const B_LT: i32 = 500; +const CAP: usize = 65_536; + +fn die(msg: String) -> ! { + eprintln!("compose: FATAL {msg}"); + std::process::exit(1) +} + +// --------------------------------------------------------------------------- +// deterministic corpus: WHERE lane, value lanes, edge generator +// --------------------------------------------------------------------------- + +fn mix(x: u64, salt: u64) -> u64 { + let mut r = Rng::new(x ^ salt.wrapping_mul(0xD6E8_FEB8_6659_FD93)); + r.next_u64() +} + +/// WHERE lane: 21 hash bits of the id's 1024-id block, then the low 10 id bits. +fn where_val(id: u64) -> i32 { + ((((mix(id >> 10, 0xB10C) & 0x1F_FFFF) << 10) | (id & 1023)) & 0x7FFF_FFFF) as i32 +} +fn a_of(g: u64) -> i32 { + (mix(g, 0xA) % 1000) as i32 +} +fn b_of(g: u64) -> i32 { + (mix(g, 0xB) % 1000) as i32 +} + +#[derive(Clone, Copy)] +struct Graph { + n: u64, +} + +impl Graph { + fn edges_of(&self, s: u64, out: &mut Vec<(u64, u64)>) { + let deg = 4 + (mix(s, 0x51) % 9) as usize; + for k in 0..deg { + let r = mix(s, 0x100 + k as u64); + let t = if r & 7 != 0 { + ((s & !1023) + ((r >> 8) % 1024)) % self.n + } else { + (r >> 8) % self.n + }; + out.push((s, t)); + } + } +} + +fn fetch_edges(g: &Graph, members: &[u64]) -> Vec<(u64, u64)> { + let mut out = Vec::with_capacity(members.len() * 8 + 8); + for &s in members { + g.edges_of(s, &mut out); + } + out +} + +/// Oracle over the global edge list of `ids` (edges kept when the target is selected). +fn oracle_for(g: &Graph, ids: &[u64]) -> Oracle { + let set: HashSet = ids.iter().copied().collect(); + let mut edges: Vec<(u64, u64)> = Vec::new(); + let mut tmp: Vec<(u64, u64)> = Vec::new(); + for &s in ids { + tmp.clear(); + g.edges_of(s, &mut tmp); + for &(a, b) in &tmp { + if set.contains(&b) { + edges.push((a, b)); + } + } + } + oracle(&edges, &|x| a_of(x) < A_LT, &|x| b_of(x) < B_LT, &[]) +} + +// --------------------------------------------------------------------------- +// selection (discover) and partition +// --------------------------------------------------------------------------- + +struct Sel { + requested: usize, + ids: Vec, + scan_us: f64, + extract_us: f64, + oracle: Option, +} + +fn discover(lane: &[i32], live: &[u64], n: usize, sel: usize) -> Sel { + let mut tmp = lane.to_vec(); + let k = sel.min(n - 1); + tmp.select_nth_unstable(k); + let t = tmp[k]; + drop(tmp); + let mut pr = Prepared::new(Cmp::LtI32(t), Agg::Rows, n); + let mut out = vec![0u64; words_for(n)]; + let runs = if n >= 5_000_000 { 5 } else { 9 }; + let scan = time_runs(runs, || pr.keep(lane, live, &mut out)); + let mut ids: Vec = Vec::new(); + let ext = time_runs(3, || { + ids.clear(); + for_each_bit(&out, |r| ids.push(r as u64)); + }); + if popcount(&out) as usize != ids.len() { + die("discover: mask popcount != extracted ids".to_string()); + } + Sel { + requested: sel, + ids, + scan_us: stats(&scan).0, + extract_us: stats(&ext).0, + oracle: None, + } +} + +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum Part { + Contig, + Scatter, +} +impl Part { + fn name(self) -> &'static str { + match self { + Part::Contig => "contig", + Part::Scatter => "scatter", + } + } +} + +fn partition(ids: &[u64], d: usize, part: Part) -> Vec> { + match part { + Part::Contig => { + let per = ids.len().div_ceil(d); + ids.chunks(per).map(|c| c.to_vec()).collect() + } + Part::Scatter => { + let mut v: Vec> = (0..d).map(|_| Vec::with_capacity(ids.len() / d + 1)).collect(); + for (i, &g) in ids.iter().enumerate() { + v[i % d].push(g); + } + v + } + } +} + +// --------------------------------------------------------------------------- +// costs +// --------------------------------------------------------------------------- + +#[derive(Default)] +struct Cost { + st: StageTimes, + partition: f64, + fetch: f64, + route: f64, +} + +fn lap(slot: &mut f64, f: impl FnOnce() -> R) -> R { + let t = Instant::now(); + let r = f(); + *slot += t.elapsed().as_nanos() as f64 / 1000.0; + r +} + +impl Cost { + fn build_total(&self) -> f64 { + self.fetch + self.route + self.st.us(Stage::Bind) + self.st.us(Stage::Project) + } +} + +fn med(cs: &[Cost], f: impl Fn(&Cost) -> f64) -> f64 { + let v: Vec = cs.iter().map(f).collect(); + stats(&v).0 +} + +// --------------------------------------------------------------------------- +// routing across sets (arm A/B/C through the lib batch routers) +// --------------------------------------------------------------------------- + +fn route_to(arm: Arm, ws: &WorkingSet, frame: &Frame, ix: Option<&CoordIndex>, ep: &[u64], out: &mut [u32]) -> RouteStats { + match arm { + Arm::A => route_batch_a_in(&ws.table, frame, &ws.tile_ids, ws.tw(), ep, out) + .unwrap_or_else(|e| die(format!("route A: {e:?}"))), + Arm::B => route_batch_b_in(&ws.table, frame, &ws.tile_ids, ws.tw(), ep, out) + .unwrap_or_else(|e| die(format!("route B: {e:?}"))), + Arm::C => route_batch_c(ix.unwrap_or_else(|| die("arm C index missing".to_string())), frame, ep, out) + .unwrap_or_else(|e| die(format!("route C: {e:?}"))), + } +} + +/// Route both endpoints of `edges` (all sources are members of `order[0]`): the +/// own set first, then each remaining set for the still-unmapped targets. The +/// first set that maps an id owns it. Returns (routed pairs, dropped (src, dst gid)). +fn route_edges( + arm: Arm, + order: &[usize], + sets: &[WorkingSet], + frames: &[Frame], + idx: &[CoordIndex], + edges: &[(u64, u64)], + calls: &mut u64, +) -> (Vec<(u32, u32)>, Vec<(u32, u64)>) { + let own = order[0]; + let mut ep: Vec = Vec::with_capacity(edges.len() * 2); + for &(s, d) in edges { + ep.push(s); + ep.push(d); + } + let mut out = vec![0u32; ep.len()]; + let st = route_to(arm, &sets[own], &frames[own], idx.get(own), &ep, &mut out); + *calls += st.locate_calls; + let mut dst = vec![UNROUTED; edges.len()]; + let mut rem: Vec = Vec::new(); + for e in 0..edges.len() { + let (cs, cd) = (out[2 * e], out[2 * e + 1]); + if cs >= COORD_AMBIGUOUS { + die(format!("source {:#x} not mapped by its own set {own}", edges[e].0)); + } + if cd == COORD_AMBIGUOUS { + die(format!("target {:#x} ambiguous in set {own}", edges[e].1)); + } + if cd == COORD_UNMAPPED { + rem.push(e); + } else { + dst[e] = noderef(own, cd as usize); + } + } + for &j in &order[1..] { + if rem.is_empty() { + break; + } + let sub: Vec = rem.iter().map(|&e| edges[e].1).collect(); + let mut so = vec![0u32; sub.len()]; + let st = route_to(arm, &sets[j], &frames[j], idx.get(j), &sub, &mut so); + *calls += st.locate_calls; + let mut next: Vec = Vec::new(); + for (t, &e) in rem.iter().enumerate() { + match so[t] { + COORD_UNMAPPED => next.push(e), + COORD_AMBIGUOUS => die(format!("target {:#x} ambiguous in set {j}", edges[e].1)), + c => dst[e] = noderef(j, c as usize), + } + } + rem = next; + } + let mut pairs: Vec<(u32, u32)> = Vec::with_capacity(edges.len()); + let mut dropped: Vec<(u32, u64)> = Vec::new(); + for e in 0..edges.len() { + let s = noderef(own, out[2 * e] as usize); + if dst[e] == UNROUTED { + dropped.push((s, edges[e].1)); + } else { + pairs.push((s, dst[e])); + } + } + (pairs, dropped) +} + +// --------------------------------------------------------------------------- +// preparation: per-set CSR + presence + lanes + masks; the fold plan +// --------------------------------------------------------------------------- + +struct SetData { + g: CoordCsr, + v: Vec, + la: Vec, + lb: Vec, + ma: Vec, + mb: Vec, +} + +fn prep_set(i: usize, ws: &WorkingSet, frame: &Frame, pairs: &[(u32, u32)]) -> SetData { + let n = ws.n_coords(); + let g = CoordCsr::from_routed(i, n, pairs); + let v = ws.valid_mask(frame); + let la = ws.gather_lane(frame, a_of); + let lb = ws.gather_lane(frame, b_of); + let mut ma = vec![0u64; words_for(n)]; + let mut mb = vec![0u64; words_for(n)]; + virtual_where(&la, A_LT, &v, &mut ma); + virtual_where(&lb, B_LT, &v, &mut mb); + SetData { g, v, la, lb, ma, mb } +} + +fn assemble(sets: &[WorkingSet], frames: Vec, pairs: &[Vec<(u32, u32)>], stats: BindStats) -> Binding { + let mut b = Binding { + frames, + graphs: Vec::new(), + valid: Vec::new(), + lane_a: Vec::new(), + lane_b: Vec::new(), + a: Vec::new(), + b: Vec::new(), + stats, + }; + for i in 0..sets.len() { + let sd = prep_set(i, &sets[i], &b.frames[i], &pairs[i]); + b.graphs.push(sd.g); + b.valid.push(sd.v); + b.lane_a.push(sd.la); + b.lane_b.push(sd.lb); + b.a.push(sd.ma); + b.b.push(sd.mb); + } + b +} + +/// Reusable fold buffers, sized once per binding: A restricted to each set k, the +/// per-k reach masks, the union accumulator, the per-k parts. +struct Plan { + ak: Vec>>, + reach: Vec>>, + uni: Vec>, + tmp: Vec>, + w2p: Vec, + w6p: Vec, + w5p: Vec, + ovf: bool, +} + +impl Plan { + fn new(b: &Binding) -> Plan { + let d = b.graphs.len(); + let sizes: Vec = b.graphs.iter().map(|g| g.n).collect(); + let zero = || sizes.iter().map(|&n| vec![0u64; words_for(n)]).collect::>(); + let ak: Vec>> = (0..d) + .map(|k| { + (0..d) + .map(|si| if si == k { b.a[si].clone() } else { vec![0u64; words_for(sizes[si])] }) + .collect() + }) + .collect(); + Plan { + ak, + reach: (0..d).map(|_| zero()).collect(), + uni: zero(), + tmp: zero(), + w2p: vec![0; d], + w6p: vec![0; d], + w5p: vec![0; d], + ovf: false, + } + } +} + +#[derive(Clone, Copy, Debug)] +struct Composed { + exists: bool, + count: Option, + bag: Option, + distinct: i64, + sum_distinct: Option, +} + +/// The per-set folds (warm, allocation-free). +fn fold(b: &Binding, p: &mut Plan) { + let g = &b.graphs; + p.ovf = false; + for k in 0..p.ak.len() { + p.w2p[k] = w2(g, &p.ak[k], &b.b); + match w6(g, &p.ak[k], None) { + Some(v) => p.w6p[k] = v, + None => { + p.ovf = true; + p.w6p[k] = 0; + } + } + step(g, &p.ak[k], &mut p.reach[k]); + p.w5p[k] = and_count(&p.reach[k], &b.b, &mut p.tmp); + } +} + +/// Combine the per-set parts with the proven laws (warm, allocation-free). +fn compose(b: &Binding, p: &mut Plan) -> Composed { + let exists = p.w2p.iter().any(|&c| c > 0); + let count = checked_sum(&p.w2p); + let bag = if p.ovf { None } else { checked_sum(&p.w6p) }; + for u in p.uni.iter_mut() { + u.fill(0); + } + for k in 0..p.reach.len() { + for si in 0..p.uni.len() { + ndarray::simd::mask_or_assign(&mut p.uni[si], &p.reach[k][si]); + } + } + let distinct = and_count(&p.uni, &b.b, &mut p.tmp); + let sum_distinct = checked_sum(&p.w5p); + Composed { exists, count, bag, distinct, sum_distinct } +} + +/// Monolithic reference folds over the same binding (untimed; cross-check only). +fn mono(b: &Binding) -> (i64, i64, Option) { + let sizes: Vec = b.graphs.iter().map(|g| g.n).collect(); + let mut sc = FoldScratch::new(&sizes); + (w2(&b.graphs, &b.a, &b.b), w5(&b.graphs, &b.a, &b.b, &mut sc), w6(&b.graphs, &b.a, None)) +} + +fn check(c: &Composed, o: &Oracle, m: (i64, i64, Option)) -> Vec { + let mut e = Vec::new(); + if c.count != Some(o.w2) { + e.push(format!("COUNT {:?} != oracle {}", c.count, o.w2)); + } + if c.exists != (o.w2 > 0) { + e.push(format!("EXISTS {} != oracle {}", c.exists, o.w2 > 0)); + } + if c.distinct != o.w5 { + e.push(format!("DISTINCT {} != oracle {}", c.distinct, o.w5)); + } + if c.bag != Some(o.w6) { + e.push(format!("BAG {:?} != oracle {}", c.bag, o.w6)); + } + if m.0 != o.w2 || m.1 != o.w5 || m.2 != Some(o.w6) { + e.push(format!("monolithic fold {m:?} != oracle")); + } + e +} + +// --------------------------------------------------------------------------- +// the built state: sets, routing indexes, routed pairs, dropped edges, binding +// --------------------------------------------------------------------------- + +struct Built { + arm: Arm, + src_base: u64, + sets: Vec, + idx: Vec, + pairs: Vec>, + dropped: Vec>, + bind: Binding, + plan: Plan, +} + +fn build(parts: &[Vec], arm: Arm, graph: &Graph, src_base: u64, cost: &mut Cost) -> Built { + let d = parts.len(); + let sets: Vec = cost.st.time(Stage::Bind, || { + parts + .iter() + .enumerate() + .map(|(i, p)| { + WorkingSet::build(p, src_base + i as u64).unwrap_or_else(|e| die(format!("WorkingSet::build: {e:?}"))) + }) + .collect() + }); + let edges: Vec> = lap(&mut cost.fetch, || parts.iter().map(|p| fetch_edges(graph, p)).collect()); + let frames: Vec = sets.iter().map(|s| s.seal()).collect(); + let mut calls = 0u64; + let (idx, pairs, dropped) = lap(&mut cost.route, || { + let idx: Vec = if arm == Arm::C { + sets.iter() + .zip(&frames) + .map(|(ws, f)| CoordIndex::build(ws, f).unwrap_or_else(|e| die(format!("CoordIndex::build: {e:?}")))) + .collect() + } else { + Vec::new() + }; + let mut pairs = Vec::with_capacity(d); + let mut dropped = Vec::with_capacity(d); + for i in 0..d { + let order: Vec = std::iter::once(i).chain((0..d).filter(|&j| j != i)).collect(); + let (p, dr) = route_edges(arm, &order, &sets, &frames, &idx, &edges[i], &mut calls); + pairs.push(p); + dropped.push(dr); + } + (idx, pairs, dropped) + }); + let n_edges: usize = edges.iter().map(|e| e.len()).sum(); + let n_dropped: usize = dropped.iter().map(|e| e.len()).sum(); + let stats = BindStats { locate_calls: calls, endpoints: 2 * n_edges, dropped_edges: n_dropped }; + drop(edges); + let bind = cost.st.time(Stage::Project, || assemble(&sets, frames, &pairs, stats)); + let plan = cost.st.time(Stage::Project, || Plan::new(&bind)); + Built { arm, src_base, sets, idx, pairs, dropped, bind, plan } +} + +impl Built { + /// Continuation: add one more set to an already-built composition. The new set + /// routes its own sources against every set; the earlier sets' dropped targets + /// are re-routed against the new set only; earlier CSRs that gained edges are + /// rebuilt from their routed pairs. Nothing already routed is routed again. + fn add_set(&mut self, ids: &[u64], graph: &Graph, cost: &mut Cost) { + let d = self.sets.len(); + let ws = cost.st.time(Stage::Bind, || { + WorkingSet::build(ids, self.src_base + d as u64).unwrap_or_else(|e| die(format!("add_set build: {e:?}"))) + }); + let frame = ws.seal(); + self.sets.push(ws); + self.bind.frames.push(frame); + let edges = lap(&mut cost.fetch, || fetch_edges(graph, ids)); + let mut gained = vec![0usize; d]; + let mut calls = 0u64; + let (np, nd) = lap(&mut cost.route, || { + if self.arm == Arm::C { + let ix = CoordIndex::build(&self.sets[d], &self.bind.frames[d]) + .unwrap_or_else(|e| die(format!("CoordIndex::build: {e:?}"))); + self.idx.push(ix); + } + let order: Vec = std::iter::once(d).chain(0..d).collect(); + let out = route_edges(self.arm, &order, &self.sets, &self.bind.frames, &self.idx, &edges, &mut calls); + for i in 0..d { + let dr = std::mem::take(&mut self.dropped[i]); + if dr.is_empty() { + continue; + } + let ep: Vec = dr.iter().map(|&(_, g)| g).collect(); + let mut so = vec![0u32; ep.len()]; + let st = route_to(self.arm, &self.sets[d], &self.bind.frames[d], self.idx.get(d), &ep, &mut so); + calls += st.locate_calls; + let mut keep: Vec<(u32, u64)> = Vec::new(); + for (t, &(s_nr, g)) in dr.iter().enumerate() { + match so[t] { + COORD_UNMAPPED => keep.push((s_nr, g)), + COORD_AMBIGUOUS => die(format!("target {g:#x} ambiguous in new set")), + c => { + self.pairs[i].push((s_nr, noderef(d, c as usize))); + gained[i] += 1; + } + } + } + self.dropped[i] = keep; + } + out + }); + self.pairs.push(np); + self.dropped.push(nd); + let (sets, bind, pairs) = (&self.sets, &mut self.bind, &self.pairs); + cost.st.time(Stage::Project, || { + let sd = prep_set(d, &sets[d], &bind.frames[d], &pairs[d]); + bind.graphs.push(sd.g); + bind.valid.push(sd.v); + bind.lane_a.push(sd.la); + bind.lane_b.push(sd.lb); + bind.a.push(sd.ma); + bind.b.push(sd.mb); + for i in 0..d { + if gained[i] > 0 { + bind.graphs[i] = CoordCsr::from_routed(i, sets[i].n_coords(), &pairs[i]); + } + } + bind.stats.locate_calls += calls; + bind.stats.endpoints += 2 * edges.len(); + }); + self.bind.stats.dropped_edges = self.dropped.iter().map(|v| v.len()).sum(); + self.plan = cost.st.time(Stage::Project, || Plan::new(&self.bind)); + } +} + +// --------------------------------------------------------------------------- +// one case +// --------------------------------------------------------------------------- + +#[derive(Clone, Copy)] +struct CaseSpec { + sel: usize, + d: usize, + part: Part, +} + +#[derive(Clone)] +struct Res { + sel_req: usize, + sel_got: usize, + d: usize, + part: Part, + discover_scan: f64, + discover_extract: f64, + partition: f64, + fetch: f64, + bind: f64, + route: f64, + prep: f64, + fold_total: f64, + fold_per_set: f64, + compose: f64, + disjoint: f64, + cont: f64, + rebuild: f64, + retained: usize, + peak: usize, + per_set_bytes: usize, + warm_calls: usize, + warm_bytes: usize, + edges: usize, + dropped: usize, + cross: usize, + locate_calls: u64, + ans: Composed, + sum_distinct_wrong: bool, + ok: bool, +} + +impl Res { + fn discover(&self) -> f64 { + self.discover_scan + self.discover_extract + } + /// Everything except discover: the cost once the candidate ids are given. + fn rest(&self) -> f64 { + self.partition + self.fetch + self.bind + self.route + self.prep + self.fold_total + self.compose + } + fn key(&self) -> (usize, usize, Part) { + (self.sel_req, self.d, self.part) + } +} + +fn run_case(sel: &mut Sel, spec: &CaseSpec, arm: Arm, graph: &Graph) -> Res { + let reps = if sel.requested >= 500_000 { + 1 + } else if sel.requested >= 100_000 { + 3 + } else { + 5 + }; + let warm_runs = if sel.requested >= 500_000 { 5 } else { 11 }; + let mut costs: Vec = Vec::new(); + let mut built: Option = None; + let (mut retained, mut peak) = (0usize, 0usize); + let mut dcount = spec.d; + for _ in 0..reps { + drop(built.take()); + let mut cost = Cost::default(); + let parts = lap(&mut cost.partition, || partition(&sel.ids, spec.d, spec.part)); + dcount = parts.len(); + let live0 = live_bytes(); + reset_peak(); + let b = build(&parts, arm, graph, 1000, &mut cost); + retained = live_bytes().saturating_sub(live0); + peak = peak_bytes().saturating_sub(live0); + built = Some(b); + costs.push(cost); + } + let mut b = built.unwrap_or_else(|| die("no build".to_string())); + let d = dcount; + + // oracle (cached per selection, outside every timed region) + let ids_len = sel.ids.len(); + if sel.oracle.is_none() { + sel.oracle = Some(oracle_for(graph, &sel.ids)); + } + let orc = sel.oracle.unwrap_or_else(|| die("oracle".to_string())); + + // disjointness guard (cold) + let refs: Vec<&WorkingSet> = b.sets.iter().collect(); + let t = Instant::now(); + let uc = union_check(&refs); + let disjoint = t.elapsed().as_nanos() as f64 / 1000.0; + drop(refs); + if uc != Ok(ids_len) { + die(format!("union_check on a disjoint partition returned {uc:?}, expected Ok({ids_len})")); + } + + // warm: fold, compose, allocations + fold(&b.bind, &mut b.plan); + let ans = compose(&b.bind, &mut b.plan); + let errs = check(&ans, &orc, mono(&b.bind)); + for e in &errs { + println!(" MISMATCH sel={} D={} {}: {e}", spec.sel, d, spec.part.name()); + } + let (c0, y0) = (alloc_calls(), alloc_bytes()); + fold(&b.bind, &mut b.plan); + black_box(compose(&b.bind, &mut b.plan)); + let (warm_calls, warm_bytes) = (alloc_calls() - c0, alloc_bytes() - y0); + let fold_us = { + let (bind, plan) = (&b.bind, &mut b.plan); + stats(&time_runs(warm_runs, || fold(bind, plan))).0 + }; + let compose_us = { + let (bind, plan) = (&b.bind, &mut b.plan); + stats(&time_runs(warm_runs, || { + black_box(compose(bind, plan)); + })) + .0 + }; + + let edges: usize = b.bind.graphs.iter().map(|g| g.edges()).sum(); + let cross: usize = b + .bind + .graphs + .iter() + .map(|g| g.tgt.iter().filter(|&&t| t & CROSS != 0).count()) + .sum(); + let dropped = b.bind.stats.dropped_edges; + let locate_calls = b.bind.stats.locate_calls; + + // continuation: the D-th set given D-1 built vs a full rebuild (contig only) + let (mut cont, mut rebuild) = (f64::NAN, f64::NAN); + let mut cont_ok = true; + if d >= 2 && spec.part == Part::Contig { + let (mut cs, mut rs) = (Vec::new(), Vec::new()); + for r in 0..reps { + let parts = partition(&sel.ids, spec.d, spec.part); + let mut c0 = Cost::default(); + let mut base = build(&parts[..d - 1], arm, graph, 2000, &mut c0); + let mut c1 = Cost::default(); + base.add_set(&parts[d - 1], graph, &mut c1); + cs.push(c1.build_total()); + if r + 1 == reps { + fold(&base.bind, &mut base.plan); + let a2 = compose(&base.bind, &mut base.plan); + let e2 = check(&a2, &orc, mono(&base.bind)); + for e in &e2 { + println!(" MISMATCH (continuation) sel={} D={d}: {e}", spec.sel); + } + cont_ok = e2.is_empty(); + } + drop(base); + let mut c2 = Cost::default(); + let full = build(&parts, arm, graph, 3000, &mut c2); + rs.push(c2.build_total()); + drop(full); + } + cont = stats(&cs).0; + rebuild = stats(&rs).0; + } + + Res { + sel_req: spec.sel, + sel_got: ids_len, + d, + part: spec.part, + discover_scan: sel.scan_us, + discover_extract: sel.extract_us, + partition: med(&costs, |c| c.partition), + fetch: med(&costs, |c| c.fetch), + bind: med(&costs, |c| c.st.us(Stage::Bind)), + route: med(&costs, |c| c.route), + prep: med(&costs, |c| c.st.us(Stage::Project)), + fold_total: fold_us, + fold_per_set: fold_us / d as f64, + compose: compose_us, + disjoint, + cont, + rebuild, + retained, + peak, + per_set_bytes: retained / d, + warm_calls, + warm_bytes, + edges, + dropped, + cross, + locate_calls, + ans, + sum_distinct_wrong: ans.sum_distinct != Some(ans.distinct), + ok: errs.is_empty() && cont_ok, + } +} + +// --------------------------------------------------------------------------- +// refusals and the WorkingSet::extend micro +// --------------------------------------------------------------------------- + +struct Refusals { + json: String, + ok: bool, +} + +fn refusals(cand: &[u64], arm: Arm, graph: &Graph) -> Refusals { + let mut ok = true; + let mut js = String::new(); + let mut note = |name: &str, fired: bool, paired: bool, detail: String, js: &mut String| { + let pass = fired && paired; + ok &= pass; + println!(" refusal {name}: {} ({detail})", if pass { "FIRES" } else { "FAILED" }); + if !js.is_empty() { + js.push(','); + } + write!(js, "\"{name}\":{{\"fires\":{fired},\"control_passes\":{paired},\"detail\":\"{detail}\"}}").unwrap(); + }; + + // 1. more than 65,536 ids into one working set -> TooMany, never truncated + let big: Vec = (0..(CAP as u64 + 1)).collect(); + let r_big = WorkingSet::build(&big, 9000); + let fired = matches!(r_big, Err(WsError::Map(MapRefusal::TooMany))); + let full = WorkingSet::build(&big[..CAP], 9001); + let control = full.is_ok(); + let mut ext_fired = false; + if let Ok(mut w) = full { + ext_fired = matches!(w.extend(&[999_999_999]), Err(WsError::Map(MapRefusal::TooMany))); + } + note( + "too_many", + fired && ext_fired, + control, + format!("build(65537)->TooMany {fired}; extend(full set)->TooMany {ext_fired}; build(65536) ok {control}"), + &mut js, + ); + + // 2. an id present in two sets: union_check refuses; the sum is shown wrong + let c = &cand[..5000.min(cand.len())]; + let overlap_parts = vec![c[..3000].to_vec(), c[2000..5000].to_vec()]; + let mut cost = Cost::default(); + let mut ob = build(&overlap_parts, arm, graph, 7000, &mut cost); + let refs: Vec<&WorkingSet> = ob.sets.iter().collect(); + let uc = union_check(&refs); + drop(refs); + let uc_fired = matches!(uc, Err(g) if c[2000..3000].binary_search(&g).is_ok()); + fold(&ob.bind, &mut ob.plan); + let wrong = compose(&ob.bind, &mut ob.plan); + let want = oracle_for(graph, c); + let sum_wrong = wrong.count != Some(want.w2) && wrong.distinct != want.w5 && wrong.bag != Some(want.w6); + let disjoint_parts = vec![c[..2500].to_vec(), c[2500..].to_vec()]; + let mut db = build(&disjoint_parts, arm, graph, 7100, &mut cost); + let drefs: Vec<&WorkingSet> = db.sets.iter().collect(); + let duc = union_check(&drefs); + drop(drefs); + fold(&db.bind, &mut db.plan); + let good = compose(&db.bind, &mut db.plan); + let control = duc == Ok(5000) && check(&good, &want, mono(&db.bind)).is_empty(); + note( + "id_in_two_sets", + uc_fired && sum_wrong, + control, + format!( + "union_check overlapping={uc:?}; naive composed COUNT {:?}/DISTINCT {}/BAG {:?} vs oracle {}/{}/{}; disjoint control union_check={duc:?} and composed==oracle", + wrong.count, wrong.distinct, wrong.bag, want.w2, want.w5, want.w6 + ), + &mut js, + ); + + // 3. checked_sum: overflow -> None (it does not see overlap; union_check does) + let ovf = checked_sum(&[i64::MAX, 1]); + let fine = checked_sum(&[1, 2, 3]); + note( + "checked_sum_overflow", + ovf.is_none(), + fine == Some(6), + format!("checked_sum([MAX,1])={ovf:?}; checked_sum([1,2,3])={fine:?}"), + &mut js, + ); + + // 4. stale binding / index after a set is replaced + let s = &cand[..4000.min(cand.len())]; + let sp = vec![s[..2000].to_vec(), s[2000..].to_vec()]; + let mut sb = build(&sp, arm, graph, 7200, &mut cost); + let refs: Vec<&WorkingSet> = sb.sets.iter().collect(); + let fresh_ok = sb.bind.guard(&refs, true).is_ok(); + drop(refs); + let f0 = sb.sets[0].seal(); + let mut t0 = sb.sets[0].table.map(&f0, 0).expect("tile 0").globals().to_vec(); + t0.reverse(); + sb.sets[0].replace_tile(0, &t0).expect("replace tile"); + let refs: Vec<&WorkingSet> = sb.sets.iter().collect(); + let stale = sb.bind.guard(&refs, true); + let off = sb.bind.guard(&refs, false); + let nf = sb.sets[0].seal(); + let idx_stale = if arm == Arm::C { + sb.idx[0].lookup(&nf, s[0]) == Err(CRefusal::StaleIndex) + } else { + true + }; + let fired = matches!(stale, Err(BindError::Stale(0))) && idx_stale; + note( + "stale_binding", + fired, + fresh_ok && off.is_ok(), + format!("guard after replace_tile={stale:?}; arm-C index refuses new frame {idx_stale}; guard before replace ok {fresh_ok}; guard disabled lets it through {}", off.is_ok()), + &mut js, + ); + + Refusals { json: format!("{{{js}}}"), ok } +} + +fn extend_micro(cand: &[u64]) -> (String, bool) { + if cand.len() < 60_000 { + return ("null".to_string(), true); + } + let (base, extra) = (&cand[..50_000], &cand[50_000..60_000]); + let (mut ext, mut reb) = (Vec::new(), Vec::new()); + let mut ok = true; + let mut kept = true; + for _ in 0..11 { + let mut ws = WorkingSet::build(base, 8000).unwrap_or_else(|e| die(format!("{e:?}"))); + let old = ws.seal(); + let c_before = ws.coord_a(&old, base[123]).ok(); + let t = Instant::now(); + let n = ws.extend(extra).unwrap_or_else(|e| die(format!("extend: {e:?}"))); + ext.push(t.elapsed().as_nanos() as f64 / 1000.0); + let nf = ws.seal(); + kept &= c_before.is_some() + && c_before == ws.coord_a(&nf, base[123]).ok() + && ws.coord_a(&nf, extra[0]).ok() == Some(50_000) + && !old.same_issue(&nf) + && n > 0; + let t = Instant::now(); + let w2s = WorkingSet::build(&cand[..60_000], 8001).unwrap_or_else(|e| die(format!("{e:?}"))); + reb.push(t.elapsed().as_nanos() as f64 / 1000.0); + black_box(w2s); + } + ok &= kept; + let (e, r) = (stats(&ext).0, stats(&reb).0); + println!( + " WorkingSet::extend(+10000 onto 50000) {e:.1}us vs WorkingSet::build(60000) {r:.1}us; old coordinates kept and old frame stale: {kept}" + ); + ( + format!("{{\"extend_us\":{e:.3},\"rebuild_us\":{r:.3},\"added\":10000,\"base\":50000,\"coords_kept_old_frame_stale\":{kept}}}"), + ok, + ) +} + +// --------------------------------------------------------------------------- +// reporting +// --------------------------------------------------------------------------- + +fn jf(v: f64) -> String { + if v.is_nan() { + "null".to_string() + } else { + format!("{v:.3}") + } +} +fn cell(v: f64) -> String { + if v.is_nan() { + "-".to_string() + } else { + format!("{v:.1}") + } +} + +type Get = fn(&Res) -> f64; +fn metrics() -> Vec<(&'static str, Get)> { + vec![ + ("discover", |r| r.discover()), + ("partition", |r| r.partition), + ("fetch", |r| r.fetch), + ("bind", |r| r.bind), + ("route", |r| r.route), + ("prep", |r| r.prep), + ("fold_total", |r| r.fold_total), + ("fold_per_set", |r| r.fold_per_set), + ("compose", |r| r.compose), + ("continuation", |r| r.cont), + ("rebuild", |r| r.rebuild), + ("rest_given_ids", |r| r.rest()), + ] +} + +fn res_json(r: &Res) -> String { + let mut s = String::new(); + write!( + s, + "{{\"sel_requested\":{},\"sel_achieved\":{},\"d\":{},\"partition\":\"{}\",\ +\"discover_scan_us\":{},\"discover_extract_us\":{},\"partition_us\":{},\"fetch_us\":{},\"bind_us\":{},\"route_us\":{},\"prep_us\":{},\ +\"fold_total_us\":{},\"fold_per_set_us\":{},\"compose_us\":{},\"disjoint_check_us\":{},\"continuation_us\":{},\"rebuild_us\":{},\"rest_given_ids_us\":{},\ +\"fold_gate\":\"{}\",\"warm_alloc_calls\":{},\"warm_alloc_bytes\":{},\"retained_bytes\":{},\"peak_bytes\":{},\"per_set_bytes\":{},\ +\"edges\":{},\"dropped_edges\":{},\"cross_edges\":{},\"locate_calls\":{},\ +\"answers\":{{\"exists\":{},\"count_w2\":{},\"distinct_w5\":{},\"bag_w6\":{},\"sum_of_per_set_distinct_is_wrong\":{}}},\"oracle_ok\":{}}}", + r.sel_req, + r.sel_got, + r.d, + r.part.name(), + jf(r.discover_scan), + jf(r.discover_extract), + jf(r.partition), + jf(r.fetch), + jf(r.bind), + jf(r.route), + jf(r.prep), + jf(r.fold_total), + jf(r.fold_per_set), + jf(r.compose), + jf(r.disjoint), + jf(r.cont), + jf(r.rebuild), + jf(r.rest()), + gate_label(r.fold_per_set, false).trim(), + r.warm_calls, + r.warm_bytes, + r.retained, + r.peak, + r.per_set_bytes, + r.edges, + r.dropped, + r.cross, + r.locate_calls, + r.ans.exists, + r.ans.count.map_or("null".to_string(), |v| v.to_string()), + r.ans.distinct, + r.ans.bag.map_or("null".to_string(), |v| v.to_string()), + r.sum_distinct_wrong, + r.ok + ) + .unwrap(); + s +} + +fn print_table(n: usize, rs: &[Res], gates: &mut u32) { + println!("\n== N={n} (all times us; discover = WHERE scan + mask->ids, N-BOUND by design; rest = everything else given the ids) =="); + println!( + "{:>8} {:>2} {:<7} {:>9} {:>8} {:>9} {:>8} {:>9} {:>9} {:>9} {:>9} {:>8} {:>10} {:>10} {:>10} gate", + "sel", "D", "part", "discover", "partit", "fetch", "bind", "route", "prep", "fold/set", "fold_tot", "compose", "continue", "rebuild", "rest" + ); + for r in rs { + let g = gate_label(r.fold_per_set, false); + if !g.is_empty() { + *gates += 1; + } + println!( + "{:>8} {:>2} {:<7} {:>9} {:>8} {:>9} {:>8} {:>9} {:>9} {:>9} {:>9} {:>8} {:>10} {:>10} {:>10} {}{}", + r.sel_got, + r.d, + r.part.name(), + cell(r.discover()), + cell(r.partition), + cell(r.fetch), + cell(r.bind), + cell(r.route), + cell(r.prep), + cell(r.fold_per_set), + cell(r.fold_total), + cell(r.compose), + cell(r.cont), + cell(r.rebuild), + cell(r.rest()), + g, + if r.ok { "" } else { " MISMATCH" } + ); + } + println!(" (route/prep/bind/fetch/partition/continuation/rebuild are COLD, reported not gated; fold gate is per set, warm)"); + for r in rs { + println!( + " sel={:>8} D={:>2} {:<7} edges {:>9} cross {:>9} ({:>5.1}%) dropped {:>8} locate {:>10} warm allocs {} calls/{} B retained {:>10} B ({} B/set) peak {} B disjoint-check {:.1}us answers exists={} W2={:?} W5={} W6={:?} sum(per-set DISTINCT) wrong={}", + r.sel_got, + r.d, + r.part.name(), + r.edges, + r.cross, + 100.0 * r.cross as f64 / r.edges.max(1) as f64, + r.dropped, + r.locate_calls, + r.warm_calls, + r.warm_bytes, + r.retained, + r.per_set_bytes, + r.peak, + r.disjoint, + r.ans.exists, + r.ans.count, + r.ans.distinct, + r.ans.bag, + r.sum_distinct_wrong + ); + } +} + +fn slope(xs: &[f64], ys: &[f64]) -> f64 { + let n = xs.len() as f64; + let (mx, my) = (xs.iter().sum::() / n, ys.iter().sum::() / n); + let num: f64 = xs.iter().zip(ys).map(|(x, y)| (x - mx) * (y - my)).sum(); + let den: f64 = xs.iter().map(|x| (x - mx) * (x - mx)).sum(); + if den == 0.0 { + 0.0 + } else { + num / den + } +} + +/// Slope in D at fixed N and fixed |sel| = 50,000 (OLS, us per additional set). +fn d_slopes(n: usize, rs: &[Res]) -> String { + let mut js = String::new(); + println!("\n-- N={n}: slope in D at fixed |sel|=50,000 (us per added set; D8/D1 ratio) --"); + for part in [Part::Contig, Part::Scatter] { + let pts: Vec<&Res> = rs + .iter() + .filter(|r| r.sel_req == 50_000 && (r.part == part || r.d == 1)) + .collect(); + if pts.len() < 3 { + continue; + } + let xs: Vec = pts.iter().map(|r| r.d as f64).collect(); + let mut line = format!(" {:<7} D={:?}:", part.name(), pts.iter().map(|r| r.d).collect::>()); + let mut one = String::new(); + for (name, get) in metrics() { + if name == "discover" || name == "fold_per_set" { + continue; + } + let ys: Vec = pts.iter().map(|r| get(r)).collect(); + if ys.iter().any(|v| v.is_nan()) { + continue; + } + let sl = slope(&xs, &ys); + let ratio = ys[ys.len() - 1] / ys[0].max(1e-9); + write!(line, " {name} {sl:+.1}/set x{ratio:.1};").unwrap(); + if !one.is_empty() { + one.push(','); + } + write!(one, "\"{name}\":{{\"slope_us_per_set\":{sl:.3},\"ratio_dmax_over_d1\":{ratio:.3}}}").unwrap(); + } + println!("{line}"); + if !js.is_empty() { + js.push(','); + } + write!(js, "\"{}\":{{{one}}}", part.name()).unwrap(); + } + format!("{{{js}}}") +} + +fn scaling(all: &[(usize, Vec)]) -> String { + if all.len() < 2 { + return "null".to_string(); + } + let (lo, hi) = (&all[0], &all[all.len() - 1]); + println!("\n== SCALING CHECK: ratio of stage cost, N={} over N={} (flat = ~1; a stage > 1.5x and > 100us is CORPUS-BOUND) ==", hi.0, lo.0); + let mut js = String::new(); + let mut bound: Vec = Vec::new(); + for rl in &lo.1 { + let Some(rh) = hi.1.iter().find(|r| r.key() == rl.key()) else { continue }; + let mut line = format!("sel={:>8} D={:>2} {:<7}:", rl.sel_got, rl.d, rl.part.name()); + let mut one = String::new(); + for (name, get) in metrics() { + let (a, b) = (get(rl), get(rh)); + if a.is_nan() || b.is_nan() { + continue; + } + let ratio = b / a.max(1e-9); + let flag = name != "discover" && ratio > 1.5 && a.max(b) > 100.0; + if name == "discover" { + write!(line, " {name} x{ratio:.1}(scan, N-bound expected);").unwrap(); + } else if flag { + write!(line, " {name} x{ratio:.1} CORPUS-BOUND;").unwrap(); + bound.push(format!("{name}@sel={},D={},{}", rl.sel_got, rl.d, rl.part.name())); + } else { + write!(line, " {name} x{ratio:.2};").unwrap(); + } + if !one.is_empty() { + one.push(','); + } + write!(one, "\"{name}\":{{\"ratio\":{ratio:.3},\"corpus_bound\":{flag}}}").unwrap(); + } + println!("{line}"); + if !js.is_empty() { + js.push(','); + } + write!(js, "{{\"sel\":{},\"d\":{},\"partition\":\"{}\",\"stages\":{{{one}}}}}", rl.sel_got, rl.d, rl.part.name()).unwrap(); + } + if bound.is_empty() { + println!(" no stage other than discover tracks N"); + } else { + println!(" CORPUS-BOUND findings (reported, not failures): {}", bound.join(", ")); + } + format!("{{\"n_lo\":{},\"n_hi\":{},\"cases\":[{js}],\"corpus_bound\":{:?}}}", lo.0, hi.0, bound) +} + +// --------------------------------------------------------------------------- +// main +// --------------------------------------------------------------------------- + +fn case_list() -> Vec { + let mut v: Vec = Vec::new(); + for sel in [1_000usize, 50_000, 200_000, 1_000_000] { + let d = sel.div_ceil(CAP); + v.push(CaseSpec { sel, d, part: Part::Contig }); + if d >= 2 { + v.push(CaseSpec { sel, d, part: Part::Scatter }); + } + } + for d in [2usize, 4, 8] { + v.push(CaseSpec { sel: 50_000, d, part: Part::Contig }); + v.push(CaseSpec { sel: 50_000, d, part: Part::Scatter }); + } + v +} + +fn main() { + let args: Vec = std::env::args().collect(); + if args.len() < 2 || args[1].starts_with("--") { + eprintln!("usage: compose [--n 1000000|10000000]... [--arm A|B|C]"); + std::process::exit(2); + } + let out = args[1].clone(); + let mut sizes: Vec = Vec::new(); + let mut arm = Arm::C; + let mut i = 2; + while i < args.len() { + match args[i].as_str() { + "--n" if i + 1 < args.len() => { + sizes.push(args[i + 1].parse().expect("--n takes an integer")); + i += 2; + } + "--arm" if i + 1 < args.len() => { + arm = match args[i + 1].as_str() { + "A" => Arm::A, + "B" => Arm::B, + "C" => Arm::C, + other => die(format!("unknown arm {other}")), + }; + i += 2; + } + other => { + eprintln!("unknown argument {other}"); + std::process::exit(2); + } + } + } + if sizes.is_empty() { + sizes = vec![1_000_000, 10_000_000]; + } + sizes.sort_unstable(); + + let mut all: Vec<(usize, Vec)> = Vec::new(); + let mut failed = false; + let mut gates = 0u32; + for &n in &sizes { + println!("\n######## N={n} routing arm {} ########", arm.name()); + let graph = Graph { n: n as u64 }; + let lane: Vec = (0..n as u64).map(where_val).collect(); + let mut live = vec![u64::MAX; words_for(n)]; + if n % 64 != 0 { + let last = live.len() - 1; + live[last] = (1u64 << (n % 64)) - 1; + } + let mut sels: Vec = Vec::new(); + for sel in [1_000usize, 50_000, 200_000, 1_000_000] { + if sel < n { + let s = discover(&lane, &live, n, sel); + println!( + "discover |sel|={} achieved {}: scan {:.1}us + extract {:.1}us (N-bound by design)", + sel, + s.ids.len(), + s.scan_us, + s.extract_us + ); + sels.push(s); + } + } + drop(lane); + let mut rs: Vec = Vec::new(); + for spec in case_list() { + let Some(s) = sels.iter_mut().find(|s| s.requested == spec.sel) else { continue }; + println!("case sel={} D={} {} ...", spec.sel, spec.d, spec.part.name()); + let r = run_case(s, &spec, arm, &graph); + failed |= !r.ok; + rs.push(r); + } + print_table(n, &rs, &mut gates); + let slopes = d_slopes(n, &rs); + + println!("\n-- refusals and WorkingSet::extend (N={n}) --"); + let cand = sels + .iter() + .find(|s| s.requested == 200_000) + .map(|s| s.ids.clone()) + .unwrap_or_else(|| die("no 200k selection".to_string())); + let rf = refusals(&cand, arm, &graph); + let (ext_json, ext_ok) = extend_micro(&cand); + failed |= !rf.ok || !ext_ok; + + let dir = format!("{out}/compose/n{n}"); + std::fs::create_dir_all(&dir).expect("create out dir"); + let cases: Vec = rs.iter().map(res_json).collect(); + let js = format!( + "{{\"n\":{n},\"arm\":\"{}\",\"graph\":\"avg out-degree 8, 7/8 targets in the source's 1024-id block, 1/8 uniform\",\ +\"gate\":\"warm fold per set >= 1000us prints FAILED-GATE (reported)\",\"cases\":[{}],\"d_slopes\":{slopes},\"refusals\":{},\"extend_vs_rebuild\":{ext_json}}}\n", + arm.name(), + cases.join(","), + rf.json + ); + std::fs::write(format!("{dir}/compose.json"), js).expect("write compose.json"); + all.push((n, rs)); + } + + if all.len() >= 2 { + let sc = scaling(&all); + let dir = format!("{out}/compose"); + std::fs::create_dir_all(&dir).expect("create out dir"); + std::fs::write(format!("{dir}/scaling.json"), format!("{sc}\n")).expect("write scaling.json"); + } + println!("\ncompose: {gates} case(s) printed FAILED-GATE on the warm per-set fold (reported, not an exit code)"); + if failed { + println!("compose: FAILED (an answer differed from the oracle, or a refusal did not fire)"); + std::process::exit(1); + } + println!("compose: all composed answers equal the oracle; every refusal fired"); +} From 9285b53d92d10c729cb84dc07f40288ab3e5420d Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 21:13:06 +0000 Subject: [PATCH 09/23] D-GLOBAL-WHERE P2: where_k, projection and composition results at 1M/10M (lab) All answers equal the independent oracles at both sizes; all refusals fire. Warm values >= 1000 us are reported as FAILED-GATE, cold stages as COLD. DuckDB comparison follows. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../results/comp_both.log | 124 +++ .../results/compose/n1000000/compose.json | 1 + .../results/compose/n10000000/compose.json | 1 + .../results/compose/scaling.json | 1 + .../results/proj10m.log | 117 +++ .../results/proj1m.log | 99 +++ .../results/project/n1000000/project.json | 44 + .../results/project/n10000000/project.json | 44 + .../results/where/n1000000/cases.json | 56 ++ .../results/where/n1000000/where_ours.json | 56 ++ .../results/where/n10000000/cases.json | 56 ++ .../results/where/n10000000/where_ours.json | 56 ++ .../results/wk10m.log | 762 ++++++++++++++++++ .../results/wk1m.log | 470 +++++++++++ 14 files changed, 1887 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log b/.claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log new file mode 100644 index 000000000..3124af7d4 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log @@ -0,0 +1,124 @@ + +######## N=1000000 routing arm C ######## +discover |sel|=1000 achieved 1000: scan 185.5us + extract 23.4us (N-bound by design) +discover |sel|=50000 achieved 50000: scan 198.2us + extract 85.4us (N-bound by design) +discover |sel|=200000 achieved 200000: scan 182.1us + extract 458.5us (N-bound by design) +case sel=1000 D=1 contig ... +case sel=50000 D=1 contig ... +case sel=200000 D=4 contig ... +case sel=200000 D=4 scatter ... +case sel=50000 D=2 contig ... +case sel=50000 D=2 scatter ... +case sel=50000 D=4 contig ... +case sel=50000 D=4 scatter ... +case sel=50000 D=8 contig ... +case sel=50000 D=8 scatter ... + +== N=1000000 (all times us; discover = WHERE scan + mask->ids, N-BOUND by design; rest = everything else given the ids) == + sel D part discover partit fetch bind route prep fold/set fold_tot compose continue rebuild rest gate + 1000 1 contig 208.9 0.7 68.2 18.4 480.6 60.2 60.2 60.2 0.1 - - 688.5 + 50000 1 contig 283.6 56.7 7167.1 947.3 35913.9 2478.3 3614.4 3614.4 0.3 - - 50178.1 FAILED-GATE + 200000 4 contig 640.6 237.7 14085.6 3805.8 165011.9 13889.9 3814.5 15257.8 3.4 54696.0 178169.9 212292.1 FAILED-GATE + 200000 4 scatter 640.6 518.0 13516.0 3682.3 282447.8 10023.7 4358.3 17433.0 4.3 - - 327625.2 FAILED-GATE + 50000 2 contig 283.6 56.7 2765.6 933.0 29809.1 2456.1 1897.4 3794.7 0.4 19912.8 35965.7 39815.5 FAILED-GATE + 50000 2 scatter 283.6 184.8 3945.5 1025.8 51220.8 2844.8 1815.3 3630.7 0.4 - - 62852.9 FAILED-GATE + 50000 4 contig 283.6 58.6 3111.9 897.0 32129.9 2540.0 921.0 3683.9 0.9 13690.3 45314.7 42422.2 + 50000 4 scatter 283.6 142.5 2956.7 892.7 58127.8 2470.2 908.4 3633.7 0.9 - - 68224.5 + 50000 8 contig 283.6 58.4 2787.9 883.6 35078.3 2404.8 452.4 3618.9 2.3 7764.8 46454.5 44834.2 + 50000 8 scatter 283.6 170.7 2941.4 889.9 90952.8 2473.4 466.4 3731.5 2.2 - - 101161.8 + (route/prep/bind/fetch/partition/continuation/rebuild are COLD, reported not gated; fold gate is per set, warm) + sel= 1000 D= 1 contig edges 6924 cross 0 ( 0.0%) dropped 1155 locate 0 warm allocs 0 calls/0 B retained 176004 B (176004 B/set) peak 648572 B disjoint-check 5.2us answers exists=true W2=Some(295) W5=443 W6=Some(14193) sum(per-set DISTINCT) wrong=false + sel= 50000 D= 1 contig edges 351834 cross 0 ( 0.0%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8113924 B (8113924 B/set) peak 31071728 B disjoint-check 144.1us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=false + sel= 200000 D= 4 contig edges 1437868 cross 39089 ( 2.7%) dropped 161605 locate 0 warm allocs 0 calls/0 B retained 32717864 B (8179466 B/set) peak 68292672 B disjoint-check 816.4us answers exists=true W2=Some(59065) W5=88417 W6=Some(3124985) sum(per-set DISTINCT) wrong=true + sel= 200000 D= 4 scatter edges 1437868 cross 1077204 ( 74.9%) dropped 161605 locate 0 warm allocs 0 calls/0 B retained 32717864 B (8179466 B/set) peak 86873564 B disjoint-check 4693.8us answers exists=true W2=Some(59065) W5=88417 W6=Some(3124985) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 2 contig edges 351834 cross 4847 ( 1.4%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8127784 B (4063892 B/set) peak 21734240 B disjoint-check 147.2us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 2 scatter edges 351834 cross 175564 ( 49.9%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8127776 B (4063888 B/set) peak 21879200 B disjoint-check 983.4us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 4 contig edges 351834 cross 11192 ( 3.2%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8153056 B (2038264 B/set) peak 20271008 B disjoint-check 177.3us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 4 scatter edges 351834 cross 263611 ( 74.9%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8153064 B (2038266 B/set) peak 21721320 B disjoint-check 965.7us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 8 contig edges 351834 cross 20915 ( 5.9%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8225600 B (1028200 B/set) peak 17937928 B disjoint-check 137.5us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 8 scatter edges 351834 cross 307477 ( 87.4%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8225592 B (1028199 B/set) peak 18333352 B disjoint-check 942.7us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true + +-- N=1000000: slope in D at fixed |sel|=50,000 (us per added set; D8/D1 ratio) -- + contig D=[1, 2, 4, 8]: partition +0.3/set x1.0; fetch -414.7/set x0.4; bind -9.0/set x0.9; route +215.2/set x1.0; prep -9.0/set x1.0; fold_total -9.7/set x1.0; compose +0.3/set x9.0; rest_given_ids -226.6/set x0.9; + scatter D=[1, 2, 4, 8]: partition +9.8/set x3.0; fetch -465.2/set x0.4; bind -13.7/set x0.9; route +7397.6/set x2.5; prep -23.1/set x1.0; fold_total +16.5/set x1.0; compose +0.3/set x8.5; rest_given_ids +6922.1/set x2.0; + +-- refusals and WorkingSet::extend (N=1000000) -- + refusal too_many: FIRES (build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true) + refusal id_in_two_sets: FIRES (union_check overlapping=Err(5072); naive composed COUNT Some(1729)/DISTINCT 2620/BAG Some(84635) vs oracle 1434/2208/69688; disjoint control union_check=Ok(5000) and composed==oracle) + refusal checked_sum_overflow: FIRES (checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)) + refusal stale_binding: FIRES (guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true) + WorkingSet::extend(+10000 onto 50000) 717.2us vs WorkingSet::build(60000) 950.3us; old coordinates kept and old frame stale: true + +######## N=10000000 routing arm C ######## +discover |sel|=1000 achieved 1000: scan 2815.9us + extract 95.6us (N-bound by design) +discover |sel|=50000 achieved 50000: scan 2234.4us + extract 156.2us (N-bound by design) +discover |sel|=200000 achieved 200000: scan 1933.7us + extract 313.2us (N-bound by design) +discover |sel|=1000000 achieved 1000000: scan 1823.2us + extract 1417.0us (N-bound by design) +case sel=1000 D=1 contig ... +case sel=50000 D=1 contig ... +case sel=200000 D=4 contig ... +case sel=200000 D=4 scatter ... +case sel=1000000 D=16 contig ... +case sel=1000000 D=16 scatter ... +case sel=50000 D=2 contig ... +case sel=50000 D=2 scatter ... +case sel=50000 D=4 contig ... +case sel=50000 D=4 scatter ... +case sel=50000 D=8 contig ... +case sel=50000 D=8 scatter ... + +== N=10000000 (all times us; discover = WHERE scan + mask->ids, N-BOUND by design; rest = everything else given the ids) == + sel D part discover partit fetch bind route prep fold/set fold_tot compose continue rebuild rest gate + 1000 1 contig 2911.5 1.0 43.7 15.5 338.4 38.5 54.9 54.9 0.1 - - 492.2 + 50000 1 contig 2390.5 56.1 2541.9 884.5 29655.6 2325.9 3604.8 3604.8 0.5 - - 39069.3 FAILED-GATE + 200000 4 contig 2246.9 248.9 24507.8 3702.6 150077.3 10226.4 3665.4 14661.5 3.6 53768.5 180443.1 203428.1 FAILED-GATE + 200000 4 scatter 2246.9 629.7 20106.3 3683.4 333023.1 10583.2 3868.5 15474.0 3.4 - - 383503.1 FAILED-GATE + 1000000 16 contig 3240.3 1297.9 118963.4 18568.0 1271009.9 62251.9 7099.8 113597.0 103.2 185331.4 1725769.3 1585791.2 FAILED-GATE + 1000000 16 scatter 3240.3 4415.6 83652.2 22078.2 5273045.1 54532.2 5544.3 88709.6 113.5 - - 5526546.4 FAILED-GATE + 50000 2 contig 2390.5 60.9 2870.8 912.6 29956.6 2448.1 1856.5 3712.9 0.5 19486.8 35561.7 39962.3 FAILED-GATE + 50000 2 scatter 2390.5 144.7 2713.6 919.9 42124.0 2459.8 1815.9 3631.9 0.5 - - 51994.4 FAILED-GATE + 50000 4 contig 2390.5 57.0 3043.5 904.2 32310.5 3198.7 1156.4 4625.7 1.5 16093.7 51256.7 44141.1 FAILED-GATE + 50000 4 scatter 2390.5 146.3 3066.6 898.5 59080.6 2521.2 926.0 3704.1 1.0 - - 69418.2 + 50000 8 contig 2390.5 62.8 2779.7 884.2 35880.7 2449.4 457.8 3662.0 2.4 7963.9 50665.6 45721.4 + 50000 8 scatter 2390.5 145.7 2835.6 898.7 85488.3 2380.8 468.0 3744.4 2.3 - - 95495.8 + (route/prep/bind/fetch/partition/continuation/rebuild are COLD, reported not gated; fold gate is per set, warm) + sel= 1000 D= 1 contig edges 6802 cross 0 ( 0.0%) dropped 1207 locate 0 warm allocs 0 calls/0 B retained 174940 B (174940 B/set) peak 646052 B disjoint-check 5.2us answers exists=true W2=Some(313) W5=465 W6=Some(14811) sum(per-set DISTINCT) wrong=false + sel= 50000 D= 1 contig edges 349173 cross 0 ( 0.0%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8100752 B (8100752 B/set) peak 24661736 B disjoint-check 208.5us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=false + sel= 200000 D= 4 contig edges 1403707 cross 12133 ( 0.9%) dropped 197471 locate 0 warm allocs 0 calls/0 B retained 32590588 B (8147647 B/set) peak 87519744 B disjoint-check 827.1us answers exists=true W2=Some(59030) W5=87951 W6=Some(2983642) sum(per-set DISTINCT) wrong=true + sel= 200000 D= 4 scatter edges 1403707 cross 1053140 ( 75.0%) dropped 197471 locate 0 warm allocs 0 calls/0 B retained 32590596 B (8147649 B/set) peak 80509456 B disjoint-check 4658.5us answers exists=true W2=Some(59030) W5=87951 W6=Some(2983642) sum(per-set DISTINCT) wrong=true + sel= 1000000 D=16 contig edges 7102129 cross 135606 ( 1.9%) dropped 900176 locate 0 warm allocs 0 calls/0 B retained 162088340 B (10130521 B/set) peak 331133700 B disjoint-check 5693.4us answers exists=true W2=Some(294165) W5=440420 W6=Some(15207122) sum(per-set DISTINCT) wrong=true + sel= 1000000 D=16 scatter edges 7102129 cross 6657999 ( 93.7%) dropped 900176 locate 0 warm allocs 0 calls/0 B retained 162088340 B (10130521 B/set) peak 341225180 B disjoint-check 26636.4us answers exists=true W2=Some(294165) W5=440420 W6=Some(15207122) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 2 contig edges 349173 cross 3596 ( 1.0%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8114612 B (4057306 B/set) peak 21741428 B disjoint-check 117.9us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 2 scatter edges 349173 cross 175000 ( 50.1%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8114612 B (4057306 B/set) peak 21886440 B disjoint-check 994.3us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 4 contig edges 349173 cross 9377 ( 2.7%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8139892 B (2034973 B/set) peak 20277412 B disjoint-check 187.5us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 4 scatter edges 349173 cross 262087 ( 75.1%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8139884 B (2034971 B/set) peak 21728572 B disjoint-check 953.1us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 8 contig edges 349173 cross 20175 ( 5.8%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8212412 B (1026551 B/set) peak 17141040 B disjoint-check 144.1us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true + sel= 50000 D= 8 scatter edges 349173 cross 305719 ( 87.6%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8212420 B (1026552 B/set) peak 17541644 B disjoint-check 1236.0us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true + +-- N=10000000: slope in D at fixed |sel|=50,000 (us per added set; D8/D1 ratio) -- + contig D=[1, 2, 4, 8]: partition +0.7/set x1.1; fetch +19.5/set x1.1; bind -1.6/set x1.0; route +925.0/set x1.2; prep +18.4/set x1.1; fold_total +10.8/set x1.0; compose +0.3/set x5.3; rest_given_ids +973.1/set x1.2; + scatter D=[1, 2, 4, 8]: partition +8.6/set x2.6; fetch +37.5/set x1.1; bind +0.1/set x1.0; route +7750.5/set x2.9; prep +1.7/set x1.0; fold_total +19.8/set x1.0; compose +0.3/set x5.2; rest_given_ids +7818.5/set x2.4; + +-- refusals and WorkingSet::extend (N=10000000) -- + refusal too_many: FIRES (build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true) + refusal id_in_two_sets: FIRES (union_check overlapping=Err(58320); naive composed COUNT Some(1791)/DISTINCT 2611/BAG Some(89960) vs oracle 1495/2195/74382; disjoint control union_check=Ok(5000) and composed==oracle) + refusal checked_sum_overflow: FIRES (checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)) + refusal stale_binding: FIRES (guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true) + WorkingSet::extend(+10000 onto 50000) 723.1us vs WorkingSet::build(60000) 984.8us; old coordinates kept and old frame stale: true + +== SCALING CHECK: ratio of stage cost, N=10000000 over N=1000000 (flat = ~1; a stage > 1.5x and > 100us is CORPUS-BOUND) == +sel= 1000 D= 1 contig : discover x13.9(scan, N-bound expected); partition x1.38; fetch x0.64; bind x0.84; route x0.70; prep x0.64; fold_total x0.91; fold_per_set x0.91; compose x0.71; rest_given_ids x0.71; +sel= 50000 D= 1 contig : discover x8.4(scan, N-bound expected); partition x0.99; fetch x0.35; bind x0.93; route x0.83; prep x0.94; fold_total x1.00; fold_per_set x1.00; compose x1.74; rest_given_ids x0.78; +sel= 200000 D= 4 contig : discover x3.5(scan, N-bound expected); partition x1.05; fetch x1.7 CORPUS-BOUND; bind x0.97; route x0.91; prep x0.74; fold_total x0.96; fold_per_set x0.96; compose x1.06; continuation x0.98; rebuild x1.01; rest_given_ids x0.96; +sel= 200000 D= 4 scatter: discover x3.5(scan, N-bound expected); partition x1.22; fetch x1.49; bind x1.00; route x1.18; prep x1.06; fold_total x0.89; fold_per_set x0.89; compose x0.79; rest_given_ids x1.17; +sel= 50000 D= 2 contig : discover x8.4(scan, N-bound expected); partition x1.07; fetch x1.04; bind x0.98; route x1.00; prep x1.00; fold_total x0.98; fold_per_set x0.98; compose x1.34; continuation x0.98; rebuild x0.99; rest_given_ids x1.00; +sel= 50000 D= 2 scatter: discover x8.4(scan, N-bound expected); partition x0.78; fetch x0.69; bind x0.90; route x0.82; prep x0.86; fold_total x1.00; fold_per_set x1.00; compose x1.05; rest_given_ids x0.83; +sel= 50000 D= 4 contig : discover x8.4(scan, N-bound expected); partition x0.97; fetch x0.98; bind x1.01; route x1.01; prep x1.26; fold_total x1.26; fold_per_set x1.26; compose x1.65; continuation x1.18; rebuild x1.13; rest_given_ids x1.04; +sel= 50000 D= 4 scatter: discover x8.4(scan, N-bound expected); partition x1.03; fetch x1.04; bind x1.01; route x1.02; prep x1.02; fold_total x1.02; fold_per_set x1.02; compose x1.02; rest_given_ids x1.02; +sel= 50000 D= 8 contig : discover x8.4(scan, N-bound expected); partition x1.08; fetch x1.00; bind x1.00; route x1.02; prep x1.02; fold_total x1.01; fold_per_set x1.01; compose x1.03; continuation x1.03; rebuild x1.09; rest_given_ids x1.02; +sel= 50000 D= 8 scatter: discover x8.4(scan, N-bound expected); partition x0.85; fetch x0.96; bind x1.01; route x0.94; prep x0.96; fold_total x1.00; fold_per_set x1.00; compose x1.06; rest_given_ids x0.94; + CORPUS-BOUND findings (reported, not failures): fetch@sel=200000,D=4,contig + +compose: 13 case(s) printed FAILED-GATE on the warm per-set fold (reported, not an exit code) +compose: all composed answers equal the oracle; every refusal fired +rc=0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json new file mode 100644 index 000000000..cac6f4e84 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json @@ -0,0 +1 @@ +{"n":1000000,"arm":"C","graph":"avg out-degree 8, 7/8 targets in the source's 1024-id block, 1/8 uniform","gate":"warm fold per set >= 1000us prints FAILED-GATE (reported)","cases":[{"sel_requested":1000,"sel_achieved":1000,"d":1,"partition":"contig","discover_scan_us":185.518,"discover_extract_us":23.394,"partition_us":0.738,"fetch_us":68.246,"bind_us":18.434,"route_us":480.623,"prep_us":60.173,"fold_total_us":60.180,"fold_per_set_us":60.180,"compose_us":0.087,"disjoint_check_us":5.150,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":688.481,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":176004,"peak_bytes":648572,"per_set_bytes":176004,"edges":6924,"dropped_edges":1155,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":295,"distinct_w5":443,"bag_w6":14193,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":1,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":56.708,"fetch_us":7167.132,"bind_us":947.313,"route_us":35913.941,"prep_us":2478.336,"fold_total_us":3614.396,"fold_per_set_us":3614.396,"compose_us":0.259,"disjoint_check_us":144.073,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":50178.085,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8113924,"peak_bytes":31071728,"per_set_bytes":8113924,"edges":351834,"dropped_edges":48424,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"contig","discover_scan_us":182.098,"discover_extract_us":458.537,"partition_us":237.714,"fetch_us":14085.577,"bind_us":3805.815,"route_us":165011.889,"prep_us":13889.909,"fold_total_us":15257.804,"fold_per_set_us":3814.451,"compose_us":3.377,"disjoint_check_us":816.436,"continuation_us":54695.987,"rebuild_us":178169.859,"rest_given_ids_us":212292.085,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32717864,"peak_bytes":68292672,"per_set_bytes":8179466,"edges":1437868,"dropped_edges":161605,"cross_edges":39089,"locate_calls":0,"answers":{"exists":true,"count_w2":59065,"distinct_w5":88417,"bag_w6":3124985,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"scatter","discover_scan_us":182.098,"discover_extract_us":458.537,"partition_us":518.015,"fetch_us":13516.040,"bind_us":3682.322,"route_us":282447.807,"prep_us":10023.671,"fold_total_us":17433.038,"fold_per_set_us":4358.260,"compose_us":4.279,"disjoint_check_us":4693.844,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":327625.172,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32717864,"peak_bytes":86873564,"per_set_bytes":8179466,"edges":1437868,"dropped_edges":161605,"cross_edges":1077204,"locate_calls":0,"answers":{"exists":true,"count_w2":59065,"distinct_w5":88417,"bag_w6":3124985,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":56.681,"fetch_us":2765.558,"bind_us":933.014,"route_us":29809.139,"prep_us":2456.050,"fold_total_us":3794.716,"fold_per_set_us":1897.358,"compose_us":0.369,"disjoint_check_us":147.169,"continuation_us":19912.817,"rebuild_us":35965.680,"rest_given_ids_us":39815.527,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8127784,"peak_bytes":21734240,"per_set_bytes":4063892,"edges":351834,"dropped_edges":48424,"cross_edges":4847,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"scatter","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":184.832,"fetch_us":3945.469,"bind_us":1025.756,"route_us":51220.848,"prep_us":2844.840,"fold_total_us":3630.682,"fold_per_set_us":1815.341,"compose_us":0.428,"disjoint_check_us":983.433,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":62852.855,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8127776,"peak_bytes":21879200,"per_set_bytes":4063888,"edges":351834,"dropped_edges":48424,"cross_edges":175564,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":58.575,"fetch_us":3111.928,"bind_us":896.983,"route_us":32129.913,"prep_us":2540.042,"fold_total_us":3683.860,"fold_per_set_us":920.965,"compose_us":0.926,"disjoint_check_us":177.261,"continuation_us":13690.263,"rebuild_us":45314.727,"rest_given_ids_us":42422.227,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8153056,"peak_bytes":20271008,"per_set_bytes":2038264,"edges":351834,"dropped_edges":48424,"cross_edges":11192,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"scatter","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":142.501,"fetch_us":2956.710,"bind_us":892.687,"route_us":58127.786,"prep_us":2470.250,"fold_total_us":3633.664,"fold_per_set_us":908.416,"compose_us":0.935,"disjoint_check_us":965.658,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":68224.533,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8153064,"peak_bytes":21721320,"per_set_bytes":2038266,"edges":351834,"dropped_edges":48424,"cross_edges":263611,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":58.352,"fetch_us":2787.902,"bind_us":883.556,"route_us":35078.325,"prep_us":2404.830,"fold_total_us":3618.900,"fold_per_set_us":452.363,"compose_us":2.328,"disjoint_check_us":137.452,"continuation_us":7764.773,"rebuild_us":46454.471,"rest_given_ids_us":44834.193,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8225600,"peak_bytes":17937928,"per_set_bytes":1028200,"edges":351834,"dropped_edges":48424,"cross_edges":20915,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"scatter","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":170.694,"fetch_us":2941.371,"bind_us":889.875,"route_us":90952.772,"prep_us":2473.404,"fold_total_us":3731.517,"fold_per_set_us":466.440,"compose_us":2.196,"disjoint_check_us":942.745,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":101161.829,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8225592,"peak_bytes":18333352,"per_set_bytes":1028199,"edges":351834,"dropped_edges":48424,"cross_edges":307477,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true}],"d_slopes":{"contig":{"partition":{"slope_us_per_set":0.261,"ratio_dmax_over_d1":1.029},"fetch":{"slope_us_per_set":-414.705,"ratio_dmax_over_d1":0.389},"bind":{"slope_us_per_set":-8.992,"ratio_dmax_over_d1":0.933},"route":{"slope_us_per_set":215.166,"ratio_dmax_over_d1":0.977},"prep":{"slope_us_per_set":-8.973,"ratio_dmax_over_d1":0.970},"fold_total":{"slope_us_per_set":-9.706,"ratio_dmax_over_d1":1.001},"compose":{"slope_us_per_set":0.305,"ratio_dmax_over_d1":8.988},"rest_given_ids":{"slope_us_per_set":-226.644,"ratio_dmax_over_d1":0.894}},"scatter":{"partition":{"slope_us_per_set":9.797,"ratio_dmax_over_d1":3.010},"fetch":{"slope_us_per_set":-465.189,"ratio_dmax_over_d1":0.410},"bind":{"slope_us_per_set":-13.741,"ratio_dmax_over_d1":0.939},"route":{"slope_us_per_set":7397.614,"ratio_dmax_over_d1":2.533},"prep":{"slope_us_per_set":-23.108,"ratio_dmax_over_d1":0.998},"fold_total":{"slope_us_per_set":16.490,"ratio_dmax_over_d1":1.032},"compose":{"slope_us_per_set":0.282,"ratio_dmax_over_d1":8.479},"rest_given_ids":{"slope_us_per_set":6922.145,"ratio_dmax_over_d1":2.016}}},"refusals":{"too_many":{"fires":true,"control_passes":true,"detail":"build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true"},"id_in_two_sets":{"fires":true,"control_passes":true,"detail":"union_check overlapping=Err(5072); naive composed COUNT Some(1729)/DISTINCT 2620/BAG Some(84635) vs oracle 1434/2208/69688; disjoint control union_check=Ok(5000) and composed==oracle"},"checked_sum_overflow":{"fires":true,"control_passes":true,"detail":"checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)"},"stale_binding":{"fires":true,"control_passes":true,"detail":"guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true"}},"extend_vs_rebuild":{"extend_us":717.218,"rebuild_us":950.337,"added":10000,"base":50000,"coords_kept_old_frame_stale":true}} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json new file mode 100644 index 000000000..a26c9c391 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json @@ -0,0 +1 @@ +{"n":10000000,"arm":"C","graph":"avg out-degree 8, 7/8 targets in the source's 1024-id block, 1/8 uniform","gate":"warm fold per set >= 1000us prints FAILED-GATE (reported)","cases":[{"sel_requested":1000,"sel_achieved":1000,"d":1,"partition":"contig","discover_scan_us":2815.938,"discover_extract_us":95.592,"partition_us":1.022,"fetch_us":43.737,"bind_us":15.521,"route_us":338.420,"prep_us":38.504,"fold_total_us":54.941,"fold_per_set_us":54.941,"compose_us":0.062,"disjoint_check_us":5.231,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":492.207,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":174940,"peak_bytes":646052,"per_set_bytes":174940,"edges":6802,"dropped_edges":1207,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":313,"distinct_w5":465,"bag_w6":14811,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":1,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":56.104,"fetch_us":2541.926,"bind_us":884.542,"route_us":29655.556,"prep_us":2325.918,"fold_total_us":3604.808,"fold_per_set_us":3604.808,"compose_us":0.450,"disjoint_check_us":208.486,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":39069.304,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8100752,"peak_bytes":24661736,"per_set_bytes":8100752,"edges":349173,"dropped_edges":50811,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"contig","discover_scan_us":1933.714,"discover_extract_us":313.219,"partition_us":248.901,"fetch_us":24507.777,"bind_us":3702.625,"route_us":150077.323,"prep_us":10226.397,"fold_total_us":14661.460,"fold_per_set_us":3665.365,"compose_us":3.578,"disjoint_check_us":827.056,"continuation_us":53768.467,"rebuild_us":180443.130,"rest_given_ids_us":203428.061,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32590588,"peak_bytes":87519744,"per_set_bytes":8147647,"edges":1403707,"dropped_edges":197471,"cross_edges":12133,"locate_calls":0,"answers":{"exists":true,"count_w2":59030,"distinct_w5":87951,"bag_w6":2983642,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"scatter","discover_scan_us":1933.714,"discover_extract_us":313.219,"partition_us":629.720,"fetch_us":20106.335,"bind_us":3683.397,"route_us":333023.104,"prep_us":10583.207,"fold_total_us":15473.996,"fold_per_set_us":3868.499,"compose_us":3.363,"disjoint_check_us":4658.523,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":383503.122,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32590596,"peak_bytes":80509456,"per_set_bytes":8147649,"edges":1403707,"dropped_edges":197471,"cross_edges":1053140,"locate_calls":0,"answers":{"exists":true,"count_w2":59030,"distinct_w5":87951,"bag_w6":2983642,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":1000000,"sel_achieved":1000000,"d":16,"partition":"contig","discover_scan_us":1823.229,"discover_extract_us":1417.035,"partition_us":1297.915,"fetch_us":118963.435,"bind_us":18568.048,"route_us":1271009.854,"prep_us":62251.855,"fold_total_us":113596.956,"fold_per_set_us":7099.810,"compose_us":103.150,"disjoint_check_us":5693.389,"continuation_us":185331.432,"rebuild_us":1725769.265,"rest_given_ids_us":1585791.213,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":162088340,"peak_bytes":331133700,"per_set_bytes":10130521,"edges":7102129,"dropped_edges":900176,"cross_edges":135606,"locate_calls":0,"answers":{"exists":true,"count_w2":294165,"distinct_w5":440420,"bag_w6":15207122,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":1000000,"sel_achieved":1000000,"d":16,"partition":"scatter","discover_scan_us":1823.229,"discover_extract_us":1417.035,"partition_us":4415.619,"fetch_us":83652.243,"bind_us":22078.176,"route_us":5273045.145,"prep_us":54532.196,"fold_total_us":88709.563,"fold_per_set_us":5544.348,"compose_us":113.464,"disjoint_check_us":26636.412,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":5526546.406,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":162088340,"peak_bytes":341225180,"per_set_bytes":10130521,"edges":7102129,"dropped_edges":900176,"cross_edges":6657999,"locate_calls":0,"answers":{"exists":true,"count_w2":294165,"distinct_w5":440420,"bag_w6":15207122,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":60.905,"fetch_us":2870.762,"bind_us":912.595,"route_us":29956.594,"prep_us":2448.053,"fold_total_us":3712.930,"fold_per_set_us":1856.465,"compose_us":0.493,"disjoint_check_us":117.854,"continuation_us":19486.750,"rebuild_us":35561.738,"rest_given_ids_us":39962.332,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8114612,"peak_bytes":21741428,"per_set_bytes":4057306,"edges":349173,"dropped_edges":50811,"cross_edges":3596,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"scatter","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":144.741,"fetch_us":2713.574,"bind_us":919.875,"route_us":42124.019,"prep_us":2459.842,"fold_total_us":3631.868,"fold_per_set_us":1815.934,"compose_us":0.451,"disjoint_check_us":994.277,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":51994.370,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8114612,"peak_bytes":21886440,"per_set_bytes":4057306,"edges":349173,"dropped_edges":50811,"cross_edges":175000,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":56.968,"fetch_us":3043.499,"bind_us":904.232,"route_us":32310.512,"prep_us":3198.703,"fold_total_us":4625.697,"fold_per_set_us":1156.424,"compose_us":1.528,"disjoint_check_us":187.502,"continuation_us":16093.726,"rebuild_us":51256.725,"rest_given_ids_us":44141.139,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8139892,"peak_bytes":20277412,"per_set_bytes":2034973,"edges":349173,"dropped_edges":50811,"cross_edges":9377,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"scatter","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":146.252,"fetch_us":3066.558,"bind_us":898.519,"route_us":59080.628,"prep_us":2521.248,"fold_total_us":3704.076,"fold_per_set_us":926.019,"compose_us":0.951,"disjoint_check_us":953.097,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":69418.232,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8139884,"peak_bytes":21728572,"per_set_bytes":2034971,"edges":349173,"dropped_edges":50811,"cross_edges":262087,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":62.836,"fetch_us":2779.706,"bind_us":884.207,"route_us":35880.740,"prep_us":2449.430,"fold_total_us":3662.049,"fold_per_set_us":457.756,"compose_us":2.395,"disjoint_check_us":144.077,"continuation_us":7963.905,"rebuild_us":50665.568,"rest_given_ids_us":45721.363,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8212412,"peak_bytes":17141040,"per_set_bytes":1026551,"edges":349173,"dropped_edges":50811,"cross_edges":20175,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"scatter","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":145.709,"fetch_us":2835.561,"bind_us":898.657,"route_us":85488.339,"prep_us":2380.831,"fold_total_us":3744.386,"fold_per_set_us":468.048,"compose_us":2.320,"disjoint_check_us":1235.987,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":95495.803,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8212420,"peak_bytes":17541644,"per_set_bytes":1026552,"edges":349173,"dropped_edges":50811,"cross_edges":305719,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true}],"d_slopes":{"contig":{"partition":{"slope_us_per_set":0.710,"ratio_dmax_over_d1":1.120},"fetch":{"slope_us_per_set":19.495,"ratio_dmax_over_d1":1.094},"bind":{"slope_us_per_set":-1.586,"ratio_dmax_over_d1":1.000},"route":{"slope_us_per_set":925.007,"ratio_dmax_over_d1":1.210},"prep":{"slope_us_per_set":18.413,"ratio_dmax_over_d1":1.053},"fold_total":{"slope_us_per_set":10.758,"ratio_dmax_over_d1":1.016},"compose":{"slope_us_per_set":0.294,"ratio_dmax_over_d1":5.322},"rest_given_ids":{"slope_us_per_set":973.093,"ratio_dmax_over_d1":1.170}},"scatter":{"partition":{"slope_us_per_set":8.635,"ratio_dmax_over_d1":2.597},"fetch":{"slope_us_per_set":37.521,"ratio_dmax_over_d1":1.116},"bind":{"slope_us_per_set":0.057,"ratio_dmax_over_d1":1.016},"route":{"slope_us_per_set":7750.462,"ratio_dmax_over_d1":2.883},"prep":{"slope_us_per_set":1.664,"ratio_dmax_over_d1":1.024},"fold_total":{"slope_us_per_set":19.849,"ratio_dmax_over_d1":1.039},"compose":{"slope_us_per_set":0.281,"ratio_dmax_over_d1":5.156},"rest_given_ids":{"slope_us_per_set":7818.469,"ratio_dmax_over_d1":2.444}}},"refusals":{"too_many":{"fires":true,"control_passes":true,"detail":"build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true"},"id_in_two_sets":{"fires":true,"control_passes":true,"detail":"union_check overlapping=Err(58320); naive composed COUNT Some(1791)/DISTINCT 2611/BAG Some(89960) vs oracle 1495/2195/74382; disjoint control union_check=Ok(5000) and composed==oracle"},"checked_sum_overflow":{"fires":true,"control_passes":true,"detail":"checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)"},"stale_binding":{"fires":true,"control_passes":true,"detail":"guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true"}},"extend_vs_rebuild":{"extend_us":723.097,"rebuild_us":984.791,"added":10000,"base":50000,"coords_kept_old_frame_stale":true}} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json new file mode 100644 index 000000000..3b07f8312 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json @@ -0,0 +1 @@ +{"n_lo":1000000,"n_hi":10000000,"cases":[{"sel":1000,"d":1,"partition":"contig","stages":{"discover":{"ratio":13.937,"corpus_bound":false},"partition":{"ratio":1.385,"corpus_bound":false},"fetch":{"ratio":0.641,"corpus_bound":false},"bind":{"ratio":0.842,"corpus_bound":false},"route":{"ratio":0.704,"corpus_bound":false},"prep":{"ratio":0.640,"corpus_bound":false},"fold_total":{"ratio":0.913,"corpus_bound":false},"fold_per_set":{"ratio":0.913,"corpus_bound":false},"compose":{"ratio":0.713,"corpus_bound":false},"rest_given_ids":{"ratio":0.715,"corpus_bound":false}}},{"sel":50000,"d":1,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.989,"corpus_bound":false},"fetch":{"ratio":0.355,"corpus_bound":false},"bind":{"ratio":0.934,"corpus_bound":false},"route":{"ratio":0.826,"corpus_bound":false},"prep":{"ratio":0.938,"corpus_bound":false},"fold_total":{"ratio":0.997,"corpus_bound":false},"fold_per_set":{"ratio":0.997,"corpus_bound":false},"compose":{"ratio":1.737,"corpus_bound":false},"rest_given_ids":{"ratio":0.779,"corpus_bound":false}}},{"sel":200000,"d":4,"partition":"contig","stages":{"discover":{"ratio":3.507,"corpus_bound":false},"partition":{"ratio":1.047,"corpus_bound":false},"fetch":{"ratio":1.740,"corpus_bound":true},"bind":{"ratio":0.973,"corpus_bound":false},"route":{"ratio":0.909,"corpus_bound":false},"prep":{"ratio":0.736,"corpus_bound":false},"fold_total":{"ratio":0.961,"corpus_bound":false},"fold_per_set":{"ratio":0.961,"corpus_bound":false},"compose":{"ratio":1.060,"corpus_bound":false},"continuation":{"ratio":0.983,"corpus_bound":false},"rebuild":{"ratio":1.013,"corpus_bound":false},"rest_given_ids":{"ratio":0.958,"corpus_bound":false}}},{"sel":200000,"d":4,"partition":"scatter","stages":{"discover":{"ratio":3.507,"corpus_bound":false},"partition":{"ratio":1.216,"corpus_bound":false},"fetch":{"ratio":1.488,"corpus_bound":false},"bind":{"ratio":1.000,"corpus_bound":false},"route":{"ratio":1.179,"corpus_bound":false},"prep":{"ratio":1.056,"corpus_bound":false},"fold_total":{"ratio":0.888,"corpus_bound":false},"fold_per_set":{"ratio":0.888,"corpus_bound":false},"compose":{"ratio":0.786,"corpus_bound":false},"rest_given_ids":{"ratio":1.171,"corpus_bound":false}}},{"sel":50000,"d":2,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":1.075,"corpus_bound":false},"fetch":{"ratio":1.038,"corpus_bound":false},"bind":{"ratio":0.978,"corpus_bound":false},"route":{"ratio":1.005,"corpus_bound":false},"prep":{"ratio":0.997,"corpus_bound":false},"fold_total":{"ratio":0.978,"corpus_bound":false},"fold_per_set":{"ratio":0.978,"corpus_bound":false},"compose":{"ratio":1.336,"corpus_bound":false},"continuation":{"ratio":0.979,"corpus_bound":false},"rebuild":{"ratio":0.989,"corpus_bound":false},"rest_given_ids":{"ratio":1.004,"corpus_bound":false}}},{"sel":50000,"d":2,"partition":"scatter","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.783,"corpus_bound":false},"fetch":{"ratio":0.688,"corpus_bound":false},"bind":{"ratio":0.897,"corpus_bound":false},"route":{"ratio":0.822,"corpus_bound":false},"prep":{"ratio":0.865,"corpus_bound":false},"fold_total":{"ratio":1.000,"corpus_bound":false},"fold_per_set":{"ratio":1.000,"corpus_bound":false},"compose":{"ratio":1.054,"corpus_bound":false},"rest_given_ids":{"ratio":0.827,"corpus_bound":false}}},{"sel":50000,"d":4,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.973,"corpus_bound":false},"fetch":{"ratio":0.978,"corpus_bound":false},"bind":{"ratio":1.008,"corpus_bound":false},"route":{"ratio":1.006,"corpus_bound":false},"prep":{"ratio":1.259,"corpus_bound":false},"fold_total":{"ratio":1.256,"corpus_bound":false},"fold_per_set":{"ratio":1.256,"corpus_bound":false},"compose":{"ratio":1.650,"corpus_bound":false},"continuation":{"ratio":1.176,"corpus_bound":false},"rebuild":{"ratio":1.131,"corpus_bound":false},"rest_given_ids":{"ratio":1.041,"corpus_bound":false}}},{"sel":50000,"d":4,"partition":"scatter","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":1.026,"corpus_bound":false},"fetch":{"ratio":1.037,"corpus_bound":false},"bind":{"ratio":1.007,"corpus_bound":false},"route":{"ratio":1.016,"corpus_bound":false},"prep":{"ratio":1.021,"corpus_bound":false},"fold_total":{"ratio":1.019,"corpus_bound":false},"fold_per_set":{"ratio":1.019,"corpus_bound":false},"compose":{"ratio":1.017,"corpus_bound":false},"rest_given_ids":{"ratio":1.017,"corpus_bound":false}}},{"sel":50000,"d":8,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":1.077,"corpus_bound":false},"fetch":{"ratio":0.997,"corpus_bound":false},"bind":{"ratio":1.001,"corpus_bound":false},"route":{"ratio":1.023,"corpus_bound":false},"prep":{"ratio":1.019,"corpus_bound":false},"fold_total":{"ratio":1.012,"corpus_bound":false},"fold_per_set":{"ratio":1.012,"corpus_bound":false},"compose":{"ratio":1.029,"corpus_bound":false},"continuation":{"ratio":1.026,"corpus_bound":false},"rebuild":{"ratio":1.091,"corpus_bound":false},"rest_given_ids":{"ratio":1.020,"corpus_bound":false}}},{"sel":50000,"d":8,"partition":"scatter","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.854,"corpus_bound":false},"fetch":{"ratio":0.964,"corpus_bound":false},"bind":{"ratio":1.010,"corpus_bound":false},"route":{"ratio":0.940,"corpus_bound":false},"prep":{"ratio":0.963,"corpus_bound":false},"fold_total":{"ratio":1.003,"corpus_bound":false},"fold_per_set":{"ratio":1.003,"corpus_bound":false},"compose":{"ratio":1.056,"corpus_bound":false},"rest_given_ids":{"ratio":0.944,"corpus_bound":false}}}],"corpus_bound":["fetch@sel=200000,D=4,contig"]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log new file mode 100644 index 000000000..1a0213d81 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log @@ -0,0 +1,117 @@ +== N = 10000000 == +COLD (reported, not gate) build us: U 17748485 P 5121691 S 531017 (P aliases U's 16 full lanes, S aliases U's 48 lanes; those are not charged again) +storage bytes: U 2580000000 (64 lanes, over budget) P 1280000000 (32 lanes) S 1952800008 (48 lanes + 16 presence + 3200002 compact values) +R1 p20 < 300 U=10000000 P=REFUSED(p20: constant 300 outside packed u8 range 0..=255) S=10000000 oracle=10000000 +R1 p20 = -1 U=0 P=REFUSED(p20: constant -1 outside packed u8 range 0..=255) S=0 oracle=0 +R1 p20 >= 256 U=0 P=REFUSED(p20: constant 256 outside packed u8 range 0..=255) S=0 oracle=0 +R1 p50 < 70000 U=199997 P=REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534) S=199997 oracle=199997 +R1-silent p20 < 200 P=7813421 oracle=7813421 +R1-silent p20 = 255 P=39256 oracle=39256 +R1-silent p50 >= 100 P=179873 oracle=179873 +R2 U count(p50 >= 0)=199997 presence=199997 N=10000000 +R2 P count(p50 >= 0)=199997 presence=199997 N=10000000 +R2 S count(p50 >= 0)=199997 presence=199997 N=10000000 +R3 70000 -> Err(SparseValueUnencodable { v: 70000 }), -3 -> Err(SparseValueUnencodable { v: -3 }), (999,absent) -> Ok(1000) +case k1_full_and K=1 mix=full oracle count 7499962 +FAILED-GATE n=10000000 k1_full_and U warm 1721.4 us + U lanes 1 planes 0 ext_loops 0 prep 9 us (COLD) warm 1721.39 us alloc 0 B +FAILED-GATE n=10000000 k1_full_and P warm 1712.2 us + P lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 1712.18 us alloc 0 B +FAILED-GATE n=10000000 k1_full_and S warm 1705.6 us + S lanes 1 planes 0 ext_loops 0 prep 4 us (COLD) warm 1705.61 us alloc 0 B +case k1_packed_and K=1 mix=packed oracle count 7813278 +FAILED-GATE n=10000000 k1_packed_and U warm 1706.5 us + U lanes 1 planes 0 ext_loops 0 prep 6 us (COLD) warm 1706.48 us alloc 0 B +FAILED-GATE n=10000000 k1_packed_and P warm 3072.4 us + P lanes 1 planes 1 ext_loops 1 prep 119 us (COLD) warm 3072.41 us alloc 0 B +FAILED-GATE n=10000000 k1_packed_and S warm 1909.8 us + S lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 1909.80 us alloc 0 B +case k1_sparse_and K=1 mix=sparse oracle count 200003 +FAILED-GATE n=10000000 k1_sparse_and U warm 1944.2 us + U lanes 1 planes 1 ext_loops 0 prep 8 us (COLD) warm 1944.19 us alloc 0 B +FAILED-GATE n=10000000 k1_sparse_and P warm 3058.1 us + P lanes 1 planes 1 ext_loops 1 prep 140 us (COLD) warm 3058.10 us alloc 0 B + S lanes 1 planes 1 ext_loops 1 prep 32 us (COLD) warm 500.82 us alloc 0 B +case k1_mixed_and K=1 mix=mixed oracle count 7499962 +FAILED-GATE n=10000000 k1_mixed_and U warm 1790.6 us + U lanes 1 planes 0 ext_loops 0 prep 7 us (COLD) warm 1790.62 us alloc 0 B +FAILED-GATE n=10000000 k1_mixed_and P warm 2110.8 us + P lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 2110.79 us alloc 0 B +FAILED-GATE n=10000000 k1_mixed_and S warm 2188.5 us + S lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 2188.51 us alloc 0 B +case k4_full_and K=4 mix=full oracle count 1405719 +FAILED-GATE n=10000000 k4_full_and U warm 27231.2 us + U lanes 4 planes 0 ext_loops 0 prep 14 us (COLD) warm 27231.18 us alloc 0 B +FAILED-GATE n=10000000 k4_full_and P warm 24755.3 us + P lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 24755.32 us alloc 0 B +FAILED-GATE n=10000000 k4_full_and S warm 24269.4 us + S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 24269.39 us alloc 0 B +case k4_packed_and K=4 mix=packed oracle count 5057028 +FAILED-GATE n=10000000 k4_packed_and U warm 24657.9 us + U lanes 4 planes 0 ext_loops 0 prep 10 us (COLD) warm 24657.86 us alloc 0 B +FAILED-GATE n=10000000 k4_packed_and P warm 11958.2 us + P lanes 1 planes 4 ext_loops 4 prep 454 us (COLD) warm 11958.18 us alloc 0 B +FAILED-GATE n=10000000 k4_packed_and S warm 24026.0 us + S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 24026.02 us alloc 0 B +case k4_sparse_and K=4 mix=sparse oracle count 0 +FAILED-GATE n=10000000 k4_sparse_and U warm 20467.7 us + U lanes 4 planes 4 ext_loops 0 prep 13 us (COLD) warm 20467.68 us alloc 0 B +FAILED-GATE n=10000000 k4_sparse_and P warm 25431.8 us + P lanes 2 planes 4 ext_loops 4 prep 247 us (COLD) warm 25431.77 us alloc 0 B +FAILED-GATE n=10000000 k4_sparse_and S warm 3354.6 us + S lanes 4 planes 4 ext_loops 4 prep 188 us (COLD) warm 3354.57 us alloc 0 B +case k4_mixed_and K=4 mix=mixed oracle count 58423 +FAILED-GATE n=10000000 k4_mixed_and U warm 21536.8 us + U lanes 4 planes 1 ext_loops 0 prep 12 us (COLD) warm 21536.79 us alloc 0 B +FAILED-GATE n=10000000 k4_mixed_and P warm 27878.9 us + P lanes 4 planes 2 ext_loops 2 prep 122 us (COLD) warm 27878.89 us alloc 0 B +FAILED-GATE n=10000000 k4_mixed_and S warm 15334.4 us + S lanes 4 planes 1 ext_loops 1 prep 30 us (COLD) warm 15334.40 us alloc 0 B +case k16_full_and K=16 mix=full oracle count 1732 +FAILED-GATE n=10000000 k16_full_and U warm 74776.6 us + U lanes 16 planes 0 ext_loops 0 prep 11 us (COLD) warm 74776.62 us alloc 0 B +FAILED-GATE n=10000000 k16_full_and P warm 76772.2 us + P lanes 16 planes 0 ext_loops 0 prep 10 us (COLD) warm 76772.21 us alloc 0 B +FAILED-GATE n=10000000 k16_full_and S warm 88821.3 us + S lanes 16 planes 0 ext_loops 0 prep 11 us (COLD) warm 88821.28 us alloc 0 B +case k16_packed_and K=16 mix=packed oracle count 886838 +FAILED-GATE n=10000000 k16_packed_and U warm 110142.4 us + U lanes 16 planes 0 ext_loops 0 prep 14 us (COLD) warm 110142.42 us alloc 0 B +FAILED-GATE n=10000000 k16_packed_and P warm 102580.2 us + P lanes 4 planes 16 ext_loops 16 prep 1590 us (COLD) warm 102580.15 us alloc 0 B +FAILED-GATE n=10000000 k16_packed_and S warm 105085.2 us + S lanes 16 planes 0 ext_loops 0 prep 12 us (COLD) warm 105085.25 us alloc 0 B +case k16_sparse_and K=16 mix=sparse oracle count 0 +FAILED-GATE n=10000000 k16_sparse_and U warm 80098.0 us + U lanes 16 planes 16 ext_loops 0 prep 21 us (COLD) warm 80098.03 us alloc 0 B +FAILED-GATE n=10000000 k16_sparse_and P warm 116692.5 us + P lanes 8 planes 16 ext_loops 16 prep 1533 us (COLD) warm 116692.49 us alloc 0 B +FAILED-GATE n=10000000 k16_sparse_and S warm 14440.3 us + S lanes 16 planes 16 ext_loops 16 prep 969 us (COLD) warm 14440.31 us alloc 0 B +case k16_mixed_and K=16 mix=mixed oracle count 0 +FAILED-GATE n=10000000 k16_mixed_and U warm 52875.0 us + U lanes 16 planes 5 ext_loops 0 prep 22 us (COLD) warm 52875.02 us alloc 0 B +FAILED-GATE n=10000000 k16_mixed_and P warm 114941.0 us + P lanes 11 planes 10 ext_loops 10 prep 810 us (COLD) warm 114941.04 us alloc 0 B +FAILED-GATE n=10000000 k16_mixed_and S warm 60669.9 us + S lanes 16 planes 5 ext_loops 5 prep 290 us (COLD) warm 60669.85 us alloc 0 B +case k4_mixed_or K=4 mix=mixed oracle count 9732172 +FAILED-GATE n=10000000 k4_mixed_or U warm 21360.1 us + U lanes 4 planes 1 ext_loops 0 prep 11 us (COLD) warm 21360.14 us alloc 0 B +FAILED-GATE n=10000000 k4_mixed_or P warm 24842.3 us + P lanes 4 planes 2 ext_loops 2 prep 151 us (COLD) warm 24842.33 us alloc 0 B +FAILED-GATE n=10000000 k4_mixed_or S warm 15257.1 us + S lanes 4 planes 1 ext_loops 1 prep 28 us (COLD) warm 15257.11 us alloc 0 B +case k16_mixed_or K=16 mix=mixed oracle count 10000000 +FAILED-GATE n=10000000 k16_mixed_or U warm 84284.7 us + U lanes 16 planes 5 ext_loops 0 prep 21 us (COLD) warm 84284.69 us alloc 0 B +FAILED-GATE n=10000000 k16_mixed_or P warm 110218.8 us + P lanes 11 planes 10 ext_loops 10 prep 948 us (COLD) warm 110218.82 us alloc 0 B +FAILED-GATE n=10000000 k16_mixed_or S warm 68168.1 us + S lanes 16 planes 5 ext_loops 5 prep 304 us (COLD) warm 68168.12 us alloc 0 B +N=10000000: 41 FAILED-GATE values (warm >= 1000 us, reported), 0 failures +PROJECT ALL ANSWERS MATCH THE ORACLE, ALL REFUSALS FIRED + +real 0m51.242s +user 0m35.178s +sys 0m15.689s diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log new file mode 100644 index 000000000..9f5171fe9 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log @@ -0,0 +1,99 @@ +== N = 1000000 == +COLD (reported, not gate) build us: U 708712 P 218233 S 30069 (P aliases U's 16 full lanes, S aliases U's 48 lanes; those are not charged again) +storage bytes: U 258000000 (64 lanes, over budget) P 128000000 (32 lanes) S 195280008 (48 lanes + 16 presence + 320002 compact values) +R1 p20 < 300 U=1000000 P=REFUSED(p20: constant 300 outside packed u8 range 0..=255) S=1000000 oracle=1000000 +R1 p20 = -1 U=0 P=REFUSED(p20: constant -1 outside packed u8 range 0..=255) S=0 oracle=0 +R1 p20 >= 256 U=0 P=REFUSED(p20: constant 256 outside packed u8 range 0..=255) S=0 oracle=0 +R1 p50 < 70000 U=19997 P=REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534) S=19997 oracle=19997 +R1-silent p20 < 200 P=781347 oracle=781347 +R1-silent p20 = 255 P=3791 oracle=3791 +R1-silent p50 >= 100 P=17998 oracle=17998 +R2 U count(p50 >= 0)=19997 presence=19997 N=1000000 +R2 P count(p50 >= 0)=19997 presence=19997 N=1000000 +R2 S count(p50 >= 0)=19997 presence=19997 N=1000000 +R3 70000 -> Err(SparseValueUnencodable { v: 70000 }), -3 -> Err(SparseValueUnencodable { v: -3 }), (999,absent) -> Ok(1000) +case k1_full_and K=1 mix=full oracle count 749742 + U lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 201.00 us alloc 0 B + P lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 204.02 us alloc 0 B + S lanes 1 planes 0 ext_loops 0 prep 2 us (COLD) warm 189.64 us alloc 0 B +case k1_packed_and K=1 mix=packed oracle count 780635 + U lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 184.62 us alloc 0 B + P lanes 1 planes 1 ext_loops 1 prep 11 us (COLD) warm 481.61 us alloc 0 B + S lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 184.11 us alloc 0 B +case k1_sparse_and K=1 mix=sparse oracle count 20000 + U lanes 1 planes 1 ext_loops 0 prep 5 us (COLD) warm 229.98 us alloc 0 B + P lanes 1 planes 1 ext_loops 1 prep 8 us (COLD) warm 492.57 us alloc 0 B + S lanes 1 planes 1 ext_loops 1 prep 5 us (COLD) warm 70.00 us alloc 0 B +case k1_mixed_and K=1 mix=mixed oracle count 749742 + U lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 186.30 us alloc 0 B + P lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 192.98 us alloc 0 B + S lanes 1 planes 0 ext_loops 0 prep 2 us (COLD) warm 204.19 us alloc 0 B +case k4_full_and K=4 mix=full oracle count 140953 +FAILED-GATE n=1000000 k4_full_and U warm 1275.1 us + U lanes 4 planes 0 ext_loops 0 prep 12 us (COLD) warm 1275.13 us alloc 0 B +FAILED-GATE n=1000000 k4_full_and P warm 1241.2 us + P lanes 4 planes 0 ext_loops 0 prep 9 us (COLD) warm 1241.24 us alloc 0 B +FAILED-GATE n=1000000 k4_full_and S warm 1195.8 us + S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 1195.84 us alloc 0 B +case k4_packed_and K=4 mix=packed oracle count 505593 +FAILED-GATE n=1000000 k4_packed_and U warm 1294.0 us + U lanes 4 planes 0 ext_loops 0 prep 13 us (COLD) warm 1294.00 us alloc 0 B +FAILED-GATE n=1000000 k4_packed_and P warm 1213.2 us + P lanes 1 planes 4 ext_loops 4 prep 170 us (COLD) warm 1213.21 us alloc 0 B + S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 792.08 us alloc 0 B +case k4_sparse_and K=4 mix=sparse oracle count 0 + U lanes 4 planes 4 ext_loops 0 prep 11 us (COLD) warm 654.41 us alloc 0 B +FAILED-GATE n=1000000 k4_sparse_and P warm 1240.2 us + P lanes 2 planes 4 ext_loops 4 prep 117 us (COLD) warm 1240.22 us alloc 0 B + S lanes 4 planes 4 ext_loops 4 prep 65 us (COLD) warm 267.08 us alloc 0 B +case k4_mixed_and K=4 mix=mixed oracle count 5826 + U lanes 4 planes 1 ext_loops 0 prep 10 us (COLD) warm 722.14 us alloc 0 B +FAILED-GATE n=1000000 k4_mixed_and P warm 1033.5 us + P lanes 4 planes 2 ext_loops 2 prep 25 us (COLD) warm 1033.52 us alloc 0 B + S lanes 4 planes 1 ext_loops 1 prep 13 us (COLD) warm 552.34 us alloc 0 B +case k16_full_and K=16 mix=full oracle count 169 +FAILED-GATE n=1000000 k16_full_and U warm 2507.9 us + U lanes 16 planes 0 ext_loops 0 prep 11 us (COLD) warm 2507.91 us alloc 0 B +FAILED-GATE n=1000000 k16_full_and P warm 2517.7 us + P lanes 16 planes 0 ext_loops 0 prep 10 us (COLD) warm 2517.67 us alloc 0 B +FAILED-GATE n=1000000 k16_full_and S warm 2562.0 us + S lanes 16 planes 0 ext_loops 0 prep 9 us (COLD) warm 2561.99 us alloc 0 B +case k16_packed_and K=16 mix=packed oracle count 89163 +FAILED-GATE n=1000000 k16_packed_and U warm 10100.5 us + U lanes 16 planes 0 ext_loops 0 prep 12 us (COLD) warm 10100.52 us alloc 0 B +FAILED-GATE n=1000000 k16_packed_and P warm 4984.7 us + P lanes 4 planes 16 ext_loops 16 prep 731 us (COLD) warm 4984.67 us alloc 0 B +FAILED-GATE n=1000000 k16_packed_and S warm 5594.2 us + S lanes 16 planes 0 ext_loops 0 prep 9 us (COLD) warm 5594.17 us alloc 0 B +case k16_sparse_and K=16 mix=sparse oracle count 0 +FAILED-GATE n=1000000 k16_sparse_and U warm 4284.8 us + U lanes 16 planes 16 ext_loops 0 prep 25 us (COLD) warm 4284.82 us alloc 0 B +FAILED-GATE n=1000000 k16_sparse_and P warm 7255.7 us + P lanes 8 planes 16 ext_loops 16 prep 667 us (COLD) warm 7255.74 us alloc 0 B +FAILED-GATE n=1000000 k16_sparse_and S warm 1686.7 us + S lanes 16 planes 16 ext_loops 16 prep 489 us (COLD) warm 1686.68 us alloc 0 B +case k16_mixed_and K=16 mix=mixed oracle count 0 +FAILED-GATE n=1000000 k16_mixed_and U warm 2476.9 us + U lanes 16 planes 5 ext_loops 0 prep 19 us (COLD) warm 2476.90 us alloc 0 B +FAILED-GATE n=1000000 k16_mixed_and P warm 6819.2 us + P lanes 11 planes 10 ext_loops 10 prep 398 us (COLD) warm 6819.18 us alloc 0 B +FAILED-GATE n=1000000 k16_mixed_and S warm 2488.9 us + S lanes 16 planes 5 ext_loops 5 prep 147 us (COLD) warm 2488.94 us alloc 0 B +case k4_mixed_or K=4 mix=mixed oracle count 973024 + U lanes 4 planes 1 ext_loops 0 prep 9 us (COLD) warm 774.00 us alloc 0 B +FAILED-GATE n=1000000 k4_mixed_or P warm 1007.9 us + P lanes 4 planes 2 ext_loops 2 prep 31 us (COLD) warm 1007.87 us alloc 0 B + S lanes 4 planes 1 ext_loops 1 prep 13 us (COLD) warm 606.90 us alloc 0 B +case k16_mixed_or K=16 mix=mixed oracle count 1000000 +FAILED-GATE n=1000000 k16_mixed_or U warm 2939.0 us + U lanes 16 planes 5 ext_loops 0 prep 17 us (COLD) warm 2939.02 us alloc 0 B +FAILED-GATE n=1000000 k16_mixed_or P warm 4174.4 us + P lanes 11 planes 10 ext_loops 10 prep 324 us (COLD) warm 4174.44 us alloc 0 B +FAILED-GATE n=1000000 k16_mixed_or S warm 2322.6 us + S lanes 16 planes 5 ext_loops 5 prep 80 us (COLD) warm 2322.57 us alloc 0 B +N=1000000: 23 FAILED-GATE values (warm >= 1000 us, reported), 0 failures +PROJECT ALL ANSWERS MATCH THE ORACLE, ALL REFUSALS FIRED + +real 0m4.203s +user 0m4.005s +sys 0m0.175s diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json b/.claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json new file mode 100644 index 000000000..3849bea77 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json @@ -0,0 +1,44 @@ +{"n":1000000,"seed":11400714819323198485,"build_us_cold":{"U":708712.085,"P":218232.789,"S":30069.411},"storage_bytes":{"U":258000000,"P":128000000,"S":195280008},"s_compact_values":320002,"checks":[{"check":"R1","query":"p20 < 300","U":"1000000","P":"REFUSED(p20: constant 300 outside packed u8 range 0..=255)","S":"1000000","oracle":1000000},{"check":"R1","query":"p20 = -1","U":"0","P":"REFUSED(p20: constant -1 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p20 >= 256","U":"0","P":"REFUSED(p20: constant 256 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p50 < 70000","U":"19997","P":"REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534)","S":"19997","oracle":19997},{"check":"R2","presence":19997,"n":1000000},{"check":"R3","fired":2,"valid_encodes":true}],"records":[ +{"layout":"U","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":749742,"oracle":749742,"prep_us_cold":3.067,"warm_median_us":200.999,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.698,"warm_median_us":204.024,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.420,"warm_median_us":189.637,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":780635,"oracle":780635,"prep_us_cold":3.413,"warm_median_us":184.618,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":780635,"oracle":780635,"prep_us_cold":10.780,"warm_median_us":481.608,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, +{"layout":"S","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":780635,"oracle":780635,"prep_us_cold":2.934,"warm_median_us":184.112,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":20000,"oracle":20000,"prep_us_cold":5.277,"warm_median_us":229.977,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":0}, +{"layout":"P","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":20000,"oracle":20000,"prep_us_cold":7.816,"warm_median_us":492.571,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, +{"layout":"S","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":20000,"oracle":20000,"prep_us_cold":5.262,"warm_median_us":69.997,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, +{"layout":"U","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.993,"warm_median_us":186.297,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.845,"warm_median_us":192.984,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.248,"warm_median_us":204.189,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":140953,"oracle":140953,"prep_us_cold":12.412,"warm_median_us":1275.127,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":140953,"oracle":140953,"prep_us_cold":8.806,"warm_median_us":1241.241,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":140953,"oracle":140953,"prep_us_cold":8.484,"warm_median_us":1195.835,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":505593,"oracle":505593,"prep_us_cold":13.201,"warm_median_us":1294.002,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":505593,"oracle":505593,"prep_us_cold":169.947,"warm_median_us":1213.214,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":4,"ext_loops":4}, +{"layout":"S","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":505593,"oracle":505593,"prep_us_cold":7.702,"warm_median_us":792.080,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":10.667,"warm_median_us":654.411,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":0}, +{"layout":"P","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":116.560,"warm_median_us":1240.222,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":2,"planes":4,"ext_loops":4}, +{"layout":"S","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":64.697,"warm_median_us":267.079,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":4}, +{"layout":"U","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":5826,"oracle":5826,"prep_us_cold":9.697,"warm_median_us":722.136,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, +{"layout":"P","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":5826,"oracle":5826,"prep_us_cold":25.063,"warm_median_us":1033.517,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, +{"layout":"S","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":5826,"oracle":5826,"prep_us_cold":12.807,"warm_median_us":552.342,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, +{"layout":"U","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":169,"oracle":169,"prep_us_cold":11.265,"warm_median_us":2507.911,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":169,"oracle":169,"prep_us_cold":9.651,"warm_median_us":2517.671,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":169,"oracle":169,"prep_us_cold":9.468,"warm_median_us":2561.990,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":89163,"oracle":89163,"prep_us_cold":12.213,"warm_median_us":10100.523,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":89163,"oracle":89163,"prep_us_cold":731.121,"warm_median_us":4984.668,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":16,"ext_loops":16}, +{"layout":"S","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":89163,"oracle":89163,"prep_us_cold":9.004,"warm_median_us":5594.172,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":24.654,"warm_median_us":4284.825,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":0}, +{"layout":"P","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":667.201,"warm_median_us":7255.745,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":8,"planes":16,"ext_loops":16}, +{"layout":"S","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":488.822,"warm_median_us":1686.684,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":16}, +{"layout":"U","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":19.205,"warm_median_us":2476.898,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, +{"layout":"P","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":398.228,"warm_median_us":6819.180,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, +{"layout":"S","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":146.879,"warm_median_us":2488.938,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5}, +{"layout":"U","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":973024,"oracle":973024,"prep_us_cold":8.625,"warm_median_us":774.004,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, +{"layout":"P","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":973024,"oracle":973024,"prep_us_cold":31.168,"warm_median_us":1007.874,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, +{"layout":"S","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":973024,"oracle":973024,"prep_us_cold":13.316,"warm_median_us":606.898,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, +{"layout":"U","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":1000000,"oracle":1000000,"prep_us_cold":17.273,"warm_median_us":2939.017,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, +{"layout":"P","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":1000000,"oracle":1000000,"prep_us_cold":323.649,"warm_median_us":4174.437,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, +{"layout":"S","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":1000000,"oracle":1000000,"prep_us_cold":80.107,"warm_median_us":2322.568,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json b/.claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json new file mode 100644 index 000000000..633a35270 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json @@ -0,0 +1,44 @@ +{"n":10000000,"seed":11400714819323198485,"build_us_cold":{"U":17748484.738,"P":5121691.427,"S":531017.234},"storage_bytes":{"U":2580000000,"P":1280000000,"S":1952800008},"s_compact_values":3200002,"checks":[{"check":"R1","query":"p20 < 300","U":"10000000","P":"REFUSED(p20: constant 300 outside packed u8 range 0..=255)","S":"10000000","oracle":10000000},{"check":"R1","query":"p20 = -1","U":"0","P":"REFUSED(p20: constant -1 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p20 >= 256","U":"0","P":"REFUSED(p20: constant 256 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p50 < 70000","U":"199997","P":"REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534)","S":"199997","oracle":199997},{"check":"R2","presence":199997,"n":10000000},{"check":"R3","fired":2,"valid_encodes":true}],"records":[ +{"layout":"U","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":9.109,"warm_median_us":1721.395,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":5.055,"warm_median_us":1712.184,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":4.449,"warm_median_us":1705.611,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":7813278,"oracle":7813278,"prep_us_cold":5.884,"warm_median_us":1706.479,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":7813278,"oracle":7813278,"prep_us_cold":118.603,"warm_median_us":3072.409,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, +{"layout":"S","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":7813278,"oracle":7813278,"prep_us_cold":5.463,"warm_median_us":1909.799,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":200003,"oracle":200003,"prep_us_cold":7.813,"warm_median_us":1944.194,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":0}, +{"layout":"P","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":200003,"oracle":200003,"prep_us_cold":139.894,"warm_median_us":3058.096,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, +{"layout":"S","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":200003,"oracle":200003,"prep_us_cold":32.123,"warm_median_us":500.823,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, +{"layout":"U","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":6.773,"warm_median_us":1790.616,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":5.239,"warm_median_us":2110.791,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":5.318,"warm_median_us":2188.509,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":1405719,"oracle":1405719,"prep_us_cold":13.668,"warm_median_us":27231.178,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":1405719,"oracle":1405719,"prep_us_cold":8.056,"warm_median_us":24755.324,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":1405719,"oracle":1405719,"prep_us_cold":7.554,"warm_median_us":24269.387,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":5057028,"oracle":5057028,"prep_us_cold":10.043,"warm_median_us":24657.857,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":5057028,"oracle":5057028,"prep_us_cold":454.003,"warm_median_us":11958.183,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":4,"ext_loops":4}, +{"layout":"S","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":5057028,"oracle":5057028,"prep_us_cold":7.501,"warm_median_us":24026.021,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":12.818,"warm_median_us":20467.683,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":0}, +{"layout":"P","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":246.545,"warm_median_us":25431.770,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":2,"planes":4,"ext_loops":4}, +{"layout":"S","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":188.491,"warm_median_us":3354.567,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":4}, +{"layout":"U","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":58423,"oracle":58423,"prep_us_cold":11.662,"warm_median_us":21536.793,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, +{"layout":"P","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":58423,"oracle":58423,"prep_us_cold":122.013,"warm_median_us":27878.894,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, +{"layout":"S","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":58423,"oracle":58423,"prep_us_cold":30.139,"warm_median_us":15334.404,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, +{"layout":"U","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":1732,"oracle":1732,"prep_us_cold":11.490,"warm_median_us":74776.617,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":1732,"oracle":1732,"prep_us_cold":10.302,"warm_median_us":76772.215,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"S","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":1732,"oracle":1732,"prep_us_cold":10.665,"warm_median_us":88821.279,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":886838,"oracle":886838,"prep_us_cold":13.799,"warm_median_us":110142.424,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"P","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":886838,"oracle":886838,"prep_us_cold":1590.237,"warm_median_us":102580.153,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":16,"ext_loops":16}, +{"layout":"S","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":886838,"oracle":886838,"prep_us_cold":11.967,"warm_median_us":105085.247,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, +{"layout":"U","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":20.727,"warm_median_us":80098.030,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":0}, +{"layout":"P","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":1532.697,"warm_median_us":116692.494,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":8,"planes":16,"ext_loops":16}, +{"layout":"S","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":969.493,"warm_median_us":14440.314,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":16}, +{"layout":"U","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":21.694,"warm_median_us":52875.021,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, +{"layout":"P","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":810.276,"warm_median_us":114941.038,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, +{"layout":"S","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":290.331,"warm_median_us":60669.851,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5}, +{"layout":"U","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":9732172,"oracle":9732172,"prep_us_cold":11.205,"warm_median_us":21360.143,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, +{"layout":"P","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":9732172,"oracle":9732172,"prep_us_cold":151.424,"warm_median_us":24842.332,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, +{"layout":"S","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":9732172,"oracle":9732172,"prep_us_cold":27.597,"warm_median_us":15257.114,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, +{"layout":"U","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":10000000,"oracle":10000000,"prep_us_cold":20.800,"warm_median_us":84284.692,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, +{"layout":"P","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":10000000,"oracle":10000000,"prep_us_cold":948.204,"warm_median_us":110218.818,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, +{"layout":"S","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":10000000,"oracle":10000000,"prep_us_cold":304.303,"warm_median_us":68168.124,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json new file mode 100644 index 000000000..19d6f211f --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json @@ -0,0 +1,56 @@ +{"n":1000000,"seed":11400714819323198485,"cases":[ +{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"target":50,"achieved":1000,"target_met":false,"tree":{"op":"cmp","col":3,"cmpop":"lt","value":1}}, +{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"target":10000,"achieved":10000,"target_met":true,"tree":{"op":"cmp","col":5,"cmpop":"lt","value":10}}, +{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"target":500000,"achieved":500005,"target_met":true,"tree":{"op":"cmp","col":13,"cmpop":"lt","value":500}}, +{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":765,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":1,"cmpop":"lt","value":528},{"op":"cmp","col":5,"cmpop":"ge","value":472},{"op":"cmp","col":10,"cmpop":"lt","value":528}]}}, +{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":10139,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":6,"cmpop":"lt","value":207},{"op":"cmp","col":10,"cmpop":"ge","value":793},{"op":"cmp","col":2,"cmpop":"lt","value":207}]}}, +{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":499628,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":11,"cmpop":"lt","value":761},{"op":"cmp","col":13,"cmpop":"ge","value":239},{"op":"cmp","col":10,"cmpop":"lt","value":761}]}}, +{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":999,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":1},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0}]}}, +{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":10000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":4},{"op":"cmp","col":6,"cmpop":"ge","value":997},{"op":"cmp","col":7,"cmpop":"lt","value":3}]}}, +{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":500615,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":249},{"op":"cmp","col":9,"cmpop":"ge","value":751},{"op":"cmp","col":12,"cmpop":"lt","value":249}]}}, +{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":428,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":52},{"op":"cmp","col":7,"cmpop":"ge","value":948}]},{"op":"cmp","col":2,"cmpop":"lt","value":52}]}}, +{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":9819,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":159},{"op":"cmp","col":11,"cmpop":"ge","value":841}]},{"op":"cmp","col":2,"cmpop":"lt","value":159}]}}, +{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":499424,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":594},{"op":"cmp","col":0,"cmpop":"ge","value":406}]},{"op":"cmp","col":4,"cmpop":"lt","value":594}]}}, +{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":46,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":467},{"op":"cmp","col":10,"cmpop":"ge","value":533},{"op":"cmp","col":7,"cmpop":"lt","value":467},{"op":"cmp","col":0,"cmpop":"ge","value":533},{"op":"cmp","col":11,"cmpop":"lt","value":467},{"op":"cmp","col":6,"cmpop":"ge","value":533},{"op":"cmp","col":2,"cmpop":"lt","value":467},{"op":"cmp","col":1,"cmpop":"ge","value":533}]}}, +{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":10097,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":632},{"op":"cmp","col":6,"cmpop":"ge","value":368},{"op":"cmp","col":8,"cmpop":"lt","value":632},{"op":"cmp","col":11,"cmpop":"ge","value":368},{"op":"cmp","col":9,"cmpop":"lt","value":632},{"op":"cmp","col":0,"cmpop":"ge","value":368},{"op":"cmp","col":7,"cmpop":"lt","value":632},{"op":"cmp","col":2,"cmpop":"ge","value":368}]}}, +{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":498124,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":917},{"op":"cmp","col":7,"cmpop":"ge","value":83},{"op":"cmp","col":6,"cmpop":"lt","value":917},{"op":"cmp","col":3,"cmpop":"ge","value":83},{"op":"cmp","col":4,"cmpop":"lt","value":917},{"op":"cmp","col":10,"cmpop":"ge","value":83},{"op":"cmp","col":5,"cmpop":"lt","value":917},{"op":"cmp","col":9,"cmpop":"ge","value":83}]}}, +{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":999,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000}]}}, +{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":9997,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":2},{"op":"cmp","col":13,"cmpop":"ge","value":999},{"op":"cmp","col":14,"cmpop":"lt","value":1},{"op":"cmp","col":1,"cmpop":"ge","value":999},{"op":"cmp","col":7,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":12,"cmpop":"ge","value":999}]}}, +{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":498831,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":82},{"op":"cmp","col":4,"cmpop":"ge","value":918},{"op":"cmp","col":13,"cmpop":"lt","value":82},{"op":"cmp","col":10,"cmpop":"ge","value":918},{"op":"cmp","col":9,"cmpop":"lt","value":82},{"op":"cmp","col":14,"cmpop":"ge","value":918},{"op":"cmp","col":1,"cmpop":"lt","value":82},{"op":"cmp","col":7,"cmpop":"ge","value":918}]}}, +{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":91,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":92},{"op":"cmp","col":4,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":92},{"op":"cmp","col":10,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":92},{"op":"cmp","col":2,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":92},{"op":"cmp","col":12,"cmpop":"ge","value":908}]}]}}, +{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":9901,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":232},{"op":"cmp","col":9,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":232},{"op":"cmp","col":3,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":232},{"op":"cmp","col":5,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":232},{"op":"cmp","col":7,"cmpop":"ge","value":768}]}]}}, +{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":500157,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":585},{"op":"cmp","col":10,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":585},{"op":"cmp","col":12,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":585},{"op":"cmp","col":2,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":585},{"op":"cmp","col":0,"cmpop":"ge","value":415}]}]}}, +{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":45,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":9,"cmpop":"lt","value":768},{"op":"cmp","col":12,"cmpop":"ge","value":232},{"op":"cmp","col":5,"cmpop":"lt","value":768},{"op":"cmp","col":0,"cmpop":"ge","value":232},{"op":"cmp","col":3,"cmpop":"lt","value":768},{"op":"cmp","col":7,"cmpop":"ge","value":232},{"op":"cmp","col":10,"cmpop":"lt","value":768},{"op":"cmp","col":2,"cmpop":"ge","value":232},{"op":"cmp","col":11,"cmpop":"lt","value":768},{"op":"cmp","col":6,"cmpop":"ge","value":232},{"op":"cmp","col":13,"cmpop":"lt","value":768},{"op":"cmp","col":8,"cmpop":"ge","value":232},{"op":"cmp","col":1,"cmpop":"lt","value":768},{"op":"cmp","col":14,"cmpop":"ge","value":232},{"op":"cmp","col":4,"cmpop":"lt","value":768},{"op":"cmp","col":9,"cmpop":"ge","value":232},{"op":"cmp","col":12,"cmpop":"lt","value":768}]}}, +{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":9754,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":829},{"op":"cmp","col":4,"cmpop":"ge","value":172},{"op":"cmp","col":5,"cmpop":"lt","value":829},{"op":"cmp","col":1,"cmpop":"ge","value":171},{"op":"cmp","col":12,"cmpop":"lt","value":829},{"op":"cmp","col":7,"cmpop":"ge","value":171},{"op":"cmp","col":14,"cmpop":"lt","value":829},{"op":"cmp","col":13,"cmpop":"ge","value":171},{"op":"cmp","col":2,"cmpop":"lt","value":829},{"op":"cmp","col":9,"cmpop":"ge","value":171},{"op":"cmp","col":3,"cmpop":"lt","value":829},{"op":"cmp","col":0,"cmpop":"ge","value":171},{"op":"cmp","col":11,"cmpop":"lt","value":829},{"op":"cmp","col":6,"cmpop":"ge","value":171},{"op":"cmp","col":10,"cmpop":"lt","value":829},{"op":"cmp","col":8,"cmpop":"ge","value":171},{"op":"cmp","col":4,"cmpop":"lt","value":829}]}}, +{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":499819,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":955},{"op":"cmp","col":3,"cmpop":"ge","value":45},{"op":"cmp","col":1,"cmpop":"lt","value":955},{"op":"cmp","col":13,"cmpop":"ge","value":45},{"op":"cmp","col":6,"cmpop":"lt","value":955},{"op":"cmp","col":7,"cmpop":"ge","value":45},{"op":"cmp","col":2,"cmpop":"lt","value":955},{"op":"cmp","col":14,"cmpop":"ge","value":45},{"op":"cmp","col":4,"cmpop":"lt","value":955},{"op":"cmp","col":5,"cmpop":"ge","value":45},{"op":"cmp","col":10,"cmpop":"lt","value":955},{"op":"cmp","col":11,"cmpop":"ge","value":45},{"op":"cmp","col":12,"cmpop":"lt","value":955},{"op":"cmp","col":9,"cmpop":"ge","value":45},{"op":"cmp","col":8,"cmpop":"lt","value":955},{"op":"cmp","col":0,"cmpop":"ge","value":45},{"op":"cmp","col":3,"cmpop":"lt","value":955}]}}, +{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":1000,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":1},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0}]}}, +{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":10000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":9,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":10,"cmpop":"lt","value":1},{"op":"cmp","col":2,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":7,"cmpop":"ge","value":999},{"op":"cmp","col":5,"cmpop":"lt","value":1}]}}, +{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":505114,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":34},{"op":"cmp","col":11,"cmpop":"ge","value":966},{"op":"cmp","col":2,"cmpop":"lt","value":34},{"op":"cmp","col":14,"cmpop":"ge","value":966},{"op":"cmp","col":1,"cmpop":"lt","value":34},{"op":"cmp","col":4,"cmpop":"ge","value":966},{"op":"cmp","col":13,"cmpop":"lt","value":34},{"op":"cmp","col":5,"cmpop":"ge","value":966},{"op":"cmp","col":7,"cmpop":"lt","value":34},{"op":"cmp","col":12,"cmpop":"ge","value":966},{"op":"cmp","col":8,"cmpop":"lt","value":34},{"op":"cmp","col":0,"cmpop":"ge","value":966},{"op":"cmp","col":6,"cmpop":"lt","value":34},{"op":"cmp","col":9,"cmpop":"ge","value":966},{"op":"cmp","col":10,"cmpop":"lt","value":34},{"op":"cmp","col":3,"cmpop":"ge","value":966},{"op":"cmp","col":11,"cmpop":"lt","value":34}]}}, +{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":46,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":412},{"op":"cmp","col":12,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":412},{"op":"cmp","col":14,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":412},{"op":"cmp","col":8,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":412},{"op":"cmp","col":10,"cmpop":"ge","value":589}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":412},{"op":"cmp","col":2,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":412},{"op":"cmp","col":11,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":412},{"op":"cmp","col":7,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":412},{"op":"cmp","col":1,"cmpop":"ge","value":588}]},{"op":"cmp","col":12,"cmpop":"lt","value":412}]}}, +{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":10098,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":503},{"op":"cmp","col":1,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":503},{"op":"cmp","col":5,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":503},{"op":"cmp","col":10,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":503},{"op":"cmp","col":14,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":503},{"op":"cmp","col":11,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":503},{"op":"cmp","col":12,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":503},{"op":"cmp","col":9,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":503},{"op":"cmp","col":4,"cmpop":"ge","value":497}]},{"op":"cmp","col":1,"cmpop":"lt","value":503}]}}, +{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":498269,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":811},{"op":"cmp","col":13,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":811},{"op":"cmp","col":6,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":811},{"op":"cmp","col":8,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":811},{"op":"cmp","col":7,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":811},{"op":"cmp","col":3,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":811},{"op":"cmp","col":2,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":811},{"op":"cmp","col":14,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":811},{"op":"cmp","col":12,"cmpop":"ge","value":189}]},{"op":"cmp","col":13,"cmpop":"lt","value":811}]}}, +{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":50,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":819},{"op":"cmp","col":10,"cmpop":"ge","value":181},{"op":"cmp","col":7,"cmpop":"lt","value":819},{"op":"cmp","col":12,"cmpop":"ge","value":181},{"op":"cmp","col":11,"cmpop":"lt","value":819},{"op":"cmp","col":2,"cmpop":"ge","value":181},{"op":"cmp","col":0,"cmpop":"lt","value":819},{"op":"cmp","col":13,"cmpop":"ge","value":181},{"op":"cmp","col":9,"cmpop":"lt","value":819},{"op":"cmp","col":14,"cmpop":"ge","value":181},{"op":"cmp","col":1,"cmpop":"lt","value":819},{"op":"cmp","col":8,"cmpop":"ge","value":181},{"op":"cmp","col":6,"cmpop":"lt","value":819},{"op":"cmp","col":5,"cmpop":"ge","value":181},{"op":"cmp","col":4,"cmpop":"lt","value":819},{"op":"cmp","col":3,"cmpop":"ge","value":181},{"op":"cmp","col":10,"cmpop":"lt","value":819},{"op":"cmp","col":7,"cmpop":"ge","value":181},{"op":"cmp","col":12,"cmpop":"lt","value":819},{"op":"cmp","col":11,"cmpop":"ge","value":181},{"op":"cmp","col":2,"cmpop":"lt","value":819},{"op":"cmp","col":0,"cmpop":"ge","value":181},{"op":"cmp","col":13,"cmpop":"lt","value":819},{"op":"cmp","col":9,"cmpop":"ge","value":181}]}}, +{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":9900,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":918},{"op":"cmp","col":8,"cmpop":"ge","value":88},{"op":"cmp","col":11,"cmpop":"lt","value":912},{"op":"cmp","col":13,"cmpop":"ge","value":88},{"op":"cmp","col":12,"cmpop":"lt","value":912},{"op":"cmp","col":6,"cmpop":"ge","value":88},{"op":"cmp","col":14,"cmpop":"lt","value":912},{"op":"cmp","col":5,"cmpop":"ge","value":88},{"op":"cmp","col":2,"cmpop":"lt","value":912},{"op":"cmp","col":9,"cmpop":"ge","value":88},{"op":"cmp","col":0,"cmpop":"lt","value":912},{"op":"cmp","col":7,"cmpop":"ge","value":88},{"op":"cmp","col":10,"cmpop":"lt","value":912},{"op":"cmp","col":3,"cmpop":"ge","value":88},{"op":"cmp","col":1,"cmpop":"lt","value":912},{"op":"cmp","col":4,"cmpop":"ge","value":88},{"op":"cmp","col":8,"cmpop":"lt","value":912},{"op":"cmp","col":11,"cmpop":"ge","value":88},{"op":"cmp","col":13,"cmpop":"lt","value":912},{"op":"cmp","col":12,"cmpop":"ge","value":88},{"op":"cmp","col":6,"cmpop":"lt","value":912},{"op":"cmp","col":14,"cmpop":"ge","value":88},{"op":"cmp","col":5,"cmpop":"lt","value":912},{"op":"cmp","col":2,"cmpop":"ge","value":88}]}}, +{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":502071,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":12,"cmpop":"lt","value":976},{"op":"cmp","col":4,"cmpop":"ge","value":24},{"op":"cmp","col":10,"cmpop":"lt","value":976},{"op":"cmp","col":13,"cmpop":"ge","value":24},{"op":"cmp","col":2,"cmpop":"lt","value":976},{"op":"cmp","col":11,"cmpop":"ge","value":24},{"op":"cmp","col":9,"cmpop":"lt","value":976},{"op":"cmp","col":0,"cmpop":"ge","value":24},{"op":"cmp","col":7,"cmpop":"lt","value":976},{"op":"cmp","col":5,"cmpop":"ge","value":24},{"op":"cmp","col":14,"cmpop":"lt","value":976},{"op":"cmp","col":1,"cmpop":"ge","value":24},{"op":"cmp","col":6,"cmpop":"lt","value":976},{"op":"cmp","col":8,"cmpop":"ge","value":24},{"op":"cmp","col":3,"cmpop":"lt","value":976},{"op":"cmp","col":12,"cmpop":"ge","value":24},{"op":"cmp","col":4,"cmpop":"lt","value":976},{"op":"cmp","col":10,"cmpop":"ge","value":24},{"op":"cmp","col":13,"cmpop":"lt","value":976},{"op":"cmp","col":2,"cmpop":"ge","value":24},{"op":"cmp","col":11,"cmpop":"lt","value":976},{"op":"cmp","col":9,"cmpop":"ge","value":24},{"op":"cmp","col":0,"cmpop":"lt","value":976},{"op":"cmp","col":7,"cmpop":"ge","value":24}]}}, +{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":1001,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":1},{"op":"cmp","col":12,"cmpop":"ge","value":1000},{"op":"cmp","col":8,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":1,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":0,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":2,"cmpop":"lt","value":0},{"op":"cmp","col":14,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":13,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":10,"cmpop":"ge","value":1000}]}}, +{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":9995,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":3,"cmpop":"ge","value":999},{"op":"cmp","col":4,"cmpop":"lt","value":1},{"op":"cmp","col":5,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999}]}}, +{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":495651,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":25},{"op":"cmp","col":8,"cmpop":"ge","value":975},{"op":"cmp","col":4,"cmpop":"lt","value":25},{"op":"cmp","col":10,"cmpop":"ge","value":975},{"op":"cmp","col":12,"cmpop":"lt","value":25},{"op":"cmp","col":3,"cmpop":"ge","value":975},{"op":"cmp","col":0,"cmpop":"lt","value":25},{"op":"cmp","col":2,"cmpop":"ge","value":975},{"op":"cmp","col":1,"cmpop":"lt","value":25},{"op":"cmp","col":14,"cmpop":"ge","value":975},{"op":"cmp","col":7,"cmpop":"lt","value":25},{"op":"cmp","col":13,"cmpop":"ge","value":975},{"op":"cmp","col":5,"cmpop":"lt","value":25},{"op":"cmp","col":6,"cmpop":"ge","value":975},{"op":"cmp","col":11,"cmpop":"lt","value":25},{"op":"cmp","col":9,"cmpop":"ge","value":975},{"op":"cmp","col":8,"cmpop":"lt","value":25},{"op":"cmp","col":4,"cmpop":"ge","value":975},{"op":"cmp","col":10,"cmpop":"lt","value":25},{"op":"cmp","col":12,"cmpop":"ge","value":975},{"op":"cmp","col":3,"cmpop":"lt","value":25},{"op":"cmp","col":0,"cmpop":"ge","value":975},{"op":"cmp","col":2,"cmpop":"lt","value":25},{"op":"cmp","col":1,"cmpop":"ge","value":975}]}}, +{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":48,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":528},{"op":"cmp","col":4,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":528},{"op":"cmp","col":8,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":528},{"op":"cmp","col":13,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":528},{"op":"cmp","col":10,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":528},{"op":"cmp","col":9,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":528},{"op":"cmp","col":1,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":528},{"op":"cmp","col":2,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":528},{"op":"cmp","col":0,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":528},{"op":"cmp","col":7,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":528},{"op":"cmp","col":5,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":528},{"op":"cmp","col":11,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":528},{"op":"cmp","col":14,"cmpop":"ge","value":472}]}]}}, +{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":9953,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":555},{"op":"cmp","col":10,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":555},{"op":"cmp","col":1,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":555},{"op":"cmp","col":7,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":555},{"op":"cmp","col":5,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":555},{"op":"cmp","col":9,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":555},{"op":"cmp","col":4,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":555},{"op":"cmp","col":12,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":555},{"op":"cmp","col":0,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":555},{"op":"cmp","col":14,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":555},{"op":"cmp","col":13,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":555},{"op":"cmp","col":8,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":555},{"op":"cmp","col":6,"cmpop":"ge","value":445}]}]}}, +{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":500471,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":777},{"op":"cmp","col":12,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":777},{"op":"cmp","col":0,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":777},{"op":"cmp","col":6,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":777},{"op":"cmp","col":11,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":777},{"op":"cmp","col":13,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":777},{"op":"cmp","col":10,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":777},{"op":"cmp","col":8,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":777},{"op":"cmp","col":5,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":777},{"op":"cmp","col":2,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":777},{"op":"cmp","col":4,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":777},{"op":"cmp","col":14,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":777},{"op":"cmp","col":3,"cmpop":"ge","value":223}]}]}}, +{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":10000,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":10}]}}, +{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":1002,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":5,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900}]}}, +{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":1000000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":5}]}}, +{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":1000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"lt","value":1}]}}, +{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":827152,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":985},{"op":"cmp","col":1,"cmpop":"lt","value":986},{"op":"cmp","col":2,"cmpop":"lt","value":987},{"op":"cmp","col":3,"cmpop":"lt","value":988},{"op":"cmp","col":4,"cmpop":"lt","value":989},{"op":"cmp","col":5,"cmpop":"lt","value":985},{"op":"cmp","col":6,"cmpop":"lt","value":986},{"op":"cmp","col":7,"cmpop":"lt","value":987},{"op":"cmp","col":8,"cmpop":"lt","value":988},{"op":"cmp","col":9,"cmpop":"lt","value":989},{"op":"cmp","col":10,"cmpop":"lt","value":985},{"op":"cmp","col":11,"cmpop":"lt","value":986},{"op":"cmp","col":12,"cmpop":"lt","value":987},{"op":"cmp","col":13,"cmpop":"lt","value":988},{"op":"cmp","col":14,"cmpop":"lt","value":989},{"op":"cmp","col":0,"cmpop":"lt","value":985}]}}, +{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":46,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"eq","value":873},{"op":"cmp","col":1,"cmpop":"eq","value":877},{"op":"cmp","col":2,"cmpop":"eq","value":695},{"op":"cmp","col":3,"cmpop":"eq","value":106},{"op":"cmp","col":4,"cmpop":"eq","value":517},{"op":"cmp","col":5,"cmpop":"eq","value":928},{"op":"cmp","col":6,"cmpop":"eq","value":339},{"op":"cmp","col":7,"cmpop":"eq","value":750},{"op":"cmp","col":8,"cmpop":"eq","value":161},{"op":"cmp","col":9,"cmpop":"eq","value":572},{"op":"cmp","col":10,"cmpop":"eq","value":335},{"op":"cmp","col":11,"cmpop":"eq","value":746},{"op":"cmp","col":12,"cmpop":"eq","value":157},{"op":"cmp","col":13,"cmpop":"eq","value":568},{"op":"cmp","col":14,"cmpop":"eq","value":979},{"op":"cmp","col":0,"cmpop":"ge","value":873}]}}, +{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":500001,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":520}]}}, +{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":490001,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":510},{"op":"cmp","col":0,"cmpop":"lt","value":490},{"op":"cmp","col":1,"cmpop":"lt","value":530},{"op":"cmp","col":0,"cmpop":"lt","value":520}]}}, +{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900}]}}, +{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900},{"op":"cmp","col":2,"cmpop":"lt","value":900},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":4,"cmpop":"lt","value":900},{"op":"cmp","col":5,"cmpop":"lt","value":900},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900},{"op":"cmp","col":8,"cmpop":"lt","value":900},{"op":"cmp","col":9,"cmpop":"lt","value":900},{"op":"cmp","col":10,"cmpop":"lt","value":900},{"op":"cmp","col":11,"cmpop":"lt","value":900},{"op":"cmp","col":12,"cmpop":"lt","value":900},{"op":"cmp","col":13,"cmpop":"lt","value":900},{"op":"cmp","col":14,"cmpop":"lt","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900}]}}, +{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":99875,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}, +{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":450007,"target_met":true,"tree":{"op":"not","arg":{"op":"cmp","col":15,"cmpop":"lt","value":500}}}, +{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"target":0,"achieved":190006,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":15,"cmpop":"lt","value":100},{"op":"cmp","col":2,"cmpop":"lt","value":100}]}}, +{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":850017,"target_met":true,"tree":{"op":"not","arg":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}}, +{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":267454,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"ge","value":200},{"op":"cmp","col":0,"cmpop":"lt","value":700},{"op":"cmp","col":2,"cmpop":"lt","value":700},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":15,"cmpop":"lt","value":900}]}} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json new file mode 100644 index 000000000..d6fd76904 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json @@ -0,0 +1,56 @@ +{"n":1000000,"records":[ +{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"achieved":1000,"lower_us_plain":0.096,"lower_us_fused":0.109,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":142.475,"any_us":149.164,"rows_us":151.978,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":144.432,"any_us":142.656,"rows_us":146.447,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":146.229,"any_us":145.917,"rows_us":146.104,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":140.593,"any_us":153.005,"rows_us":153.249,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"achieved":10000,"lower_us_plain":0.103,"lower_us_fused":0.108,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":142.396,"any_us":143.408,"rows_us":162.058,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":179.819,"any_us":140.362,"rows_us":146.233,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":138.573,"any_us":141.532,"rows_us":147.403,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":139.694,"any_us":137.906,"rows_us":145.261,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"achieved":500005,"lower_us_plain":0.095,"lower_us_fused":0.108,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":140.492,"any_us":145.239,"rows_us":145.863,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":146.527,"any_us":155.785,"rows_us":152.553,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":146.214,"any_us":161.885,"rows_us":147.989,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":168.114,"any_us":146.048,"rows_us":151.843,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":765,"lower_us_plain":0.284,"lower_us_fused":0.509,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":620.723,"any_us":679.359,"rows_us":674.619,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":590.236,"any_us":597.231,"rows_us":606.841,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":669.758,"any_us":683.152,"rows_us":680.793,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":567.788,"any_us":567.691,"rows_us":597.024,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":10139,"lower_us_plain":0.339,"lower_us_fused":0.694,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":860.912,"any_us":860.814,"rows_us":886.312,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":670.661,"any_us":670.494,"rows_us":649.826,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":597.849,"any_us":625.484,"rows_us":610.020,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":528.709,"any_us":654.537,"rows_us":664.410,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":499628,"lower_us_plain":0.399,"lower_us_fused":0.853,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":842.309,"any_us":803.434,"rows_us":830.350,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":531.396,"any_us":524.514,"rows_us":563.661,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":855.854,"any_us":842.334,"rows_us":872.530,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":716.157,"any_us":595.877,"rows_us":581.802,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":999,"lower_us_plain":0.278,"lower_us_fused":0.568,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":582.334,"any_us":578.220,"rows_us":585.751,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":593.696,"any_us":577.631,"rows_us":587.853,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":583.376,"any_us":580.502,"rows_us":586.415,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":594.552,"any_us":589.445,"rows_us":608.470,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":10000,"lower_us_plain":0.279,"lower_us_fused":0.563,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":596.390,"any_us":587.190,"rows_us":596.106,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":603.649,"any_us":587.263,"rows_us":560.062,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":582.448,"any_us":562.277,"rows_us":572.333,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":557.816,"any_us":547.371,"rows_us":594.254,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":500615,"lower_us_plain":0.281,"lower_us_fused":0.566,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":614.905,"any_us":613.306,"rows_us":541.773,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":629.744,"any_us":625.168,"rows_us":531.240,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":529.721,"any_us":520.304,"rows_us":617.977,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":574.551,"any_us":586.453,"rows_us":574.227,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":428,"lower_us_plain":0.368,"lower_us_fused":0.652,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":603.913,"any_us":594.623,"rows_us":623.011,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":591.360,"any_us":568.131,"rows_us":558.275,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":659.884,"any_us":645.580,"rows_us":643.380,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":547.407,"any_us":546.060,"rows_us":552.248,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":9819,"lower_us_plain":0.367,"lower_us_fused":0.651,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":597.557,"any_us":592.790,"rows_us":584.750,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":571.371,"any_us":533.636,"rows_us":542.679,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":632.577,"any_us":621.595,"rows_us":627.327,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":536.751,"any_us":529.260,"rows_us":543.352,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":499424,"lower_us_plain":0.362,"lower_us_fused":0.645,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":590.558,"any_us":585.155,"rows_us":590.047,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":534.972,"any_us":536.230,"rows_us":535.083,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":623.291,"any_us":627.141,"rows_us":612.182,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":516.121,"any_us":509.302,"rows_us":523.167,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":46,"lower_us_plain":0.526,"lower_us_fused":2.341,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":959.376,"any_us":1384.298,"rows_us":1372.373,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1390.353,"any_us":1382.604,"rows_us":1411.962,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":963.128,"any_us":965.698,"rows_us":964.934,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1368.366,"any_us":1374.458,"rows_us":1372.140,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":10097,"lower_us_plain":0.517,"lower_us_fused":2.376,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1584.021,"any_us":1607.650,"rows_us":1617.724,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1362.289,"any_us":1365.215,"rows_us":1378.747,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1636.350,"any_us":1651.495,"rows_us":1872.024,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1544.685,"any_us":1517.247,"rows_us":1529.974,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":498124,"lower_us_plain":0.629,"lower_us_fused":2.427,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1822.390,"any_us":1794.225,"rows_us":1776.414,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1433.025,"any_us":1425.007,"rows_us":1725.696,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2446.814,"any_us":2478.223,"rows_us":2441.665,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1830.905,"any_us":1790.050,"rows_us":1498.650,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":999,"lower_us_plain":0.506,"lower_us_fused":2.628,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1510.895,"any_us":1573.703,"rows_us":1628.159,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1559.460,"any_us":1604.933,"rows_us":1501.866,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1458.952,"any_us":1422.356,"rows_us":1433.440,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1430.307,"any_us":1473.226,"rows_us":1473.029,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":9997,"lower_us_plain":0.760,"lower_us_fused":4.193,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1540.896,"any_us":1505.955,"rows_us":1519.615,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1530.313,"any_us":1484.508,"rows_us":1521.208,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1567.264,"any_us":1595.718,"rows_us":1633.149,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1600.531,"any_us":1613.604,"rows_us":1574.750,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":498831,"lower_us_plain":0.505,"lower_us_fused":2.610,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1487.066,"any_us":1822.190,"rows_us":1798.728,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1417.108,"any_us":1408.078,"rows_us":1701.435,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1698.579,"any_us":1748.937,"rows_us":1622.290,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1599.135,"any_us":1815.911,"rows_us":1458.234,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":91,"lower_us_plain":0.872,"lower_us_fused":2.649,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1570.723,"any_us":1511.079,"rows_us":1778.105,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1763.663,"any_us":1773.472,"rows_us":1816.793,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1429.383,"any_us":1385.647,"rows_us":1394.000,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1459.275,"any_us":1468.665,"rows_us":1705.582,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":9901,"lower_us_plain":0.858,"lower_us_fused":2.608,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1664.232,"any_us":1707.340,"rows_us":1701.358,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1432.976,"any_us":1418.629,"rows_us":1440.935,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1709.108,"any_us":1779.515,"rows_us":1694.657,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1399.038,"any_us":1390.101,"rows_us":1463.298,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":500157,"lower_us_plain":0.850,"lower_us_fused":2.615,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1755.912,"any_us":1854.597,"rows_us":2424.499,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1635.510,"any_us":1631.251,"rows_us":1633.352,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2546.627,"any_us":1836.684,"rows_us":1796.235,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1492.946,"any_us":1528.412,"rows_us":1475.281,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":45,"lower_us_plain":1.074,"lower_us_fused":7.439,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4127.696,"any_us":3837.776,"rows_us":3745.547,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3236.443,"any_us":3232.434,"rows_us":3230.910,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3813.248,"any_us":3831.137,"rows_us":3728.591,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2839.273,"any_us":2888.058,"rows_us":2961.885,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":9754,"lower_us_plain":1.063,"lower_us_fused":7.979,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3794.450,"any_us":3840.521,"rows_us":3888.276,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":2956.660,"any_us":2891.104,"rows_us":2873.687,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3522.994,"any_us":3610.258,"rows_us":3576.345,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2909.577,"any_us":2879.278,"rows_us":2909.736,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":499819,"lower_us_plain":1.059,"lower_us_fused":7.438,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3764.521,"any_us":3778.409,"rows_us":3738.392,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3039.213,"any_us":3308.698,"rows_us":3171.592,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3679.477,"any_us":3597.463,"rows_us":3544.959,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2776.039,"any_us":2764.064,"rows_us":2786.876,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":1000,"lower_us_plain":1.071,"lower_us_fused":7.978,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3323.049,"any_us":3222.699,"rows_us":3258.555,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3195.986,"any_us":3233.431,"rows_us":3222.458,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3199.281,"any_us":3167.722,"rows_us":3170.037,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2835.072,"any_us":2854.027,"rows_us":2956.503,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":10000,"lower_us_plain":1.038,"lower_us_fused":8.229,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":2853.331,"any_us":2892.709,"rows_us":3218.762,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3091.521,"any_us":2844.678,"rows_us":3123.432,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2946.995,"any_us":2769.168,"rows_us":2996.422,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2987.697,"any_us":3266.989,"rows_us":3200.848,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":505114,"lower_us_plain":1.061,"lower_us_fused":8.185,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3234.470,"any_us":3188.692,"rows_us":3158.599,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3025.263,"any_us":2772.364,"rows_us":2785.101,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2798.451,"any_us":2780.778,"rows_us":2816.897,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2833.335,"any_us":2827.542,"rows_us":2877.329,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":46,"lower_us_plain":1.914,"lower_us_fused":6.994,"skip_same_as_plain":false,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3332.465,"any_us":3331.924,"rows_us":3537.380,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3081.248,"any_us":3415.090,"rows_us":3565.752,"runs":[31,31,31],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2378.083,"any_us":2307.966,"rows_us":1619.994,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3068.885,"any_us":3350.740,"rows_us":4055.554,"runs":[31,31,31],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":10098,"lower_us_plain":2.921,"lower_us_fused":10.529,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4986.762,"any_us":3701.789,"rows_us":4047.449,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3252.112,"any_us":3559.199,"rows_us":3580.657,"runs":[31,31,31],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3864.944,"any_us":4146.157,"rows_us":5311.931,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3878.457,"any_us":3867.489,"rows_us":3708.359,"runs":[31,31,31],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":498269,"lower_us_plain":1.907,"lower_us_fused":6.987,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3938.437,"any_us":3896.942,"rows_us":3879.811,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":2838.336,"any_us":3284.237,"rows_us":3294.030,"runs":[31,31,31],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3865.802,"any_us":3823.729,"rows_us":5791.963,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3032.171,"any_us":2916.907,"rows_us":2881.670,"runs":[31,31,31],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":50,"lower_us_plain":1.475,"lower_us_fused":15.644,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3972.321,"any_us":4062.246,"rows_us":4053.750,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3951.510,"any_us":3962.887,"rows_us":3960.535,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4081.317,"any_us":4207.168,"rows_us":4061.176,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3822.068,"any_us":3885.473,"rows_us":3864.779,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":9900,"lower_us_plain":1.442,"lower_us_fused":15.568,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5267.840,"any_us":5445.247,"rows_us":5098.506,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":4082.952,"any_us":4095.977,"rows_us":4105.966,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5393.823,"any_us":8121.496,"rows_us":5029.174,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3980.373,"any_us":3775.848,"rows_us":3769.577,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":502071,"lower_us_plain":1.419,"lower_us_fused":15.699,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5248.160,"any_us":5420.086,"rows_us":7114.055,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5288.583,"any_us":4908.248,"rows_us":4145.765,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4814.322,"any_us":7140.273,"rows_us":5021.333,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4162.739,"any_us":3867.157,"rows_us":3806.425,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":1001,"lower_us_plain":1.459,"lower_us_fused":16.353,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3800.601,"any_us":3815.772,"rows_us":4073.990,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3821.975,"any_us":3834.875,"rows_us":3741.711,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3725.775,"any_us":3887.162,"rows_us":3984.340,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3865.035,"any_us":4067.137,"rows_us":4364.597,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":9995,"lower_us_plain":2.180,"lower_us_fused":24.738,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4178.455,"any_us":3952.406,"rows_us":3907.375,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3754.593,"any_us":3878.133,"rows_us":4369.642,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5078.853,"any_us":5107.775,"rows_us":3736.248,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3713.455,"any_us":3723.288,"rows_us":3757.493,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":495651,"lower_us_plain":1.437,"lower_us_fused":16.395,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3749.296,"any_us":3784.050,"rows_us":3718.956,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":4348.811,"any_us":4014.548,"rows_us":4310.147,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4078.136,"any_us":3964.909,"rows_us":4041.398,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3864.839,"any_us":3997.563,"rows_us":4185.634,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":48,"lower_us_plain":2.623,"lower_us_fused":11.035,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5111.468,"any_us":5521.552,"rows_us":7437.377,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3932.400,"any_us":3859.786,"rows_us":3999.103,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":7088.207,"any_us":6828.031,"rows_us":5817.329,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3872.480,"any_us":4014.010,"rows_us":4749.698,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":9953,"lower_us_plain":2.563,"lower_us_fused":10.944,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5119.711,"any_us":5373.588,"rows_us":6574.301,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3859.172,"any_us":4081.931,"rows_us":4333.112,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4947.806,"any_us":5032.257,"rows_us":5298.947,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3732.167,"any_us":3833.540,"rows_us":4130.117,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":500471,"lower_us_plain":2.565,"lower_us_fused":10.787,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5032.479,"any_us":4900.727,"rows_us":5513.006,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3885.189,"any_us":3820.880,"rows_us":3818.308,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5226.394,"any_us":4865.360,"rows_us":5037.175,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4379.823,"any_us":4235.640,"rows_us":3867.332,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":10000,"lower_us_plain":0.215,"lower_us_fused":0.374,"skip_same_as_plain":false,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":356.069,"any_us":352.038,"rows_us":371.235,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":339.495,"any_us":318.078,"rows_us":318.462,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":284.838,"any_us":295.738,"rows_us":301.558,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":307.350,"any_us":323.259,"rows_us":320.430,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":1002,"lower_us_plain":0.292,"lower_us_fused":0.504,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":290.043,"any_us":285.464,"rows_us":288.545,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":535.465,"any_us":531.683,"rows_us":527.799,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":294.409,"any_us":315.780,"rows_us":297.670,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":520.488,"any_us":532.107,"rows_us":532.154,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":1000000,"lower_us_plain":0.212,"lower_us_fused":0.405,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":337.783,"any_us":314.009,"rows_us":348.893,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":334.150,"any_us":346.706,"rows_us":354.006,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":370.696,"any_us":332.331,"rows_us":346.836,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":333.898,"any_us":346.779,"rows_us":328.260,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":1000,"lower_us_plain":0.211,"lower_us_fused":0.404,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":319.747,"any_us":320.721,"rows_us":349.316,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":330.235,"any_us":348.347,"rows_us":329.141,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":336.115,"any_us":323.527,"rows_us":327.657,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":316.065,"any_us":330.235,"rows_us":372.413,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":827152,"lower_us_plain":0.963,"lower_us_fused":6.746,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4511.813,"any_us":3776.100,"rows_us":4160.117,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":2741.989,"any_us":2762.868,"rows_us":2774.128,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3620.071,"any_us":3492.910,"rows_us":3567.153,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3047.976,"any_us":3003.388,"rows_us":2992.985,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":46,"lower_us_plain":0.987,"lower_us_fused":6.589,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":999.007,"any_us":1030.529,"rows_us":1002.991,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3023.998,"any_us":3055.936,"rows_us":2881.214,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":958.508,"any_us":966.315,"rows_us":985.817,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2886.586,"any_us":2867.308,"rows_us":2849.946,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":500001,"lower_us_plain":0.216,"lower_us_fused":0.375,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":360.527,"any_us":358.295,"rows_us":365.779,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":316.285,"any_us":312.508,"rows_us":339.881,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":345.988,"any_us":350.827,"rows_us":354.320,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":321.180,"any_us":333.969,"rows_us":321.942,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":490001,"lower_us_plain":0.389,"lower_us_fused":1.164,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":829.850,"any_us":827.052,"rows_us":871.274,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":642.441,"any_us":633.619,"rows_us":650.844,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":882.030,"any_us":874.818,"rows_us":880.212,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":612.303,"any_us":655.331,"rows_us":618.297,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":0.308,"lower_us_fused":0.607,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":303.419,"any_us":301.439,"rows_us":311.398,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":271.819,"any_us":267.400,"rows_us":266.542,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":302.698,"any_us":325.364,"rows_us":311.991,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":279.818,"any_us":286.324,"rows_us":292.316,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":1.041,"lower_us_fused":7.625,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":668.361,"any_us":733.545,"rows_us":715.692,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3689.528,"any_us":3483.764,"rows_us":2992.795,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":657.514,"any_us":665.430,"rows_us":697.157,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2964.937,"any_us":2934.052,"rows_us":2857.138,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":99875,"lower_us_plain":0.322,"lower_us_fused":0.503,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":418.703,"any_us":418.459,"rows_us":430.274,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":364.288,"any_us":354.711,"rows_us":347.614,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":390.969,"any_us":402.492,"rows_us":417.323,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":346.412,"any_us":339.477,"rows_us":358.873,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":450007,"lower_us_plain":0.240,"lower_us_fused":0.452,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":193.334,"any_us":188.374,"rows_us":186.067,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":186.523,"any_us":189.728,"rows_us":185.465,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":186.554,"any_us":186.269,"rows_us":199.860,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":191.654,"any_us":190.299,"rows_us":190.526,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"achieved":190006,"lower_us_plain":0.357,"lower_us_fused":0.532,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":345.285,"any_us":391.327,"rows_us":363.811,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":354.548,"any_us":356.009,"rows_us":381.172,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":352.331,"any_us":369.518,"rows_us":352.172,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":352.636,"any_us":358.374,"rows_us":359.741,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":850017,"lower_us_plain":0.447,"lower_us_fused":0.846,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":377.711,"any_us":360.390,"rows_us":369.793,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":368.473,"any_us":362.756,"rows_us":366.815,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":372.400,"any_us":362.164,"rows_us":376.830,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":366.143,"any_us":349.910,"rows_us":365.681,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":267454,"lower_us_plain":0.612,"lower_us_fused":1.500,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1082.387,"any_us":1078.419,"rows_us":1123.835,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":989.039,"any_us":1015.852,"rows_us":979.936,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1048.697,"any_us":1094.240,"rows_us":1060.270,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":931.386,"any_us":937.415,"rows_us":949.434,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json new file mode 100644 index 000000000..13fe5bbcc --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json @@ -0,0 +1,56 @@ +{"n":10000000,"seed":11400714819323198485,"cases":[ +{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"cmp","col":3,"cmpop":"lt","value":0}}, +{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"target":100000,"achieved":100002,"target_met":true,"tree":{"op":"cmp","col":5,"cmpop":"lt","value":10}}, +{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"target":5000000,"achieved":5000008,"target_met":true,"tree":{"op":"cmp","col":13,"cmpop":"lt","value":500}}, +{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":1,"cmpop":"lt","value":527},{"op":"cmp","col":5,"cmpop":"ge","value":473},{"op":"cmp","col":10,"cmpop":"lt","value":527}]}}, +{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":101386,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":6,"cmpop":"lt","value":207},{"op":"cmp","col":10,"cmpop":"ge","value":793},{"op":"cmp","col":2,"cmpop":"lt","value":207}]}}, +{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":4996187,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":11,"cmpop":"lt","value":761},{"op":"cmp","col":13,"cmpop":"ge","value":239},{"op":"cmp","col":10,"cmpop":"lt","value":761}]}}, +{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0}]}}, +{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":100001,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":4},{"op":"cmp","col":6,"cmpop":"ge","value":997},{"op":"cmp","col":7,"cmpop":"lt","value":3}]}}, +{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":5006214,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":249},{"op":"cmp","col":9,"cmpop":"ge","value":751},{"op":"cmp","col":12,"cmpop":"lt","value":249}]}}, +{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":51},{"op":"cmp","col":7,"cmpop":"ge","value":949}]},{"op":"cmp","col":2,"cmpop":"lt","value":51}]}}, +{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":98184,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":159},{"op":"cmp","col":11,"cmpop":"ge","value":841}]},{"op":"cmp","col":2,"cmpop":"lt","value":159}]}}, +{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":4994319,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":594},{"op":"cmp","col":0,"cmpop":"ge","value":406}]},{"op":"cmp","col":4,"cmpop":"lt","value":594}]}}, +{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":470,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":467},{"op":"cmp","col":10,"cmpop":"ge","value":533},{"op":"cmp","col":7,"cmpop":"lt","value":467},{"op":"cmp","col":0,"cmpop":"ge","value":533},{"op":"cmp","col":11,"cmpop":"lt","value":467},{"op":"cmp","col":6,"cmpop":"ge","value":533},{"op":"cmp","col":2,"cmpop":"lt","value":467},{"op":"cmp","col":1,"cmpop":"ge","value":533}]}}, +{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":100924,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":632},{"op":"cmp","col":6,"cmpop":"ge","value":368},{"op":"cmp","col":8,"cmpop":"lt","value":632},{"op":"cmp","col":11,"cmpop":"ge","value":368},{"op":"cmp","col":9,"cmpop":"lt","value":632},{"op":"cmp","col":0,"cmpop":"ge","value":368},{"op":"cmp","col":7,"cmpop":"lt","value":632},{"op":"cmp","col":2,"cmpop":"ge","value":368}]}}, +{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":4981051,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":917},{"op":"cmp","col":7,"cmpop":"ge","value":83},{"op":"cmp","col":6,"cmpop":"lt","value":917},{"op":"cmp","col":3,"cmpop":"ge","value":83},{"op":"cmp","col":4,"cmpop":"lt","value":917},{"op":"cmp","col":10,"cmpop":"ge","value":83},{"op":"cmp","col":5,"cmpop":"lt","value":917},{"op":"cmp","col":9,"cmpop":"ge","value":83}]}}, +{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000}]}}, +{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":99996,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":2},{"op":"cmp","col":13,"cmpop":"ge","value":999},{"op":"cmp","col":14,"cmpop":"lt","value":1},{"op":"cmp","col":1,"cmpop":"ge","value":999},{"op":"cmp","col":7,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":12,"cmpop":"ge","value":999}]}}, +{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":4988280,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":82},{"op":"cmp","col":4,"cmpop":"ge","value":918},{"op":"cmp","col":13,"cmpop":"lt","value":82},{"op":"cmp","col":10,"cmpop":"ge","value":918},{"op":"cmp","col":9,"cmpop":"lt","value":82},{"op":"cmp","col":14,"cmpop":"ge","value":918},{"op":"cmp","col":1,"cmpop":"lt","value":82},{"op":"cmp","col":7,"cmpop":"ge","value":918}]}}, +{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":935,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":92},{"op":"cmp","col":4,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":92},{"op":"cmp","col":10,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":92},{"op":"cmp","col":2,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":92},{"op":"cmp","col":12,"cmpop":"ge","value":908}]}]}}, +{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":99047,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":232},{"op":"cmp","col":9,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":232},{"op":"cmp","col":3,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":232},{"op":"cmp","col":5,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":232},{"op":"cmp","col":7,"cmpop":"ge","value":768}]}]}}, +{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":5001665,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":585},{"op":"cmp","col":10,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":585},{"op":"cmp","col":12,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":585},{"op":"cmp","col":2,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":585},{"op":"cmp","col":0,"cmpop":"ge","value":415}]}]}}, +{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":467,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":9,"cmpop":"lt","value":768},{"op":"cmp","col":12,"cmpop":"ge","value":232},{"op":"cmp","col":5,"cmpop":"lt","value":768},{"op":"cmp","col":0,"cmpop":"ge","value":232},{"op":"cmp","col":3,"cmpop":"lt","value":768},{"op":"cmp","col":7,"cmpop":"ge","value":232},{"op":"cmp","col":10,"cmpop":"lt","value":768},{"op":"cmp","col":2,"cmpop":"ge","value":232},{"op":"cmp","col":11,"cmpop":"lt","value":768},{"op":"cmp","col":6,"cmpop":"ge","value":232},{"op":"cmp","col":13,"cmpop":"lt","value":768},{"op":"cmp","col":8,"cmpop":"ge","value":232},{"op":"cmp","col":1,"cmpop":"lt","value":768},{"op":"cmp","col":14,"cmpop":"ge","value":232},{"op":"cmp","col":4,"cmpop":"lt","value":768},{"op":"cmp","col":9,"cmpop":"ge","value":232},{"op":"cmp","col":12,"cmpop":"lt","value":768}]}}, +{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":97561,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":829},{"op":"cmp","col":4,"cmpop":"ge","value":172},{"op":"cmp","col":5,"cmpop":"lt","value":829},{"op":"cmp","col":1,"cmpop":"ge","value":171},{"op":"cmp","col":12,"cmpop":"lt","value":829},{"op":"cmp","col":7,"cmpop":"ge","value":171},{"op":"cmp","col":14,"cmpop":"lt","value":829},{"op":"cmp","col":13,"cmpop":"ge","value":171},{"op":"cmp","col":2,"cmpop":"lt","value":829},{"op":"cmp","col":9,"cmpop":"ge","value":171},{"op":"cmp","col":3,"cmpop":"lt","value":829},{"op":"cmp","col":0,"cmpop":"ge","value":171},{"op":"cmp","col":11,"cmpop":"lt","value":829},{"op":"cmp","col":6,"cmpop":"ge","value":171},{"op":"cmp","col":10,"cmpop":"lt","value":829},{"op":"cmp","col":8,"cmpop":"ge","value":171},{"op":"cmp","col":4,"cmpop":"lt","value":829}]}}, +{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":4998174,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":955},{"op":"cmp","col":3,"cmpop":"ge","value":45},{"op":"cmp","col":1,"cmpop":"lt","value":955},{"op":"cmp","col":13,"cmpop":"ge","value":45},{"op":"cmp","col":6,"cmpop":"lt","value":955},{"op":"cmp","col":7,"cmpop":"ge","value":45},{"op":"cmp","col":2,"cmpop":"lt","value":955},{"op":"cmp","col":14,"cmpop":"ge","value":45},{"op":"cmp","col":4,"cmpop":"lt","value":955},{"op":"cmp","col":5,"cmpop":"ge","value":45},{"op":"cmp","col":10,"cmpop":"lt","value":955},{"op":"cmp","col":11,"cmpop":"ge","value":45},{"op":"cmp","col":12,"cmpop":"lt","value":955},{"op":"cmp","col":9,"cmpop":"ge","value":45},{"op":"cmp","col":8,"cmpop":"lt","value":955},{"op":"cmp","col":0,"cmpop":"ge","value":45},{"op":"cmp","col":3,"cmpop":"lt","value":955}]}}, +{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0}]}}, +{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":100002,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":9,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":10,"cmpop":"lt","value":1},{"op":"cmp","col":2,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":7,"cmpop":"ge","value":999},{"op":"cmp","col":5,"cmpop":"lt","value":1}]}}, +{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":5051202,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":34},{"op":"cmp","col":11,"cmpop":"ge","value":966},{"op":"cmp","col":2,"cmpop":"lt","value":34},{"op":"cmp","col":14,"cmpop":"ge","value":966},{"op":"cmp","col":1,"cmpop":"lt","value":34},{"op":"cmp","col":4,"cmpop":"ge","value":966},{"op":"cmp","col":13,"cmpop":"lt","value":34},{"op":"cmp","col":5,"cmpop":"ge","value":966},{"op":"cmp","col":7,"cmpop":"lt","value":34},{"op":"cmp","col":12,"cmpop":"ge","value":966},{"op":"cmp","col":8,"cmpop":"lt","value":34},{"op":"cmp","col":0,"cmpop":"ge","value":966},{"op":"cmp","col":6,"cmpop":"lt","value":34},{"op":"cmp","col":9,"cmpop":"ge","value":966},{"op":"cmp","col":10,"cmpop":"lt","value":34},{"op":"cmp","col":3,"cmpop":"ge","value":966},{"op":"cmp","col":11,"cmpop":"lt","value":34}]}}, +{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":467,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":412},{"op":"cmp","col":12,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":412},{"op":"cmp","col":14,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":412},{"op":"cmp","col":8,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":412},{"op":"cmp","col":10,"cmpop":"ge","value":589}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":412},{"op":"cmp","col":2,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":412},{"op":"cmp","col":11,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":412},{"op":"cmp","col":7,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":412},{"op":"cmp","col":1,"cmpop":"ge","value":588}]},{"op":"cmp","col":12,"cmpop":"lt","value":412}]}}, +{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":100925,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":503},{"op":"cmp","col":1,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":503},{"op":"cmp","col":5,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":503},{"op":"cmp","col":10,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":503},{"op":"cmp","col":14,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":503},{"op":"cmp","col":11,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":503},{"op":"cmp","col":12,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":503},{"op":"cmp","col":9,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":503},{"op":"cmp","col":4,"cmpop":"ge","value":497}]},{"op":"cmp","col":1,"cmpop":"lt","value":503}]}}, +{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":4982809,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":811},{"op":"cmp","col":13,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":811},{"op":"cmp","col":6,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":811},{"op":"cmp","col":8,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":811},{"op":"cmp","col":7,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":811},{"op":"cmp","col":3,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":811},{"op":"cmp","col":2,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":811},{"op":"cmp","col":14,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":811},{"op":"cmp","col":12,"cmpop":"ge","value":189}]},{"op":"cmp","col":13,"cmpop":"lt","value":811}]}}, +{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":472,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":819},{"op":"cmp","col":10,"cmpop":"ge","value":181},{"op":"cmp","col":7,"cmpop":"lt","value":819},{"op":"cmp","col":12,"cmpop":"ge","value":181},{"op":"cmp","col":11,"cmpop":"lt","value":819},{"op":"cmp","col":2,"cmpop":"ge","value":181},{"op":"cmp","col":0,"cmpop":"lt","value":819},{"op":"cmp","col":13,"cmpop":"ge","value":181},{"op":"cmp","col":9,"cmpop":"lt","value":819},{"op":"cmp","col":14,"cmpop":"ge","value":181},{"op":"cmp","col":1,"cmpop":"lt","value":819},{"op":"cmp","col":8,"cmpop":"ge","value":181},{"op":"cmp","col":6,"cmpop":"lt","value":819},{"op":"cmp","col":5,"cmpop":"ge","value":181},{"op":"cmp","col":4,"cmpop":"lt","value":819},{"op":"cmp","col":3,"cmpop":"ge","value":181},{"op":"cmp","col":10,"cmpop":"lt","value":819},{"op":"cmp","col":7,"cmpop":"ge","value":181},{"op":"cmp","col":12,"cmpop":"lt","value":819},{"op":"cmp","col":11,"cmpop":"ge","value":181},{"op":"cmp","col":2,"cmpop":"lt","value":819},{"op":"cmp","col":0,"cmpop":"ge","value":181},{"op":"cmp","col":13,"cmpop":"lt","value":819},{"op":"cmp","col":9,"cmpop":"ge","value":181}]}}, +{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":99057,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":918},{"op":"cmp","col":8,"cmpop":"ge","value":88},{"op":"cmp","col":11,"cmpop":"lt","value":912},{"op":"cmp","col":13,"cmpop":"ge","value":88},{"op":"cmp","col":12,"cmpop":"lt","value":912},{"op":"cmp","col":6,"cmpop":"ge","value":88},{"op":"cmp","col":14,"cmpop":"lt","value":912},{"op":"cmp","col":5,"cmpop":"ge","value":88},{"op":"cmp","col":2,"cmpop":"lt","value":912},{"op":"cmp","col":9,"cmpop":"ge","value":88},{"op":"cmp","col":0,"cmpop":"lt","value":912},{"op":"cmp","col":7,"cmpop":"ge","value":88},{"op":"cmp","col":10,"cmpop":"lt","value":912},{"op":"cmp","col":3,"cmpop":"ge","value":88},{"op":"cmp","col":1,"cmpop":"lt","value":912},{"op":"cmp","col":4,"cmpop":"ge","value":88},{"op":"cmp","col":8,"cmpop":"lt","value":912},{"op":"cmp","col":11,"cmpop":"ge","value":88},{"op":"cmp","col":13,"cmpop":"lt","value":912},{"op":"cmp","col":12,"cmpop":"ge","value":88},{"op":"cmp","col":6,"cmpop":"lt","value":912},{"op":"cmp","col":14,"cmpop":"ge","value":88},{"op":"cmp","col":5,"cmpop":"lt","value":912},{"op":"cmp","col":2,"cmpop":"ge","value":88}]}}, +{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":5020727,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":12,"cmpop":"lt","value":976},{"op":"cmp","col":4,"cmpop":"ge","value":24},{"op":"cmp","col":10,"cmpop":"lt","value":976},{"op":"cmp","col":13,"cmpop":"ge","value":24},{"op":"cmp","col":2,"cmpop":"lt","value":976},{"op":"cmp","col":11,"cmpop":"ge","value":24},{"op":"cmp","col":9,"cmpop":"lt","value":976},{"op":"cmp","col":0,"cmpop":"ge","value":24},{"op":"cmp","col":7,"cmpop":"lt","value":976},{"op":"cmp","col":5,"cmpop":"ge","value":24},{"op":"cmp","col":14,"cmpop":"lt","value":976},{"op":"cmp","col":1,"cmpop":"ge","value":24},{"op":"cmp","col":6,"cmpop":"lt","value":976},{"op":"cmp","col":8,"cmpop":"ge","value":24},{"op":"cmp","col":3,"cmpop":"lt","value":976},{"op":"cmp","col":12,"cmpop":"ge","value":24},{"op":"cmp","col":4,"cmpop":"lt","value":976},{"op":"cmp","col":10,"cmpop":"ge","value":24},{"op":"cmp","col":13,"cmpop":"lt","value":976},{"op":"cmp","col":2,"cmpop":"ge","value":24},{"op":"cmp","col":11,"cmpop":"lt","value":976},{"op":"cmp","col":9,"cmpop":"ge","value":24},{"op":"cmp","col":0,"cmpop":"lt","value":976},{"op":"cmp","col":7,"cmpop":"ge","value":24}]}}, +{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":12,"cmpop":"ge","value":1000},{"op":"cmp","col":8,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":1,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":0,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":2,"cmpop":"lt","value":0},{"op":"cmp","col":14,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":13,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":10,"cmpop":"ge","value":1000}]}}, +{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":99996,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":3,"cmpop":"ge","value":999},{"op":"cmp","col":4,"cmpop":"lt","value":1},{"op":"cmp","col":5,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999}]}}, +{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":4956413,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":25},{"op":"cmp","col":8,"cmpop":"ge","value":975},{"op":"cmp","col":4,"cmpop":"lt","value":25},{"op":"cmp","col":10,"cmpop":"ge","value":975},{"op":"cmp","col":12,"cmpop":"lt","value":25},{"op":"cmp","col":3,"cmpop":"ge","value":975},{"op":"cmp","col":0,"cmpop":"lt","value":25},{"op":"cmp","col":2,"cmpop":"ge","value":975},{"op":"cmp","col":1,"cmpop":"lt","value":25},{"op":"cmp","col":14,"cmpop":"ge","value":975},{"op":"cmp","col":7,"cmpop":"lt","value":25},{"op":"cmp","col":13,"cmpop":"ge","value":975},{"op":"cmp","col":5,"cmpop":"lt","value":25},{"op":"cmp","col":6,"cmpop":"ge","value":975},{"op":"cmp","col":11,"cmpop":"lt","value":25},{"op":"cmp","col":9,"cmpop":"ge","value":975},{"op":"cmp","col":8,"cmpop":"lt","value":25},{"op":"cmp","col":4,"cmpop":"ge","value":975},{"op":"cmp","col":10,"cmpop":"lt","value":25},{"op":"cmp","col":12,"cmpop":"ge","value":975},{"op":"cmp","col":3,"cmpop":"lt","value":25},{"op":"cmp","col":0,"cmpop":"ge","value":975},{"op":"cmp","col":2,"cmpop":"lt","value":25},{"op":"cmp","col":1,"cmpop":"ge","value":975}]}}, +{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":470,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":528},{"op":"cmp","col":4,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":528},{"op":"cmp","col":8,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":528},{"op":"cmp","col":13,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":528},{"op":"cmp","col":10,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":528},{"op":"cmp","col":9,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":528},{"op":"cmp","col":1,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":528},{"op":"cmp","col":2,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":528},{"op":"cmp","col":0,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":528},{"op":"cmp","col":7,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":528},{"op":"cmp","col":5,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":528},{"op":"cmp","col":11,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":528},{"op":"cmp","col":14,"cmpop":"ge","value":472}]}]}}, +{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":99512,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":555},{"op":"cmp","col":10,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":555},{"op":"cmp","col":1,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":555},{"op":"cmp","col":7,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":555},{"op":"cmp","col":5,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":555},{"op":"cmp","col":9,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":555},{"op":"cmp","col":4,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":555},{"op":"cmp","col":12,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":555},{"op":"cmp","col":0,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":555},{"op":"cmp","col":14,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":555},{"op":"cmp","col":13,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":555},{"op":"cmp","col":8,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":555},{"op":"cmp","col":6,"cmpop":"ge","value":445}]}]}}, +{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":5004671,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":777},{"op":"cmp","col":12,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":777},{"op":"cmp","col":0,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":777},{"op":"cmp","col":6,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":777},{"op":"cmp","col":11,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":777},{"op":"cmp","col":13,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":777},{"op":"cmp","col":10,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":777},{"op":"cmp","col":8,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":777},{"op":"cmp","col":5,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":777},{"op":"cmp","col":2,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":777},{"op":"cmp","col":4,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":777},{"op":"cmp","col":14,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":777},{"op":"cmp","col":3,"cmpop":"ge","value":223}]}]}}, +{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":100002,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":10}]}}, +{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":10002,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":5,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900}]}}, +{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":10000000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":5}]}}, +{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":10000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"lt","value":1}]}}, +{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":8271472,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":985},{"op":"cmp","col":1,"cmpop":"lt","value":986},{"op":"cmp","col":2,"cmpop":"lt","value":987},{"op":"cmp","col":3,"cmpop":"lt","value":988},{"op":"cmp","col":4,"cmpop":"lt","value":989},{"op":"cmp","col":5,"cmpop":"lt","value":985},{"op":"cmp","col":6,"cmpop":"lt","value":986},{"op":"cmp","col":7,"cmpop":"lt","value":987},{"op":"cmp","col":8,"cmpop":"lt","value":988},{"op":"cmp","col":9,"cmpop":"lt","value":989},{"op":"cmp","col":10,"cmpop":"lt","value":985},{"op":"cmp","col":11,"cmpop":"lt","value":986},{"op":"cmp","col":12,"cmpop":"lt","value":987},{"op":"cmp","col":13,"cmpop":"lt","value":988},{"op":"cmp","col":14,"cmpop":"lt","value":989},{"op":"cmp","col":0,"cmpop":"lt","value":985}]}}, +{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":472,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"eq","value":241},{"op":"cmp","col":1,"cmpop":"eq","value":253},{"op":"cmp","col":2,"cmpop":"eq","value":63},{"op":"cmp","col":3,"cmpop":"eq","value":474},{"op":"cmp","col":4,"cmpop":"eq","value":885},{"op":"cmp","col":5,"cmpop":"eq","value":296},{"op":"cmp","col":6,"cmpop":"eq","value":707},{"op":"cmp","col":7,"cmpop":"eq","value":118},{"op":"cmp","col":8,"cmpop":"eq","value":881},{"op":"cmp","col":9,"cmpop":"eq","value":292},{"op":"cmp","col":10,"cmpop":"eq","value":703},{"op":"cmp","col":11,"cmpop":"eq","value":114},{"op":"cmp","col":12,"cmpop":"eq","value":525},{"op":"cmp","col":13,"cmpop":"eq","value":936},{"op":"cmp","col":14,"cmpop":"eq","value":347},{"op":"cmp","col":0,"cmpop":"ge","value":241}]}}, +{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":5000004,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":520}]}}, +{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":4900007,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":510},{"op":"cmp","col":0,"cmpop":"lt","value":490},{"op":"cmp","col":1,"cmpop":"lt","value":530},{"op":"cmp","col":0,"cmpop":"lt","value":520}]}}, +{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900}]}}, +{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900},{"op":"cmp","col":2,"cmpop":"lt","value":900},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":4,"cmpop":"lt","value":900},{"op":"cmp","col":5,"cmpop":"lt","value":900},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900},{"op":"cmp","col":8,"cmpop":"lt","value":900},{"op":"cmp","col":9,"cmpop":"lt","value":900},{"op":"cmp","col":10,"cmpop":"lt","value":900},{"op":"cmp","col":11,"cmpop":"lt","value":900},{"op":"cmp","col":12,"cmpop":"lt","value":900},{"op":"cmp","col":13,"cmpop":"lt","value":900},{"op":"cmp","col":14,"cmpop":"lt","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900}]}}, +{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":999196,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}, +{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":4499990,"target_met":true,"tree":{"op":"not","arg":{"op":"cmp","col":15,"cmpop":"lt","value":500}}}, +{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"target":0,"achieved":1900011,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":15,"cmpop":"lt","value":100},{"op":"cmp","col":2,"cmpop":"lt","value":100}]}}, +{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":8500703,"target_met":true,"tree":{"op":"not","arg":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}}, +{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":2674492,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"ge","value":200},{"op":"cmp","col":0,"cmpop":"lt","value":700},{"op":"cmp","col":2,"cmpop":"lt","value":700},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":15,"cmpop":"lt","value":900}]}} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json new file mode 100644 index 000000000..566182f23 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json @@ -0,0 +1,56 @@ +{"n":10000000,"records":[ +{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.096,"lower_us_fused":0.107,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":1688.300,"any_us":1709.078,"rows_us":1759.156,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1689.841,"any_us":1664.002,"rows_us":1725.466,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1717.771,"any_us":1676.632,"rows_us":1707.707,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1710.548,"any_us":1882.510,"rows_us":1819.053,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"achieved":100002,"lower_us_plain":0.096,"lower_us_fused":0.108,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":1684.304,"any_us":1970.709,"rows_us":1751.794,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1686.257,"any_us":1700.275,"rows_us":1824.835,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1833.373,"any_us":1855.201,"rows_us":1792.841,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1760.228,"any_us":1833.334,"rows_us":1849.034,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"achieved":5000008,"lower_us_plain":0.090,"lower_us_fused":0.101,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":1799.658,"any_us":1808.457,"rows_us":1862.668,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1832.659,"any_us":1749.650,"rows_us":1786.314,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1748.861,"any_us":1747.323,"rows_us":1815.546,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1821.746,"any_us":1749.944,"rows_us":1759.222,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.283,"lower_us_fused":0.499,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6340.319,"any_us":7086.642,"rows_us":7859.929,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":7292.484,"any_us":6416.064,"rows_us":5596.837,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6483.768,"any_us":6956.029,"rows_us":6877.753,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5178.665,"any_us":5326.200,"rows_us":5270.782,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":101386,"lower_us_plain":0.283,"lower_us_fused":0.498,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6320.971,"any_us":6046.646,"rows_us":7897.949,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5419.381,"any_us":5667.059,"rows_us":5937.987,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6616.260,"any_us":7026.222,"rows_us":7823.352,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5495.787,"any_us":5422.259,"rows_us":5255.292,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":4996187,"lower_us_plain":0.286,"lower_us_fused":0.501,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6745.897,"any_us":7128.963,"rows_us":7100.376,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5718.539,"any_us":5541.858,"rows_us":5727.100,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6202.463,"any_us":6442.012,"rows_us":6955.033,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5251.012,"any_us":5352.488,"rows_us":6234.322,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.284,"lower_us_fused":0.590,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6004.864,"any_us":5665.662,"rows_us":5720.188,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5663.773,"any_us":5755.950,"rows_us":5892.825,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5701.626,"any_us":5498.967,"rows_us":5215.753,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5333.992,"any_us":5699.228,"rows_us":6344.622,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":100001,"lower_us_plain":0.285,"lower_us_fused":0.566,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5516.603,"any_us":5670.677,"rows_us":5909.048,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5042.593,"any_us":5064.941,"rows_us":5126.352,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5098.465,"any_us":5323.837,"rows_us":5390.430,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5634.676,"any_us":5565.163,"rows_us":5935.181,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":5006214,"lower_us_plain":0.284,"lower_us_fused":0.567,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":8708.756,"any_us":6530.488,"rows_us":9036.776,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":6013.167,"any_us":5159.760,"rows_us":5780.305,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5115.432,"any_us":5444.250,"rows_us":5833.945,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":6047.607,"any_us":6620.302,"rows_us":5582.551,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.368,"lower_us_fused":0.655,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5928.663,"any_us":6274.058,"rows_us":6046.126,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5720.600,"any_us":5952.334,"rows_us":5525.189,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":8135.259,"any_us":9776.971,"rows_us":7338.171,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5430.329,"any_us":5656.431,"rows_us":6157.870,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":98184,"lower_us_plain":0.356,"lower_us_fused":0.633,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5987.941,"any_us":5768.366,"rows_us":6144.824,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":6114.068,"any_us":6041.396,"rows_us":5627.637,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":9328.487,"any_us":8676.214,"rows_us":8673.142,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5937.115,"any_us":5703.164,"rows_us":5487.312,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":4994319,"lower_us_plain":0.368,"lower_us_fused":0.655,"skip_same_as_plain":false,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5598.211,"any_us":5622.802,"rows_us":6067.316,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5961.857,"any_us":5757.451,"rows_us":5708.821,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6618.201,"any_us":6245.645,"rows_us":7953.957,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5676.851,"any_us":5345.552,"rows_us":5390.802,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":470,"lower_us_plain":0.738,"lower_us_fused":3.915,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":24039.093,"any_us":22140.701,"rows_us":24092.404,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":39899.552,"any_us":37163.134,"rows_us":36378.646,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":25557.518,"any_us":25174.749,"rows_us":25445.544,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37543.876,"any_us":36982.773,"rows_us":36928.903,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":100924,"lower_us_plain":0.512,"lower_us_fused":2.396,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":47391.001,"any_us":47533.898,"rows_us":49247.844,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":36402.560,"any_us":36781.669,"rows_us":37327.514,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":48138.598,"any_us":50830.852,"rows_us":50536.272,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37278.684,"any_us":36642.348,"rows_us":38635.230,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":4981051,"lower_us_plain":0.520,"lower_us_fused":2.388,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":54317.503,"any_us":49803.373,"rows_us":52506.407,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":36861.673,"any_us":36170.680,"rows_us":36718.518,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":50435.614,"any_us":55575.956,"rows_us":52389.278,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37287.139,"any_us":39489.407,"rows_us":40190.260,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.511,"lower_us_fused":2.607,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":36982.733,"any_us":36412.720,"rows_us":37027.565,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":37102.314,"any_us":37117.400,"rows_us":36805.592,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":36453.414,"any_us":39482.916,"rows_us":38088.894,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37250.334,"any_us":36962.145,"rows_us":36664.179,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":99996,"lower_us_plain":0.511,"lower_us_fused":2.629,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":37405.818,"any_us":38979.850,"rows_us":39449.598,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":38106.905,"any_us":36474.320,"rows_us":37855.418,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":38150.898,"any_us":38858.469,"rows_us":37010.644,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":36492.948,"any_us":36093.585,"rows_us":36554.439,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":4988280,"lower_us_plain":0.509,"lower_us_fused":2.649,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":36812.013,"any_us":36750.430,"rows_us":36270.930,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":35830.663,"any_us":35629.465,"rows_us":36135.211,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":39602.789,"any_us":36305.335,"rows_us":37713.672,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37956.391,"any_us":36540.286,"rows_us":37173.606,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":935,"lower_us_plain":0.884,"lower_us_fused":2.644,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":40505.735,"any_us":38387.399,"rows_us":37997.544,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":36491.555,"any_us":37142.304,"rows_us":39076.078,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":38260.819,"any_us":37810.997,"rows_us":38791.852,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37973.949,"any_us":39645.582,"rows_us":37749.237,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":99047,"lower_us_plain":0.873,"lower_us_fused":2.663,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":49326.150,"any_us":50915.687,"rows_us":48613.818,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":37299.558,"any_us":37822.533,"rows_us":38002.390,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":51830.497,"any_us":48607.521,"rows_us":47862.557,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":36740.589,"any_us":39731.911,"rows_us":37475.987,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":5001665,"lower_us_plain":0.840,"lower_us_fused":2.555,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":50086.575,"any_us":48321.210,"rows_us":64264.194,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":53750.276,"any_us":47112.257,"rows_us":56540.875,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":64757.889,"any_us":65552.649,"rows_us":61927.931,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":46483.364,"any_us":52329.915,"rows_us":50481.747,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":467,"lower_us_plain":1.387,"lower_us_fused":18.718,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":103185.851,"any_us":101385.736,"rows_us":100279.056,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":76862.537,"any_us":74427.425,"rows_us":75155.736,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":100743.294,"any_us":105356.570,"rows_us":104722.646,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":74264.183,"any_us":71629.782,"rows_us":71875.456,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":97561,"lower_us_plain":1.057,"lower_us_fused":7.595,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":97168.209,"any_us":99032.929,"rows_us":104324.383,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":79100.860,"any_us":73776.173,"rows_us":74798.851,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":102771.697,"any_us":99400.732,"rows_us":96801.439,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73592.426,"any_us":75664.486,"rows_us":82645.778,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":4998174,"lower_us_plain":1.642,"lower_us_fused":11.694,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":104394.261,"any_us":119456.802,"rows_us":115958.465,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":75036.050,"any_us":73588.577,"rows_us":74003.857,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":103585.777,"any_us":111179.747,"rows_us":107186.728,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":74987.653,"any_us":76251.729,"rows_us":77455.018,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":1.041,"lower_us_fused":8.036,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":75762.377,"any_us":74831.288,"rows_us":76992.429,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":79048.358,"any_us":81795.682,"rows_us":82459.554,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":77341.398,"any_us":86855.573,"rows_us":79884.136,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":74191.901,"any_us":73149.931,"rows_us":76023.899,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":100002,"lower_us_plain":1.686,"lower_us_fused":12.853,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":79434.441,"any_us":75765.826,"rows_us":73661.689,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":73764.954,"any_us":76878.019,"rows_us":75717.661,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":79581.690,"any_us":75681.138,"rows_us":73443.526,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73705.663,"any_us":73464.615,"rows_us":79901.958,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":5051202,"lower_us_plain":1.006,"lower_us_fused":7.856,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":76605.041,"any_us":79808.481,"rows_us":77189.246,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":76236.637,"any_us":78224.185,"rows_us":78134.020,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":80711.405,"any_us":76449.699,"rows_us":76371.495,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":72316.143,"any_us":71382.156,"rows_us":81167.120,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":467,"lower_us_plain":1.887,"lower_us_fused":6.911,"skip_same_as_plain":false,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":98415.959,"any_us":99039.413,"rows_us":100113.252,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":76888.682,"any_us":78963.223,"rows_us":77562.374,"runs":[11,11,11],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":41805.197,"any_us":48830.129,"rows_us":43736.057,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":90323.005,"any_us":77447.574,"rows_us":80227.533,"runs":[11,11,11],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":100925,"lower_us_plain":2.757,"lower_us_fused":10.564,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":114968.144,"any_us":107467.082,"rows_us":108564.058,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":83106.892,"any_us":77523.687,"rows_us":73476.367,"runs":[11,11,11],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":102476.638,"any_us":100932.968,"rows_us":105331.648,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73473.002,"any_us":78242.030,"rows_us":83451.572,"runs":[11,11,11],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":4982809,"lower_us_plain":2.957,"lower_us_fused":11.567,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":107092.968,"any_us":105667.849,"rows_us":111345.946,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":74632.922,"any_us":94746.984,"rows_us":77808.714,"runs":[11,11,11],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":119365.922,"any_us":103544.830,"rows_us":103497.689,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":75020.088,"any_us":76444.951,"rows_us":75979.667,"runs":[11,11,11],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":472,"lower_us_plain":1.420,"lower_us_fused":15.610,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":119053.692,"any_us":119331.640,"rows_us":112533.273,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":93763.941,"any_us":98722.854,"rows_us":88694.253,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":106022.599,"any_us":113690.845,"rows_us":123109.146,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":96570.333,"any_us":91951.151,"rows_us":90544.201,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":99057,"lower_us_plain":1.898,"lower_us_fused":15.703,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":135670.223,"any_us":123678.763,"rows_us":127720.720,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":89354.553,"any_us":100287.652,"rows_us":96070.112,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":120959.866,"any_us":133711.150,"rows_us":140643.659,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":114852.406,"any_us":101100.991,"rows_us":95396.506,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":5020727,"lower_us_plain":2.100,"lower_us_fused":24.457,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":143182.199,"any_us":126378.169,"rows_us":122060.700,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":86026.944,"any_us":85642.216,"rows_us":91330.954,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":124567.468,"any_us":127668.483,"rows_us":123671.500,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":90414.178,"any_us":87802.257,"rows_us":90768.168,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":1.461,"lower_us_fused":16.603,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":88091.345,"any_us":90924.013,"rows_us":92582.663,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":94057.411,"any_us":91883.619,"rows_us":90129.320,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":89024.309,"any_us":90998.391,"rows_us":87911.365,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":98203.940,"any_us":87496.265,"rows_us":98608.212,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":99996,"lower_us_plain":1.452,"lower_us_fused":16.548,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":92045.583,"any_us":87348.022,"rows_us":92022.746,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":110723.225,"any_us":86339.930,"rows_us":88804.594,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":90460.614,"any_us":92867.031,"rows_us":89056.655,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":92488.224,"any_us":95329.202,"rows_us":97694.077,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":4956413,"lower_us_plain":2.260,"lower_us_fused":25.333,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":90258.518,"any_us":87843.619,"rows_us":88561.453,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":90960.624,"any_us":90959.920,"rows_us":86445.536,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":89296.987,"any_us":86766.577,"rows_us":99855.775,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":103195.607,"any_us":115924.245,"rows_us":119111.516,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":470,"lower_us_plain":3.567,"lower_us_fused":16.524,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":126336.629,"any_us":125424.262,"rows_us":116477.509,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":90773.893,"any_us":90343.512,"rows_us":88104.190,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":113814.819,"any_us":127055.189,"rows_us":140897.416,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":94299.165,"any_us":92838.037,"rows_us":93242.677,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":99512,"lower_us_plain":2.600,"lower_us_fused":11.117,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":122003.001,"any_us":119026.600,"rows_us":132335.488,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":89640.115,"any_us":84966.497,"rows_us":98574.218,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":136404.025,"any_us":120942.516,"rows_us":126367.285,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":94532.848,"any_us":95272.137,"rows_us":86376.485,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":5004671,"lower_us_plain":2.580,"lower_us_fused":11.122,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":128187.068,"any_us":122442.305,"rows_us":120999.888,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":85767.426,"any_us":85184.745,"rows_us":85508.970,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":124834.205,"any_us":150774.384,"rows_us":136635.091,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":89718.238,"any_us":96651.279,"rows_us":93110.855,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":100002,"lower_us_plain":0.284,"lower_us_fused":0.634,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":13021.697,"any_us":4107.541,"rows_us":4521.496,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3704.015,"any_us":3578.415,"rows_us":3699.647,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4263.398,"any_us":4363.263,"rows_us":3374.644,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3643.240,"any_us":3536.211,"rows_us":3842.694,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":10002,"lower_us_plain":0.397,"lower_us_fused":0.787,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3249.975,"any_us":4084.873,"rows_us":2999.322,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":10956.282,"any_us":9288.725,"rows_us":9282.650,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2803.725,"any_us":4055.687,"rows_us":2853.712,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":7684.336,"any_us":6675.621,"rows_us":8523.037,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":10000000,"lower_us_plain":0.207,"lower_us_fused":0.394,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3585.851,"any_us":3483.912,"rows_us":3525.082,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3591.646,"any_us":3519.368,"rows_us":3569.781,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3465.395,"any_us":3510.288,"rows_us":3498.297,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3479.797,"any_us":3458.527,"rows_us":3461.652,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":10000,"lower_us_plain":0.210,"lower_us_fused":0.400,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3468.949,"any_us":3610.076,"rows_us":3595.275,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3505.310,"any_us":3475.550,"rows_us":3935.792,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3429.933,"any_us":3499.211,"rows_us":4560.544,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4531.121,"any_us":3522.608,"rows_us":3616.475,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":8271472,"lower_us_plain":0.965,"lower_us_fused":6.735,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":117693.287,"any_us":112288.498,"rows_us":107928.673,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":72430.220,"any_us":76745.619,"rows_us":82753.744,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":104896.292,"any_us":99535.773,"rows_us":105721.926,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73045.818,"any_us":71969.658,"rows_us":70735.105,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":472,"lower_us_plain":0.972,"lower_us_fused":6.640,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":19888.749,"any_us":20468.472,"rows_us":20370.534,"runs":[31,31,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":74652.684,"any_us":71789.178,"rows_us":74788.309,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":21780.544,"any_us":23239.674,"rows_us":21942.480,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73524.077,"any_us":82288.202,"rows_us":84159.400,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":5000004,"lower_us_plain":0.216,"lower_us_fused":0.373,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":10480.727,"any_us":5989.201,"rows_us":4172.881,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3531.887,"any_us":3495.647,"rows_us":3639.481,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3994.657,"any_us":4053.855,"rows_us":4773.174,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3632.246,"any_us":3574.015,"rows_us":3594.956,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":4900007,"lower_us_plain":0.553,"lower_us_fused":1.151,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":15799.618,"any_us":17284.287,"rows_us":16729.204,"runs":[31,11,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":12279.651,"any_us":16349.796,"rows_us":16336.779,"runs":[11,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":21425.555,"any_us":21167.124,"rows_us":22286.471,"runs":[31,11,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":12771.926,"any_us":13044.927,"rows_us":12683.708,"runs":[31,31,11],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":0.215,"lower_us_fused":0.372,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5706.503,"any_us":5478.785,"rows_us":4333.592,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3628.939,"any_us":3101.798,"rows_us":2977.970,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3275.184,"any_us":3246.481,"rows_us":3292.861,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2925.983,"any_us":2904.184,"rows_us":2977.320,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":1.058,"lower_us_fused":7.829,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":7505.223,"any_us":8087.943,"rows_us":15923.324,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":77129.258,"any_us":77147.783,"rows_us":73680.036,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":12875.504,"any_us":14033.187,"rows_us":14375.886,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":83003.736,"any_us":94780.921,"rows_us":76953.940,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":999196,"lower_us_plain":0.317,"lower_us_fused":0.490,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":13974.923,"any_us":11996.521,"rows_us":11436.982,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":11153.739,"any_us":8191.341,"rows_us":4810.162,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5498.414,"any_us":5726.627,"rows_us":5295.352,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4670.395,"any_us":10825.339,"rows_us":11974.515,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":4499990,"lower_us_plain":0.375,"lower_us_fused":0.759,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3566.879,"any_us":3409.697,"rows_us":3666.991,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3524.002,"any_us":3502.611,"rows_us":3377.565,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4116.453,"any_us":2238.470,"rows_us":2221.742,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2179.668,"any_us":2179.240,"rows_us":2553.828,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"achieved":1900011,"lower_us_plain":0.319,"lower_us_fused":0.530,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":7063.616,"any_us":4969.973,"rows_us":6494.993,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":4957.296,"any_us":4509.909,"rows_us":7951.128,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4684.793,"any_us":7439.419,"rows_us":4904.547,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":6276.585,"any_us":4032.745,"rows_us":5698.633,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":8500703,"lower_us_plain":0.442,"lower_us_fused":0.872,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":8061.393,"any_us":6900.712,"rows_us":7950.953,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3955.827,"any_us":3970.968,"rows_us":4159.076,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4476.504,"any_us":4378.035,"rows_us":5079.775,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":7299.658,"any_us":9938.460,"rows_us":12735.084,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, +{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":2674492,"lower_us_plain":0.924,"lower_us_fused":2.126,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":28629.127,"any_us":28868.169,"rows_us":28619.653,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":21901.479,"any_us":22263.404,"rows_us":22509.093,"runs":[11,11,11],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":26032.905,"any_us":26315.617,"rows_us":26524.109,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":22175.178,"any_us":22161.367,"rows_us":22731.484,"runs":[11,11,11],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log new file mode 100644 index 000000000..f12227883 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log @@ -0,0 +1,762 @@ +== N = 10000000 == +columns built in 2.07 s (16 x i32 lanes + validity plane) +case k1_tiny_single K=1 target 50 achieved 0 met=false +case k1_medium_single K=1 target 100000 achieved 100002 met=true +case k1_large_single K=1 target 5000000 achieved 5000008 met=true +case k3_tiny_and K=3 target 50 achieved 0 met=false +case k3_medium_and K=3 target 100000 achieved 101386 met=true +case k3_large_and K=3 target 5000000 achieved 4996187 met=true +case k3_tiny_or K=3 target 50 achieved 0 met=false +case k3_medium_or K=3 target 100000 achieved 100001 met=true +case k3_large_or K=3 target 5000000 achieved 5006214 met=true +case k3_tiny_mixed K=3 target 50 achieved 0 met=false +case k3_medium_mixed K=3 target 100000 achieved 98184 met=true +case k3_large_mixed K=3 target 5000000 achieved 4994319 met=true +case k8_tiny_and K=8 target 50 achieved 470 met=false +case k8_medium_and K=8 target 100000 achieved 100924 met=true +case k8_large_and K=8 target 5000000 achieved 4981051 met=true +case k8_tiny_or K=8 target 50 achieved 0 met=false +case k8_medium_or K=8 target 100000 achieved 99996 met=true +case k8_large_or K=8 target 5000000 achieved 4988280 met=true +case k8_tiny_mixed K=8 target 50 achieved 935 met=false +case k8_medium_mixed K=8 target 100000 achieved 99047 met=true +case k8_large_mixed K=8 target 5000000 achieved 5001665 met=true +case k17_tiny_and K=17 target 50 achieved 467 met=false +case k17_medium_and K=17 target 100000 achieved 97561 met=true +case k17_large_and K=17 target 5000000 achieved 4998174 met=true +case k17_tiny_or K=17 target 50 achieved 0 met=false +case k17_medium_or K=17 target 100000 achieved 100002 met=true +case k17_large_or K=17 target 5000000 achieved 5051202 met=true +case k17_tiny_mixed K=17 target 50 achieved 467 met=false +case k17_medium_mixed K=17 target 100000 achieved 100925 met=true +case k17_large_mixed K=17 target 5000000 achieved 4982809 met=true +case k24_tiny_and K=24 target 50 achieved 472 met=false +case k24_medium_and K=24 target 100000 achieved 99057 met=true +case k24_large_and K=24 target 5000000 achieved 5020727 met=true +case k24_tiny_or K=24 target 50 achieved 0 met=false +case k24_medium_or K=24 target 100000 achieved 99996 met=true +case k24_large_or K=24 target 5000000 achieved 4956413 met=true +case k24_tiny_mixed K=24 target 50 achieved 470 met=false +case k24_medium_mixed K=24 target 100000 achieved 99512 met=true +case k24_large_mixed K=24 target 5000000 achieved 5004671 met=true +case adv_one_everything K=2 target 0 achieved 100002 met=- +case adv_one_nothing K=3 target 0 achieved 10002 met=- +case adv_or_one_everything K=2 target 0 achieved 10000000 met=- +case adv_or_one_nothing K=2 target 0 achieved 10000 met=- +case adv_16_nonselective K=16 target 0 achieved 8271472 met=- +case adv_16_collapse_one K=16 target 0 achieved 472 met=- +case adv_correlated_2 K=2 target 0 achieved 5000004 met=- +case adv_correlated_5 K=5 target 0 achieved 4900007 met=- +case adv_contradictory_2 K=2 target 0 achieved 0 met=- +case adv_contradictory_17 K=17 target 0 achieved 0 met=- +case null_and K=2 target 0 achieved 999196 met=- +case null_not K=1 target 0 achieved 4499990 met=- +case null_or K=2 target 0 achieved 1900011 met=- +case null_not_and K=2 target 0 achieved 8500703 met=- +case null_and_5 K=5 target 0 achieved 2674492 met=- +generated 54 cases in 107.55 s +FAILED-GATE n=10000000 case=k1_tiny_single variant=plain count warm 1688.3 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=plain any warm 1709.1 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=plain rows warm 1759.2 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=fused count warm 1689.8 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=fused any warm 1664.0 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=fused rows warm 1725.5 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=skip count warm 1717.8 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=skip any warm 1676.6 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=skip rows warm 1707.7 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=skip_fused count warm 1710.5 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=skip_fused any warm 1882.5 us +FAILED-GATE n=10000000 case=k1_tiny_single variant=skip_fused rows warm 1819.1 us +measured k1_tiny_single K=1 achieved 0 lower plain 0.096 fused 0.107 us, best count plain = 1688.30 us +FAILED-GATE n=10000000 case=k1_medium_single variant=plain count warm 1684.3 us +FAILED-GATE n=10000000 case=k1_medium_single variant=plain any warm 1970.7 us +FAILED-GATE n=10000000 case=k1_medium_single variant=plain rows warm 1751.8 us +FAILED-GATE n=10000000 case=k1_medium_single variant=fused count warm 1686.3 us +FAILED-GATE n=10000000 case=k1_medium_single variant=fused any warm 1700.3 us +FAILED-GATE n=10000000 case=k1_medium_single variant=fused rows warm 1824.8 us +FAILED-GATE n=10000000 case=k1_medium_single variant=skip count warm 1833.4 us +FAILED-GATE n=10000000 case=k1_medium_single variant=skip any warm 1855.2 us +FAILED-GATE n=10000000 case=k1_medium_single variant=skip rows warm 1792.8 us +FAILED-GATE n=10000000 case=k1_medium_single variant=skip_fused count warm 1760.2 us +FAILED-GATE n=10000000 case=k1_medium_single variant=skip_fused any warm 1833.3 us +FAILED-GATE n=10000000 case=k1_medium_single variant=skip_fused rows warm 1849.0 us +measured k1_medium_single K=1 achieved 100002 lower plain 0.096 fused 0.108 us, best count plain = 1684.30 us +FAILED-GATE n=10000000 case=k1_large_single variant=plain count warm 1799.7 us +FAILED-GATE n=10000000 case=k1_large_single variant=plain any warm 1808.5 us +FAILED-GATE n=10000000 case=k1_large_single variant=plain rows warm 1862.7 us +FAILED-GATE n=10000000 case=k1_large_single variant=fused count warm 1832.7 us +FAILED-GATE n=10000000 case=k1_large_single variant=fused any warm 1749.7 us +FAILED-GATE n=10000000 case=k1_large_single variant=fused rows warm 1786.3 us +FAILED-GATE n=10000000 case=k1_large_single variant=skip count warm 1748.9 us +FAILED-GATE n=10000000 case=k1_large_single variant=skip any warm 1747.3 us +FAILED-GATE n=10000000 case=k1_large_single variant=skip rows warm 1815.5 us +FAILED-GATE n=10000000 case=k1_large_single variant=skip_fused count warm 1821.7 us +FAILED-GATE n=10000000 case=k1_large_single variant=skip_fused any warm 1749.9 us +FAILED-GATE n=10000000 case=k1_large_single variant=skip_fused rows warm 1759.2 us +measured k1_large_single K=1 achieved 5000008 lower plain 0.090 fused 0.101 us, best count skip = 1748.86 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=plain count warm 6340.3 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=plain any warm 7086.6 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=plain rows warm 7859.9 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=fused count warm 7292.5 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=fused any warm 6416.1 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=fused rows warm 5596.8 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=skip count warm 6483.8 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=skip any warm 6956.0 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=skip rows warm 6877.8 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=skip_fused count warm 5178.7 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=skip_fused any warm 5326.2 us +FAILED-GATE n=10000000 case=k3_tiny_and variant=skip_fused rows warm 5270.8 us +measured k3_tiny_and K=3 achieved 0 lower plain 0.283 fused 0.499 us, best count skip_fused = 5178.66 us +FAILED-GATE n=10000000 case=k3_medium_and variant=plain count warm 6321.0 us +FAILED-GATE n=10000000 case=k3_medium_and variant=plain any warm 6046.6 us +FAILED-GATE n=10000000 case=k3_medium_and variant=plain rows warm 7897.9 us +FAILED-GATE n=10000000 case=k3_medium_and variant=fused count warm 5419.4 us +FAILED-GATE n=10000000 case=k3_medium_and variant=fused any warm 5667.1 us +FAILED-GATE n=10000000 case=k3_medium_and variant=fused rows warm 5938.0 us +FAILED-GATE n=10000000 case=k3_medium_and variant=skip count warm 6616.3 us +FAILED-GATE n=10000000 case=k3_medium_and variant=skip any warm 7026.2 us +FAILED-GATE n=10000000 case=k3_medium_and variant=skip rows warm 7823.4 us +FAILED-GATE n=10000000 case=k3_medium_and variant=skip_fused count warm 5495.8 us +FAILED-GATE n=10000000 case=k3_medium_and variant=skip_fused any warm 5422.3 us +FAILED-GATE n=10000000 case=k3_medium_and variant=skip_fused rows warm 5255.3 us +measured k3_medium_and K=3 achieved 101386 lower plain 0.283 fused 0.498 us, best count fused = 5419.38 us +FAILED-GATE n=10000000 case=k3_large_and variant=plain count warm 6745.9 us +FAILED-GATE n=10000000 case=k3_large_and variant=plain any warm 7129.0 us +FAILED-GATE n=10000000 case=k3_large_and variant=plain rows warm 7100.4 us +FAILED-GATE n=10000000 case=k3_large_and variant=fused count warm 5718.5 us +FAILED-GATE n=10000000 case=k3_large_and variant=fused any warm 5541.9 us +FAILED-GATE n=10000000 case=k3_large_and variant=fused rows warm 5727.1 us +FAILED-GATE n=10000000 case=k3_large_and variant=skip count warm 6202.5 us +FAILED-GATE n=10000000 case=k3_large_and variant=skip any warm 6442.0 us +FAILED-GATE n=10000000 case=k3_large_and variant=skip rows warm 6955.0 us +FAILED-GATE n=10000000 case=k3_large_and variant=skip_fused count warm 5251.0 us +FAILED-GATE n=10000000 case=k3_large_and variant=skip_fused any warm 5352.5 us +FAILED-GATE n=10000000 case=k3_large_and variant=skip_fused rows warm 6234.3 us +measured k3_large_and K=3 achieved 4996187 lower plain 0.286 fused 0.501 us, best count skip_fused = 5251.01 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=plain count warm 6004.9 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=plain any warm 5665.7 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=plain rows warm 5720.2 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=fused count warm 5663.8 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=fused any warm 5755.9 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=fused rows warm 5892.8 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=skip count warm 5701.6 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=skip any warm 5499.0 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=skip rows warm 5215.8 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=skip_fused count warm 5334.0 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=skip_fused any warm 5699.2 us +FAILED-GATE n=10000000 case=k3_tiny_or variant=skip_fused rows warm 6344.6 us +measured k3_tiny_or K=3 achieved 0 lower plain 0.284 fused 0.590 us, best count skip_fused = 5333.99 us +FAILED-GATE n=10000000 case=k3_medium_or variant=plain count warm 5516.6 us +FAILED-GATE n=10000000 case=k3_medium_or variant=plain any warm 5670.7 us +FAILED-GATE n=10000000 case=k3_medium_or variant=plain rows warm 5909.0 us +FAILED-GATE n=10000000 case=k3_medium_or variant=fused count warm 5042.6 us +FAILED-GATE n=10000000 case=k3_medium_or variant=fused any warm 5064.9 us +FAILED-GATE n=10000000 case=k3_medium_or variant=fused rows warm 5126.4 us +FAILED-GATE n=10000000 case=k3_medium_or variant=skip count warm 5098.5 us +FAILED-GATE n=10000000 case=k3_medium_or variant=skip any warm 5323.8 us +FAILED-GATE n=10000000 case=k3_medium_or variant=skip rows warm 5390.4 us +FAILED-GATE n=10000000 case=k3_medium_or variant=skip_fused count warm 5634.7 us +FAILED-GATE n=10000000 case=k3_medium_or variant=skip_fused any warm 5565.2 us +FAILED-GATE n=10000000 case=k3_medium_or variant=skip_fused rows warm 5935.2 us +measured k3_medium_or K=3 achieved 100001 lower plain 0.285 fused 0.566 us, best count fused = 5042.59 us +FAILED-GATE n=10000000 case=k3_large_or variant=plain count warm 8708.8 us +FAILED-GATE n=10000000 case=k3_large_or variant=plain any warm 6530.5 us +FAILED-GATE n=10000000 case=k3_large_or variant=plain rows warm 9036.8 us +FAILED-GATE n=10000000 case=k3_large_or variant=fused count warm 6013.2 us +FAILED-GATE n=10000000 case=k3_large_or variant=fused any warm 5159.8 us +FAILED-GATE n=10000000 case=k3_large_or variant=fused rows warm 5780.3 us +FAILED-GATE n=10000000 case=k3_large_or variant=skip count warm 5115.4 us +FAILED-GATE n=10000000 case=k3_large_or variant=skip any warm 5444.2 us +FAILED-GATE n=10000000 case=k3_large_or variant=skip rows warm 5833.9 us +FAILED-GATE n=10000000 case=k3_large_or variant=skip_fused count warm 6047.6 us +FAILED-GATE n=10000000 case=k3_large_or variant=skip_fused any warm 6620.3 us +FAILED-GATE n=10000000 case=k3_large_or variant=skip_fused rows warm 5582.6 us +measured k3_large_or K=3 achieved 5006214 lower plain 0.284 fused 0.567 us, best count skip = 5115.43 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=plain count warm 5928.7 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=plain any warm 6274.1 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=plain rows warm 6046.1 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=fused count warm 5720.6 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=fused any warm 5952.3 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=fused rows warm 5525.2 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip count warm 8135.3 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip any warm 9777.0 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip rows warm 7338.2 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip_fused count warm 5430.3 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip_fused any warm 5656.4 us +FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip_fused rows warm 6157.9 us +measured k3_tiny_mixed K=3 achieved 0 lower plain 0.368 fused 0.655 us, best count skip_fused = 5430.33 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=plain count warm 5987.9 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=plain any warm 5768.4 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=plain rows warm 6144.8 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=fused count warm 6114.1 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=fused any warm 6041.4 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=fused rows warm 5627.6 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip count warm 9328.5 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip any warm 8676.2 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip rows warm 8673.1 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip_fused count warm 5937.1 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip_fused any warm 5703.2 us +FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip_fused rows warm 5487.3 us +measured k3_medium_mixed K=3 achieved 98184 lower plain 0.356 fused 0.633 us, best count skip_fused = 5937.11 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=plain count warm 5598.2 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=plain any warm 5622.8 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=plain rows warm 6067.3 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=fused count warm 5961.9 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=fused any warm 5757.5 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=fused rows warm 5708.8 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=skip count warm 6618.2 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=skip any warm 6245.6 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=skip rows warm 7954.0 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=skip_fused count warm 5676.9 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=skip_fused any warm 5345.6 us +FAILED-GATE n=10000000 case=k3_large_mixed variant=skip_fused rows warm 5390.8 us +measured k3_large_mixed K=3 achieved 4994319 lower plain 0.368 fused 0.655 us, best count plain = 5598.21 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=plain count warm 24039.1 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=plain any warm 22140.7 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=plain rows warm 24092.4 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=fused count warm 39899.6 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=fused any warm 37163.1 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=fused rows warm 36378.6 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=skip count warm 25557.5 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=skip any warm 25174.7 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=skip rows warm 25445.5 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=skip_fused count warm 37543.9 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=skip_fused any warm 36982.8 us +FAILED-GATE n=10000000 case=k8_tiny_and variant=skip_fused rows warm 36928.9 us +measured k8_tiny_and K=8 achieved 470 lower plain 0.738 fused 3.915 us, best count plain = 24039.09 us +FAILED-GATE n=10000000 case=k8_medium_and variant=plain count warm 47391.0 us +FAILED-GATE n=10000000 case=k8_medium_and variant=plain any warm 47533.9 us +FAILED-GATE n=10000000 case=k8_medium_and variant=plain rows warm 49247.8 us +FAILED-GATE n=10000000 case=k8_medium_and variant=fused count warm 36402.6 us +FAILED-GATE n=10000000 case=k8_medium_and variant=fused any warm 36781.7 us +FAILED-GATE n=10000000 case=k8_medium_and variant=fused rows warm 37327.5 us +FAILED-GATE n=10000000 case=k8_medium_and variant=skip count warm 48138.6 us +FAILED-GATE n=10000000 case=k8_medium_and variant=skip any warm 50830.9 us +FAILED-GATE n=10000000 case=k8_medium_and variant=skip rows warm 50536.3 us +FAILED-GATE n=10000000 case=k8_medium_and variant=skip_fused count warm 37278.7 us +FAILED-GATE n=10000000 case=k8_medium_and variant=skip_fused any warm 36642.3 us +FAILED-GATE n=10000000 case=k8_medium_and variant=skip_fused rows warm 38635.2 us +measured k8_medium_and K=8 achieved 100924 lower plain 0.512 fused 2.396 us, best count fused = 36402.56 us +FAILED-GATE n=10000000 case=k8_large_and variant=plain count warm 54317.5 us +FAILED-GATE n=10000000 case=k8_large_and variant=plain any warm 49803.4 us +FAILED-GATE n=10000000 case=k8_large_and variant=plain rows warm 52506.4 us +FAILED-GATE n=10000000 case=k8_large_and variant=fused count warm 36861.7 us +FAILED-GATE n=10000000 case=k8_large_and variant=fused any warm 36170.7 us +FAILED-GATE n=10000000 case=k8_large_and variant=fused rows warm 36718.5 us +FAILED-GATE n=10000000 case=k8_large_and variant=skip count warm 50435.6 us +FAILED-GATE n=10000000 case=k8_large_and variant=skip any warm 55576.0 us +FAILED-GATE n=10000000 case=k8_large_and variant=skip rows warm 52389.3 us +FAILED-GATE n=10000000 case=k8_large_and variant=skip_fused count warm 37287.1 us +FAILED-GATE n=10000000 case=k8_large_and variant=skip_fused any warm 39489.4 us +FAILED-GATE n=10000000 case=k8_large_and variant=skip_fused rows warm 40190.3 us +measured k8_large_and K=8 achieved 4981051 lower plain 0.520 fused 2.388 us, best count fused = 36861.67 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=plain count warm 36982.7 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=plain any warm 36412.7 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=plain rows warm 37027.6 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=fused count warm 37102.3 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=fused any warm 37117.4 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=fused rows warm 36805.6 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=skip count warm 36453.4 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=skip any warm 39482.9 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=skip rows warm 38088.9 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=skip_fused count warm 37250.3 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=skip_fused any warm 36962.1 us +FAILED-GATE n=10000000 case=k8_tiny_or variant=skip_fused rows warm 36664.2 us +measured k8_tiny_or K=8 achieved 0 lower plain 0.511 fused 2.607 us, best count skip = 36453.41 us +FAILED-GATE n=10000000 case=k8_medium_or variant=plain count warm 37405.8 us +FAILED-GATE n=10000000 case=k8_medium_or variant=plain any warm 38979.8 us +FAILED-GATE n=10000000 case=k8_medium_or variant=plain rows warm 39449.6 us +FAILED-GATE n=10000000 case=k8_medium_or variant=fused count warm 38106.9 us +FAILED-GATE n=10000000 case=k8_medium_or variant=fused any warm 36474.3 us +FAILED-GATE n=10000000 case=k8_medium_or variant=fused rows warm 37855.4 us +FAILED-GATE n=10000000 case=k8_medium_or variant=skip count warm 38150.9 us +FAILED-GATE n=10000000 case=k8_medium_or variant=skip any warm 38858.5 us +FAILED-GATE n=10000000 case=k8_medium_or variant=skip rows warm 37010.6 us +FAILED-GATE n=10000000 case=k8_medium_or variant=skip_fused count warm 36492.9 us +FAILED-GATE n=10000000 case=k8_medium_or variant=skip_fused any warm 36093.6 us +FAILED-GATE n=10000000 case=k8_medium_or variant=skip_fused rows warm 36554.4 us +measured k8_medium_or K=8 achieved 99996 lower plain 0.511 fused 2.629 us, best count skip_fused = 36492.95 us +FAILED-GATE n=10000000 case=k8_large_or variant=plain count warm 36812.0 us +FAILED-GATE n=10000000 case=k8_large_or variant=plain any warm 36750.4 us +FAILED-GATE n=10000000 case=k8_large_or variant=plain rows warm 36270.9 us +FAILED-GATE n=10000000 case=k8_large_or variant=fused count warm 35830.7 us +FAILED-GATE n=10000000 case=k8_large_or variant=fused any warm 35629.5 us +FAILED-GATE n=10000000 case=k8_large_or variant=fused rows warm 36135.2 us +FAILED-GATE n=10000000 case=k8_large_or variant=skip count warm 39602.8 us +FAILED-GATE n=10000000 case=k8_large_or variant=skip any warm 36305.3 us +FAILED-GATE n=10000000 case=k8_large_or variant=skip rows warm 37713.7 us +FAILED-GATE n=10000000 case=k8_large_or variant=skip_fused count warm 37956.4 us +FAILED-GATE n=10000000 case=k8_large_or variant=skip_fused any warm 36540.3 us +FAILED-GATE n=10000000 case=k8_large_or variant=skip_fused rows warm 37173.6 us +measured k8_large_or K=8 achieved 4988280 lower plain 0.509 fused 2.649 us, best count fused = 35830.66 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=plain count warm 40505.7 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=plain any warm 38387.4 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=plain rows warm 37997.5 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=fused count warm 36491.6 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=fused any warm 37142.3 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=fused rows warm 39076.1 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip count warm 38260.8 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip any warm 37811.0 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip rows warm 38791.9 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip_fused count warm 37973.9 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip_fused any warm 39645.6 us +FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip_fused rows warm 37749.2 us +measured k8_tiny_mixed K=8 achieved 935 lower plain 0.884 fused 2.644 us, best count fused = 36491.56 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=plain count warm 49326.2 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=plain any warm 50915.7 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=plain rows warm 48613.8 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=fused count warm 37299.6 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=fused any warm 37822.5 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=fused rows warm 38002.4 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip count warm 51830.5 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip any warm 48607.5 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip rows warm 47862.6 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip_fused count warm 36740.6 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip_fused any warm 39731.9 us +FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip_fused rows warm 37476.0 us +measured k8_medium_mixed K=8 achieved 99047 lower plain 0.873 fused 2.663 us, best count skip_fused = 36740.59 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=plain count warm 50086.6 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=plain any warm 48321.2 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=plain rows warm 64264.2 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=fused count warm 53750.3 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=fused any warm 47112.3 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=fused rows warm 56540.9 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=skip count warm 64757.9 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=skip any warm 65552.6 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=skip rows warm 61927.9 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=skip_fused count warm 46483.4 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=skip_fused any warm 52329.9 us +FAILED-GATE n=10000000 case=k8_large_mixed variant=skip_fused rows warm 50481.7 us +measured k8_large_mixed K=8 achieved 5001665 lower plain 0.840 fused 2.555 us, best count skip_fused = 46483.36 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=plain count warm 103185.9 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=plain any warm 101385.7 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=plain rows warm 100279.1 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=fused count warm 76862.5 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=fused any warm 74427.4 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=fused rows warm 75155.7 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=skip count warm 100743.3 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=skip any warm 105356.6 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=skip rows warm 104722.6 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=skip_fused count warm 74264.2 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=skip_fused any warm 71629.8 us +FAILED-GATE n=10000000 case=k17_tiny_and variant=skip_fused rows warm 71875.5 us +measured k17_tiny_and K=17 achieved 467 lower plain 1.387 fused 18.718 us, best count skip_fused = 74264.18 us +FAILED-GATE n=10000000 case=k17_medium_and variant=plain count warm 97168.2 us +FAILED-GATE n=10000000 case=k17_medium_and variant=plain any warm 99032.9 us +FAILED-GATE n=10000000 case=k17_medium_and variant=plain rows warm 104324.4 us +FAILED-GATE n=10000000 case=k17_medium_and variant=fused count warm 79100.9 us +FAILED-GATE n=10000000 case=k17_medium_and variant=fused any warm 73776.2 us +FAILED-GATE n=10000000 case=k17_medium_and variant=fused rows warm 74798.9 us +FAILED-GATE n=10000000 case=k17_medium_and variant=skip count warm 102771.7 us +FAILED-GATE n=10000000 case=k17_medium_and variant=skip any warm 99400.7 us +FAILED-GATE n=10000000 case=k17_medium_and variant=skip rows warm 96801.4 us +FAILED-GATE n=10000000 case=k17_medium_and variant=skip_fused count warm 73592.4 us +FAILED-GATE n=10000000 case=k17_medium_and variant=skip_fused any warm 75664.5 us +FAILED-GATE n=10000000 case=k17_medium_and variant=skip_fused rows warm 82645.8 us +measured k17_medium_and K=17 achieved 97561 lower plain 1.057 fused 7.595 us, best count skip_fused = 73592.43 us +FAILED-GATE n=10000000 case=k17_large_and variant=plain count warm 104394.3 us +FAILED-GATE n=10000000 case=k17_large_and variant=plain any warm 119456.8 us +FAILED-GATE n=10000000 case=k17_large_and variant=plain rows warm 115958.5 us +FAILED-GATE n=10000000 case=k17_large_and variant=fused count warm 75036.1 us +FAILED-GATE n=10000000 case=k17_large_and variant=fused any warm 73588.6 us +FAILED-GATE n=10000000 case=k17_large_and variant=fused rows warm 74003.9 us +FAILED-GATE n=10000000 case=k17_large_and variant=skip count warm 103585.8 us +FAILED-GATE n=10000000 case=k17_large_and variant=skip any warm 111179.7 us +FAILED-GATE n=10000000 case=k17_large_and variant=skip rows warm 107186.7 us +FAILED-GATE n=10000000 case=k17_large_and variant=skip_fused count warm 74987.7 us +FAILED-GATE n=10000000 case=k17_large_and variant=skip_fused any warm 76251.7 us +FAILED-GATE n=10000000 case=k17_large_and variant=skip_fused rows warm 77455.0 us +measured k17_large_and K=17 achieved 4998174 lower plain 1.642 fused 11.694 us, best count skip_fused = 74987.65 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=plain count warm 75762.4 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=plain any warm 74831.3 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=plain rows warm 76992.4 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=fused count warm 79048.4 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=fused any warm 81795.7 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=fused rows warm 82459.6 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=skip count warm 77341.4 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=skip any warm 86855.6 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=skip rows warm 79884.1 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=skip_fused count warm 74191.9 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=skip_fused any warm 73149.9 us +FAILED-GATE n=10000000 case=k17_tiny_or variant=skip_fused rows warm 76023.9 us +measured k17_tiny_or K=17 achieved 0 lower plain 1.041 fused 8.036 us, best count skip_fused = 74191.90 us +FAILED-GATE n=10000000 case=k17_medium_or variant=plain count warm 79434.4 us +FAILED-GATE n=10000000 case=k17_medium_or variant=plain any warm 75765.8 us +FAILED-GATE n=10000000 case=k17_medium_or variant=plain rows warm 73661.7 us +FAILED-GATE n=10000000 case=k17_medium_or variant=fused count warm 73765.0 us +FAILED-GATE n=10000000 case=k17_medium_or variant=fused any warm 76878.0 us +FAILED-GATE n=10000000 case=k17_medium_or variant=fused rows warm 75717.7 us +FAILED-GATE n=10000000 case=k17_medium_or variant=skip count warm 79581.7 us +FAILED-GATE n=10000000 case=k17_medium_or variant=skip any warm 75681.1 us +FAILED-GATE n=10000000 case=k17_medium_or variant=skip rows warm 73443.5 us +FAILED-GATE n=10000000 case=k17_medium_or variant=skip_fused count warm 73705.7 us +FAILED-GATE n=10000000 case=k17_medium_or variant=skip_fused any warm 73464.6 us +FAILED-GATE n=10000000 case=k17_medium_or variant=skip_fused rows warm 79902.0 us +measured k17_medium_or K=17 achieved 100002 lower plain 1.686 fused 12.853 us, best count skip_fused = 73705.66 us +FAILED-GATE n=10000000 case=k17_large_or variant=plain count warm 76605.0 us +FAILED-GATE n=10000000 case=k17_large_or variant=plain any warm 79808.5 us +FAILED-GATE n=10000000 case=k17_large_or variant=plain rows warm 77189.2 us +FAILED-GATE n=10000000 case=k17_large_or variant=fused count warm 76236.6 us +FAILED-GATE n=10000000 case=k17_large_or variant=fused any warm 78224.2 us +FAILED-GATE n=10000000 case=k17_large_or variant=fused rows warm 78134.0 us +FAILED-GATE n=10000000 case=k17_large_or variant=skip count warm 80711.4 us +FAILED-GATE n=10000000 case=k17_large_or variant=skip any warm 76449.7 us +FAILED-GATE n=10000000 case=k17_large_or variant=skip rows warm 76371.5 us +FAILED-GATE n=10000000 case=k17_large_or variant=skip_fused count warm 72316.1 us +FAILED-GATE n=10000000 case=k17_large_or variant=skip_fused any warm 71382.2 us +FAILED-GATE n=10000000 case=k17_large_or variant=skip_fused rows warm 81167.1 us +measured k17_large_or K=17 achieved 5051202 lower plain 1.006 fused 7.856 us, best count skip_fused = 72316.14 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=plain count warm 98416.0 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=plain any warm 99039.4 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=plain rows warm 100113.3 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=fused count warm 76888.7 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=fused any warm 78963.2 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=fused rows warm 77562.4 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip count warm 41805.2 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip any warm 48830.1 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip rows warm 43736.1 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip_fused count warm 90323.0 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip_fused any warm 77447.6 us +FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip_fused rows warm 80227.5 us +measured k17_tiny_mixed K=17 achieved 467 lower plain 1.887 fused 6.911 us, best count skip = 41805.20 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=plain count warm 114968.1 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=plain any warm 107467.1 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=plain rows warm 108564.1 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=fused count warm 83106.9 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=fused any warm 77523.7 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=fused rows warm 73476.4 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip count warm 102476.6 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip any warm 100933.0 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip rows warm 105331.6 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip_fused count warm 73473.0 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip_fused any warm 78242.0 us +FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip_fused rows warm 83451.6 us +measured k17_medium_mixed K=17 achieved 100925 lower plain 2.757 fused 10.564 us, best count skip_fused = 73473.00 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=plain count warm 107093.0 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=plain any warm 105667.8 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=plain rows warm 111345.9 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=fused count warm 74632.9 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=fused any warm 94747.0 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=fused rows warm 77808.7 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=skip count warm 119365.9 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=skip any warm 103544.8 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=skip rows warm 103497.7 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=skip_fused count warm 75020.1 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=skip_fused any warm 76445.0 us +FAILED-GATE n=10000000 case=k17_large_mixed variant=skip_fused rows warm 75979.7 us +measured k17_large_mixed K=17 achieved 4982809 lower plain 2.957 fused 11.567 us, best count fused = 74632.92 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=plain count warm 119053.7 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=plain any warm 119331.6 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=plain rows warm 112533.3 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=fused count warm 93763.9 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=fused any warm 98722.9 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=fused rows warm 88694.3 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=skip count warm 106022.6 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=skip any warm 113690.8 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=skip rows warm 123109.1 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=skip_fused count warm 96570.3 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=skip_fused any warm 91951.2 us +FAILED-GATE n=10000000 case=k24_tiny_and variant=skip_fused rows warm 90544.2 us +measured k24_tiny_and K=24 achieved 472 lower plain 1.420 fused 15.610 us, best count fused = 93763.94 us +FAILED-GATE n=10000000 case=k24_medium_and variant=plain count warm 135670.2 us +FAILED-GATE n=10000000 case=k24_medium_and variant=plain any warm 123678.8 us +FAILED-GATE n=10000000 case=k24_medium_and variant=plain rows warm 127720.7 us +FAILED-GATE n=10000000 case=k24_medium_and variant=fused count warm 89354.6 us +FAILED-GATE n=10000000 case=k24_medium_and variant=fused any warm 100287.7 us +FAILED-GATE n=10000000 case=k24_medium_and variant=fused rows warm 96070.1 us +FAILED-GATE n=10000000 case=k24_medium_and variant=skip count warm 120959.9 us +FAILED-GATE n=10000000 case=k24_medium_and variant=skip any warm 133711.1 us +FAILED-GATE n=10000000 case=k24_medium_and variant=skip rows warm 140643.7 us +FAILED-GATE n=10000000 case=k24_medium_and variant=skip_fused count warm 114852.4 us +FAILED-GATE n=10000000 case=k24_medium_and variant=skip_fused any warm 101101.0 us +FAILED-GATE n=10000000 case=k24_medium_and variant=skip_fused rows warm 95396.5 us +measured k24_medium_and K=24 achieved 99057 lower plain 1.898 fused 15.703 us, best count fused = 89354.55 us +FAILED-GATE n=10000000 case=k24_large_and variant=plain count warm 143182.2 us +FAILED-GATE n=10000000 case=k24_large_and variant=plain any warm 126378.2 us +FAILED-GATE n=10000000 case=k24_large_and variant=plain rows warm 122060.7 us +FAILED-GATE n=10000000 case=k24_large_and variant=fused count warm 86026.9 us +FAILED-GATE n=10000000 case=k24_large_and variant=fused any warm 85642.2 us +FAILED-GATE n=10000000 case=k24_large_and variant=fused rows warm 91331.0 us +FAILED-GATE n=10000000 case=k24_large_and variant=skip count warm 124567.5 us +FAILED-GATE n=10000000 case=k24_large_and variant=skip any warm 127668.5 us +FAILED-GATE n=10000000 case=k24_large_and variant=skip rows warm 123671.5 us +FAILED-GATE n=10000000 case=k24_large_and variant=skip_fused count warm 90414.2 us +FAILED-GATE n=10000000 case=k24_large_and variant=skip_fused any warm 87802.3 us +FAILED-GATE n=10000000 case=k24_large_and variant=skip_fused rows warm 90768.2 us +measured k24_large_and K=24 achieved 5020727 lower plain 2.100 fused 24.457 us, best count fused = 86026.94 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=plain count warm 88091.3 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=plain any warm 90924.0 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=plain rows warm 92582.7 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=fused count warm 94057.4 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=fused any warm 91883.6 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=fused rows warm 90129.3 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=skip count warm 89024.3 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=skip any warm 90998.4 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=skip rows warm 87911.4 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=skip_fused count warm 98203.9 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=skip_fused any warm 87496.3 us +FAILED-GATE n=10000000 case=k24_tiny_or variant=skip_fused rows warm 98608.2 us +measured k24_tiny_or K=24 achieved 0 lower plain 1.461 fused 16.603 us, best count plain = 88091.35 us +FAILED-GATE n=10000000 case=k24_medium_or variant=plain count warm 92045.6 us +FAILED-GATE n=10000000 case=k24_medium_or variant=plain any warm 87348.0 us +FAILED-GATE n=10000000 case=k24_medium_or variant=plain rows warm 92022.7 us +FAILED-GATE n=10000000 case=k24_medium_or variant=fused count warm 110723.2 us +FAILED-GATE n=10000000 case=k24_medium_or variant=fused any warm 86339.9 us +FAILED-GATE n=10000000 case=k24_medium_or variant=fused rows warm 88804.6 us +FAILED-GATE n=10000000 case=k24_medium_or variant=skip count warm 90460.6 us +FAILED-GATE n=10000000 case=k24_medium_or variant=skip any warm 92867.0 us +FAILED-GATE n=10000000 case=k24_medium_or variant=skip rows warm 89056.7 us +FAILED-GATE n=10000000 case=k24_medium_or variant=skip_fused count warm 92488.2 us +FAILED-GATE n=10000000 case=k24_medium_or variant=skip_fused any warm 95329.2 us +FAILED-GATE n=10000000 case=k24_medium_or variant=skip_fused rows warm 97694.1 us +measured k24_medium_or K=24 achieved 99996 lower plain 1.452 fused 16.548 us, best count skip = 90460.61 us +FAILED-GATE n=10000000 case=k24_large_or variant=plain count warm 90258.5 us +FAILED-GATE n=10000000 case=k24_large_or variant=plain any warm 87843.6 us +FAILED-GATE n=10000000 case=k24_large_or variant=plain rows warm 88561.5 us +FAILED-GATE n=10000000 case=k24_large_or variant=fused count warm 90960.6 us +FAILED-GATE n=10000000 case=k24_large_or variant=fused any warm 90959.9 us +FAILED-GATE n=10000000 case=k24_large_or variant=fused rows warm 86445.5 us +FAILED-GATE n=10000000 case=k24_large_or variant=skip count warm 89297.0 us +FAILED-GATE n=10000000 case=k24_large_or variant=skip any warm 86766.6 us +FAILED-GATE n=10000000 case=k24_large_or variant=skip rows warm 99855.8 us +FAILED-GATE n=10000000 case=k24_large_or variant=skip_fused count warm 103195.6 us +FAILED-GATE n=10000000 case=k24_large_or variant=skip_fused any warm 115924.2 us +FAILED-GATE n=10000000 case=k24_large_or variant=skip_fused rows warm 119111.5 us +measured k24_large_or K=24 achieved 4956413 lower plain 2.260 fused 25.333 us, best count skip = 89296.99 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=plain count warm 126336.6 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=plain any warm 125424.3 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=plain rows warm 116477.5 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=fused count warm 90773.9 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=fused any warm 90343.5 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=fused rows warm 88104.2 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip count warm 113814.8 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip any warm 127055.2 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip rows warm 140897.4 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip_fused count warm 94299.2 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip_fused any warm 92838.0 us +FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip_fused rows warm 93242.7 us +measured k24_tiny_mixed K=24 achieved 470 lower plain 3.567 fused 16.524 us, best count fused = 90773.89 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=plain count warm 122003.0 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=plain any warm 119026.6 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=plain rows warm 132335.5 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=fused count warm 89640.1 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=fused any warm 84966.5 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=fused rows warm 98574.2 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip count warm 136404.0 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip any warm 120942.5 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip rows warm 126367.3 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip_fused count warm 94532.8 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip_fused any warm 95272.1 us +FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip_fused rows warm 86376.5 us +measured k24_medium_mixed K=24 achieved 99512 lower plain 2.600 fused 11.117 us, best count fused = 89640.12 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=plain count warm 128187.1 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=plain any warm 122442.3 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=plain rows warm 120999.9 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=fused count warm 85767.4 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=fused any warm 85184.7 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=fused rows warm 85509.0 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=skip count warm 124834.2 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=skip any warm 150774.4 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=skip rows warm 136635.1 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=skip_fused count warm 89718.2 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=skip_fused any warm 96651.3 us +FAILED-GATE n=10000000 case=k24_large_mixed variant=skip_fused rows warm 93110.9 us +measured k24_large_mixed K=24 achieved 5004671 lower plain 2.580 fused 11.122 us, best count fused = 85767.43 us +FAILED-GATE n=10000000 case=adv_one_everything variant=plain count warm 13021.7 us +FAILED-GATE n=10000000 case=adv_one_everything variant=plain any warm 4107.5 us +FAILED-GATE n=10000000 case=adv_one_everything variant=plain rows warm 4521.5 us +FAILED-GATE n=10000000 case=adv_one_everything variant=fused count warm 3704.0 us +FAILED-GATE n=10000000 case=adv_one_everything variant=fused any warm 3578.4 us +FAILED-GATE n=10000000 case=adv_one_everything variant=fused rows warm 3699.6 us +FAILED-GATE n=10000000 case=adv_one_everything variant=skip count warm 4263.4 us +FAILED-GATE n=10000000 case=adv_one_everything variant=skip any warm 4363.3 us +FAILED-GATE n=10000000 case=adv_one_everything variant=skip rows warm 3374.6 us +FAILED-GATE n=10000000 case=adv_one_everything variant=skip_fused count warm 3643.2 us +FAILED-GATE n=10000000 case=adv_one_everything variant=skip_fused any warm 3536.2 us +FAILED-GATE n=10000000 case=adv_one_everything variant=skip_fused rows warm 3842.7 us +measured adv_one_everything K=2 achieved 100002 lower plain 0.284 fused 0.634 us, best count skip_fused = 3643.24 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=plain count warm 3250.0 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=plain any warm 4084.9 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=plain rows warm 2999.3 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=fused count warm 10956.3 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=fused any warm 9288.7 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=fused rows warm 9282.6 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=skip count warm 2803.7 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=skip any warm 4055.7 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=skip rows warm 2853.7 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=skip_fused count warm 7684.3 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=skip_fused any warm 6675.6 us +FAILED-GATE n=10000000 case=adv_one_nothing variant=skip_fused rows warm 8523.0 us +measured adv_one_nothing K=3 achieved 10002 lower plain 0.397 fused 0.787 us, best count skip = 2803.72 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=plain count warm 3585.9 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=plain any warm 3483.9 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=plain rows warm 3525.1 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=fused count warm 3591.6 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=fused any warm 3519.4 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=fused rows warm 3569.8 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip count warm 3465.4 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip any warm 3510.3 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip rows warm 3498.3 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip_fused count warm 3479.8 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip_fused any warm 3458.5 us +FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip_fused rows warm 3461.7 us +measured adv_or_one_everything K=2 achieved 10000000 lower plain 0.207 fused 0.394 us, best count skip = 3465.39 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=plain count warm 3468.9 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=plain any warm 3610.1 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=plain rows warm 3595.3 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=fused count warm 3505.3 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=fused any warm 3475.6 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=fused rows warm 3935.8 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip count warm 3429.9 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip any warm 3499.2 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip rows warm 4560.5 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip_fused count warm 4531.1 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip_fused any warm 3522.6 us +FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip_fused rows warm 3616.5 us +measured adv_or_one_nothing K=2 achieved 10000 lower plain 0.210 fused 0.400 us, best count skip = 3429.93 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=plain count warm 117693.3 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=plain any warm 112288.5 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=plain rows warm 107928.7 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=fused count warm 72430.2 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=fused any warm 76745.6 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=fused rows warm 82753.7 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip count warm 104896.3 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip any warm 99535.8 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip rows warm 105721.9 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip_fused count warm 73045.8 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip_fused any warm 71969.7 us +FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip_fused rows warm 70735.1 us +measured adv_16_nonselective K=16 achieved 8271472 lower plain 0.965 fused 6.735 us, best count fused = 72430.22 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=plain count warm 19888.7 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=plain any warm 20468.5 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=plain rows warm 20370.5 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=fused count warm 74652.7 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=fused any warm 71789.2 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=fused rows warm 74788.3 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip count warm 21780.5 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip any warm 23239.7 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip rows warm 21942.5 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip_fused count warm 73524.1 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip_fused any warm 82288.2 us +FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip_fused rows warm 84159.4 us +measured adv_16_collapse_one K=16 achieved 472 lower plain 0.972 fused 6.640 us, best count plain = 19888.75 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=plain count warm 10480.7 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=plain any warm 5989.2 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=plain rows warm 4172.9 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=fused count warm 3531.9 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=fused any warm 3495.6 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=fused rows warm 3639.5 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip count warm 3994.7 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip any warm 4053.9 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip rows warm 4773.2 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip_fused count warm 3632.2 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip_fused any warm 3574.0 us +FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip_fused rows warm 3595.0 us +measured adv_correlated_2 K=2 achieved 5000004 lower plain 0.216 fused 0.373 us, best count fused = 3531.89 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=plain count warm 15799.6 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=plain any warm 17284.3 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=plain rows warm 16729.2 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=fused count warm 12279.7 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=fused any warm 16349.8 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=fused rows warm 16336.8 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip count warm 21425.6 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip any warm 21167.1 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip rows warm 22286.5 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip_fused count warm 12771.9 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip_fused any warm 13044.9 us +FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip_fused rows warm 12683.7 us +measured adv_correlated_5 K=5 achieved 4900007 lower plain 0.553 fused 1.151 us, best count fused = 12279.65 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=plain count warm 5706.5 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=plain any warm 5478.8 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=plain rows warm 4333.6 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=fused count warm 3628.9 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=fused any warm 3101.8 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=fused rows warm 2978.0 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip count warm 3275.2 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip any warm 3246.5 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip rows warm 3292.9 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip_fused count warm 2926.0 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip_fused any warm 2904.2 us +FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip_fused rows warm 2977.3 us +measured adv_contradictory_2 K=2 achieved 0 lower plain 0.215 fused 0.372 us, best count skip_fused = 2925.98 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=plain count warm 7505.2 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=plain any warm 8087.9 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=plain rows warm 15923.3 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=fused count warm 77129.3 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=fused any warm 77147.8 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=fused rows warm 73680.0 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip count warm 12875.5 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip any warm 14033.2 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip rows warm 14375.9 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip_fused count warm 83003.7 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip_fused any warm 94780.9 us +FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip_fused rows warm 76953.9 us +measured adv_contradictory_17 K=17 achieved 0 lower plain 1.058 fused 7.829 us, best count plain = 7505.22 us +FAILED-GATE n=10000000 case=null_and variant=plain count warm 13974.9 us +FAILED-GATE n=10000000 case=null_and variant=plain any warm 11996.5 us +FAILED-GATE n=10000000 case=null_and variant=plain rows warm 11437.0 us +FAILED-GATE n=10000000 case=null_and variant=fused count warm 11153.7 us +FAILED-GATE n=10000000 case=null_and variant=fused any warm 8191.3 us +FAILED-GATE n=10000000 case=null_and variant=fused rows warm 4810.2 us +FAILED-GATE n=10000000 case=null_and variant=skip count warm 5498.4 us +FAILED-GATE n=10000000 case=null_and variant=skip any warm 5726.6 us +FAILED-GATE n=10000000 case=null_and variant=skip rows warm 5295.4 us +FAILED-GATE n=10000000 case=null_and variant=skip_fused count warm 4670.4 us +FAILED-GATE n=10000000 case=null_and variant=skip_fused any warm 10825.3 us +FAILED-GATE n=10000000 case=null_and variant=skip_fused rows warm 11974.5 us +measured null_and K=2 achieved 999196 lower plain 0.317 fused 0.490 us, best count skip_fused = 4670.40 us +FAILED-GATE n=10000000 case=null_not variant=plain count warm 3566.9 us +FAILED-GATE n=10000000 case=null_not variant=plain any warm 3409.7 us +FAILED-GATE n=10000000 case=null_not variant=plain rows warm 3667.0 us +FAILED-GATE n=10000000 case=null_not variant=fused count warm 3524.0 us +FAILED-GATE n=10000000 case=null_not variant=fused any warm 3502.6 us +FAILED-GATE n=10000000 case=null_not variant=fused rows warm 3377.6 us +FAILED-GATE n=10000000 case=null_not variant=skip count warm 4116.5 us +FAILED-GATE n=10000000 case=null_not variant=skip any warm 2238.5 us +FAILED-GATE n=10000000 case=null_not variant=skip rows warm 2221.7 us +FAILED-GATE n=10000000 case=null_not variant=skip_fused count warm 2179.7 us +FAILED-GATE n=10000000 case=null_not variant=skip_fused any warm 2179.2 us +FAILED-GATE n=10000000 case=null_not variant=skip_fused rows warm 2553.8 us +measured null_not K=1 achieved 4499990 lower plain 0.375 fused 0.759 us, best count skip_fused = 2179.67 us +FAILED-GATE n=10000000 case=null_or variant=plain count warm 7063.6 us +FAILED-GATE n=10000000 case=null_or variant=plain any warm 4970.0 us +FAILED-GATE n=10000000 case=null_or variant=plain rows warm 6495.0 us +FAILED-GATE n=10000000 case=null_or variant=fused count warm 4957.3 us +FAILED-GATE n=10000000 case=null_or variant=fused any warm 4509.9 us +FAILED-GATE n=10000000 case=null_or variant=fused rows warm 7951.1 us +FAILED-GATE n=10000000 case=null_or variant=skip count warm 4684.8 us +FAILED-GATE n=10000000 case=null_or variant=skip any warm 7439.4 us +FAILED-GATE n=10000000 case=null_or variant=skip rows warm 4904.5 us +FAILED-GATE n=10000000 case=null_or variant=skip_fused count warm 6276.6 us +FAILED-GATE n=10000000 case=null_or variant=skip_fused any warm 4032.7 us +FAILED-GATE n=10000000 case=null_or variant=skip_fused rows warm 5698.6 us +measured null_or K=2 achieved 1900011 lower plain 0.319 fused 0.530 us, best count skip = 4684.79 us +FAILED-GATE n=10000000 case=null_not_and variant=plain count warm 8061.4 us +FAILED-GATE n=10000000 case=null_not_and variant=plain any warm 6900.7 us +FAILED-GATE n=10000000 case=null_not_and variant=plain rows warm 7951.0 us +FAILED-GATE n=10000000 case=null_not_and variant=fused count warm 3955.8 us +FAILED-GATE n=10000000 case=null_not_and variant=fused any warm 3971.0 us +FAILED-GATE n=10000000 case=null_not_and variant=fused rows warm 4159.1 us +FAILED-GATE n=10000000 case=null_not_and variant=skip count warm 4476.5 us +FAILED-GATE n=10000000 case=null_not_and variant=skip any warm 4378.0 us +FAILED-GATE n=10000000 case=null_not_and variant=skip rows warm 5079.8 us +FAILED-GATE n=10000000 case=null_not_and variant=skip_fused count warm 7299.7 us +FAILED-GATE n=10000000 case=null_not_and variant=skip_fused any warm 9938.5 us +FAILED-GATE n=10000000 case=null_not_and variant=skip_fused rows warm 12735.1 us +measured null_not_and K=2 achieved 8500703 lower plain 0.442 fused 0.872 us, best count fused = 3955.83 us +FAILED-GATE n=10000000 case=null_and_5 variant=plain count warm 28629.1 us +FAILED-GATE n=10000000 case=null_and_5 variant=plain any warm 28868.2 us +FAILED-GATE n=10000000 case=null_and_5 variant=plain rows warm 28619.7 us +FAILED-GATE n=10000000 case=null_and_5 variant=fused count warm 21901.5 us +FAILED-GATE n=10000000 case=null_and_5 variant=fused any warm 22263.4 us +FAILED-GATE n=10000000 case=null_and_5 variant=fused rows warm 22509.1 us +FAILED-GATE n=10000000 case=null_and_5 variant=skip count warm 26032.9 us +FAILED-GATE n=10000000 case=null_and_5 variant=skip any warm 26315.6 us +FAILED-GATE n=10000000 case=null_and_5 variant=skip rows warm 26524.1 us +FAILED-GATE n=10000000 case=null_and_5 variant=skip_fused count warm 22175.2 us +FAILED-GATE n=10000000 case=null_and_5 variant=skip_fused any warm 22161.4 us +FAILED-GATE n=10000000 case=null_and_5 variant=skip_fused rows warm 22731.5 us +measured null_and_5 K=5 achieved 2674492 lower plain 0.924 fused 2.126 us, best count fused = 21901.48 us +N=10000000: 648 FAILED-GATE values (warm >= 1000 us, reported), 0 mismatches +WHERE-K ALL ANSWERS MATCH THE ORACLE +rc=0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log new file mode 100644 index 000000000..61cdcc0b0 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log @@ -0,0 +1,470 @@ +== N = 1000000 == +columns built in 0.12 s (16 x i32 lanes + validity plane) +case k1_tiny_single K=1 target 50 achieved 1000 met=false +case k1_medium_single K=1 target 10000 achieved 10000 met=true +case k1_large_single K=1 target 500000 achieved 500005 met=true +case k3_tiny_and K=3 target 50 achieved 765 met=false +case k3_medium_and K=3 target 10000 achieved 10139 met=true +case k3_large_and K=3 target 500000 achieved 499628 met=true +case k3_tiny_or K=3 target 50 achieved 999 met=false +case k3_medium_or K=3 target 10000 achieved 10000 met=true +case k3_large_or K=3 target 500000 achieved 500615 met=true +case k3_tiny_mixed K=3 target 50 achieved 428 met=false +case k3_medium_mixed K=3 target 10000 achieved 9819 met=true +case k3_large_mixed K=3 target 500000 achieved 499424 met=true +case k8_tiny_and K=8 target 50 achieved 46 met=true +case k8_medium_and K=8 target 10000 achieved 10097 met=true +case k8_large_and K=8 target 500000 achieved 498124 met=true +case k8_tiny_or K=8 target 50 achieved 999 met=false +case k8_medium_or K=8 target 10000 achieved 9997 met=true +case k8_large_or K=8 target 500000 achieved 498831 met=true +case k8_tiny_mixed K=8 target 50 achieved 91 met=true +case k8_medium_mixed K=8 target 10000 achieved 9901 met=true +case k8_large_mixed K=8 target 500000 achieved 500157 met=true +case k17_tiny_and K=17 target 50 achieved 45 met=true +case k17_medium_and K=17 target 10000 achieved 9754 met=true +case k17_large_and K=17 target 500000 achieved 499819 met=true +case k17_tiny_or K=17 target 50 achieved 1000 met=false +case k17_medium_or K=17 target 10000 achieved 10000 met=true +case k17_large_or K=17 target 500000 achieved 505114 met=true +case k17_tiny_mixed K=17 target 50 achieved 46 met=true +case k17_medium_mixed K=17 target 10000 achieved 10098 met=true +case k17_large_mixed K=17 target 500000 achieved 498269 met=true +case k24_tiny_and K=24 target 50 achieved 50 met=true +case k24_medium_and K=24 target 10000 achieved 9900 met=true +case k24_large_and K=24 target 500000 achieved 502071 met=true +case k24_tiny_or K=24 target 50 achieved 1001 met=false +case k24_medium_or K=24 target 10000 achieved 9995 met=true +case k24_large_or K=24 target 500000 achieved 495651 met=true +case k24_tiny_mixed K=24 target 50 achieved 48 met=true +case k24_medium_mixed K=24 target 10000 achieved 9953 met=true +case k24_large_mixed K=24 target 500000 achieved 500471 met=true +case adv_one_everything K=2 target 0 achieved 10000 met=- +case adv_one_nothing K=3 target 0 achieved 1002 met=- +case adv_or_one_everything K=2 target 0 achieved 1000000 met=- +case adv_or_one_nothing K=2 target 0 achieved 1000 met=- +case adv_16_nonselective K=16 target 0 achieved 827152 met=- +case adv_16_collapse_one K=16 target 0 achieved 46 met=- +case adv_correlated_2 K=2 target 0 achieved 500001 met=- +case adv_correlated_5 K=5 target 0 achieved 490001 met=- +case adv_contradictory_2 K=2 target 0 achieved 0 met=- +case adv_contradictory_17 K=17 target 0 achieved 0 met=- +case null_and K=2 target 0 achieved 99875 met=- +case null_not K=1 target 0 achieved 450007 met=- +case null_or K=2 target 0 achieved 190006 met=- +case null_not_and K=2 target 0 achieved 850017 met=- +case null_and_5 K=5 target 0 achieved 267454 met=- +generated 54 cases in 5.97 s +measured k1_tiny_single K=1 achieved 1000 lower plain 0.096 fused 0.109 us, best count skip_fused = 140.59 us +measured k1_medium_single K=1 achieved 10000 lower plain 0.103 fused 0.108 us, best count skip = 138.57 us +measured k1_large_single K=1 achieved 500005 lower plain 0.095 fused 0.108 us, best count plain = 140.49 us +measured k3_tiny_and K=3 achieved 765 lower plain 0.284 fused 0.509 us, best count skip_fused = 567.79 us +measured k3_medium_and K=3 achieved 10139 lower plain 0.339 fused 0.694 us, best count skip_fused = 528.71 us +measured k3_large_and K=3 achieved 499628 lower plain 0.399 fused 0.853 us, best count fused = 531.40 us +measured k3_tiny_or K=3 achieved 999 lower plain 0.278 fused 0.568 us, best count plain = 582.33 us +measured k3_medium_or K=3 achieved 10000 lower plain 0.279 fused 0.563 us, best count skip_fused = 557.82 us +measured k3_large_or K=3 achieved 500615 lower plain 0.281 fused 0.566 us, best count skip = 529.72 us +measured k3_tiny_mixed K=3 achieved 428 lower plain 0.368 fused 0.652 us, best count skip_fused = 547.41 us +measured k3_medium_mixed K=3 achieved 9819 lower plain 0.367 fused 0.651 us, best count skip_fused = 536.75 us +measured k3_large_mixed K=3 achieved 499424 lower plain 0.362 fused 0.645 us, best count skip_fused = 516.12 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=plain any warm 1384.3 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=plain rows warm 1372.4 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=fused count warm 1390.4 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=fused any warm 1382.6 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=fused rows warm 1412.0 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=skip_fused count warm 1368.4 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=skip_fused any warm 1374.5 us +FAILED-GATE n=1000000 case=k8_tiny_and variant=skip_fused rows warm 1372.1 us +measured k8_tiny_and K=8 achieved 46 lower plain 0.526 fused 2.341 us, best count plain = 959.38 us +FAILED-GATE n=1000000 case=k8_medium_and variant=plain count warm 1584.0 us +FAILED-GATE n=1000000 case=k8_medium_and variant=plain any warm 1607.7 us +FAILED-GATE n=1000000 case=k8_medium_and variant=plain rows warm 1617.7 us +FAILED-GATE n=1000000 case=k8_medium_and variant=fused count warm 1362.3 us +FAILED-GATE n=1000000 case=k8_medium_and variant=fused any warm 1365.2 us +FAILED-GATE n=1000000 case=k8_medium_and variant=fused rows warm 1378.7 us +FAILED-GATE n=1000000 case=k8_medium_and variant=skip count warm 1636.3 us +FAILED-GATE n=1000000 case=k8_medium_and variant=skip any warm 1651.5 us +FAILED-GATE n=1000000 case=k8_medium_and variant=skip rows warm 1872.0 us +FAILED-GATE n=1000000 case=k8_medium_and variant=skip_fused count warm 1544.7 us +FAILED-GATE n=1000000 case=k8_medium_and variant=skip_fused any warm 1517.2 us +FAILED-GATE n=1000000 case=k8_medium_and variant=skip_fused rows warm 1530.0 us +measured k8_medium_and K=8 achieved 10097 lower plain 0.517 fused 2.376 us, best count fused = 1362.29 us +FAILED-GATE n=1000000 case=k8_large_and variant=plain count warm 1822.4 us +FAILED-GATE n=1000000 case=k8_large_and variant=plain any warm 1794.2 us +FAILED-GATE n=1000000 case=k8_large_and variant=plain rows warm 1776.4 us +FAILED-GATE n=1000000 case=k8_large_and variant=fused count warm 1433.0 us +FAILED-GATE n=1000000 case=k8_large_and variant=fused any warm 1425.0 us +FAILED-GATE n=1000000 case=k8_large_and variant=fused rows warm 1725.7 us +FAILED-GATE n=1000000 case=k8_large_and variant=skip count warm 2446.8 us +FAILED-GATE n=1000000 case=k8_large_and variant=skip any warm 2478.2 us +FAILED-GATE n=1000000 case=k8_large_and variant=skip rows warm 2441.7 us +FAILED-GATE n=1000000 case=k8_large_and variant=skip_fused count warm 1830.9 us +FAILED-GATE n=1000000 case=k8_large_and variant=skip_fused any warm 1790.0 us +FAILED-GATE n=1000000 case=k8_large_and variant=skip_fused rows warm 1498.7 us +measured k8_large_and K=8 achieved 498124 lower plain 0.629 fused 2.427 us, best count fused = 1433.03 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=plain count warm 1510.9 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=plain any warm 1573.7 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=plain rows warm 1628.2 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=fused count warm 1559.5 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=fused any warm 1604.9 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=fused rows warm 1501.9 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=skip count warm 1459.0 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=skip any warm 1422.4 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=skip rows warm 1433.4 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=skip_fused count warm 1430.3 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=skip_fused any warm 1473.2 us +FAILED-GATE n=1000000 case=k8_tiny_or variant=skip_fused rows warm 1473.0 us +measured k8_tiny_or K=8 achieved 999 lower plain 0.506 fused 2.628 us, best count skip_fused = 1430.31 us +FAILED-GATE n=1000000 case=k8_medium_or variant=plain count warm 1540.9 us +FAILED-GATE n=1000000 case=k8_medium_or variant=plain any warm 1506.0 us +FAILED-GATE n=1000000 case=k8_medium_or variant=plain rows warm 1519.6 us +FAILED-GATE n=1000000 case=k8_medium_or variant=fused count warm 1530.3 us +FAILED-GATE n=1000000 case=k8_medium_or variant=fused any warm 1484.5 us +FAILED-GATE n=1000000 case=k8_medium_or variant=fused rows warm 1521.2 us +FAILED-GATE n=1000000 case=k8_medium_or variant=skip count warm 1567.3 us +FAILED-GATE n=1000000 case=k8_medium_or variant=skip any warm 1595.7 us +FAILED-GATE n=1000000 case=k8_medium_or variant=skip rows warm 1633.1 us +FAILED-GATE n=1000000 case=k8_medium_or variant=skip_fused count warm 1600.5 us +FAILED-GATE n=1000000 case=k8_medium_or variant=skip_fused any warm 1613.6 us +FAILED-GATE n=1000000 case=k8_medium_or variant=skip_fused rows warm 1574.8 us +measured k8_medium_or K=8 achieved 9997 lower plain 0.760 fused 4.193 us, best count fused = 1530.31 us +FAILED-GATE n=1000000 case=k8_large_or variant=plain count warm 1487.1 us +FAILED-GATE n=1000000 case=k8_large_or variant=plain any warm 1822.2 us +FAILED-GATE n=1000000 case=k8_large_or variant=plain rows warm 1798.7 us +FAILED-GATE n=1000000 case=k8_large_or variant=fused count warm 1417.1 us +FAILED-GATE n=1000000 case=k8_large_or variant=fused any warm 1408.1 us +FAILED-GATE n=1000000 case=k8_large_or variant=fused rows warm 1701.4 us +FAILED-GATE n=1000000 case=k8_large_or variant=skip count warm 1698.6 us +FAILED-GATE n=1000000 case=k8_large_or variant=skip any warm 1748.9 us +FAILED-GATE n=1000000 case=k8_large_or variant=skip rows warm 1622.3 us +FAILED-GATE n=1000000 case=k8_large_or variant=skip_fused count warm 1599.1 us +FAILED-GATE n=1000000 case=k8_large_or variant=skip_fused any warm 1815.9 us +FAILED-GATE n=1000000 case=k8_large_or variant=skip_fused rows warm 1458.2 us +measured k8_large_or K=8 achieved 498831 lower plain 0.505 fused 2.610 us, best count fused = 1417.11 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=plain count warm 1570.7 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=plain any warm 1511.1 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=plain rows warm 1778.1 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=fused count warm 1763.7 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=fused any warm 1773.5 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=fused rows warm 1816.8 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip count warm 1429.4 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip any warm 1385.6 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip rows warm 1394.0 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip_fused count warm 1459.3 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip_fused any warm 1468.7 us +FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip_fused rows warm 1705.6 us +measured k8_tiny_mixed K=8 achieved 91 lower plain 0.872 fused 2.649 us, best count skip = 1429.38 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=plain count warm 1664.2 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=plain any warm 1707.3 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=plain rows warm 1701.4 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=fused count warm 1433.0 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=fused any warm 1418.6 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=fused rows warm 1440.9 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip count warm 1709.1 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip any warm 1779.5 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip rows warm 1694.7 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip_fused count warm 1399.0 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip_fused any warm 1390.1 us +FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip_fused rows warm 1463.3 us +measured k8_medium_mixed K=8 achieved 9901 lower plain 0.858 fused 2.608 us, best count skip_fused = 1399.04 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=plain count warm 1755.9 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=plain any warm 1854.6 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=plain rows warm 2424.5 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=fused count warm 1635.5 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=fused any warm 1631.3 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=fused rows warm 1633.4 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=skip count warm 2546.6 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=skip any warm 1836.7 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=skip rows warm 1796.2 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=skip_fused count warm 1492.9 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=skip_fused any warm 1528.4 us +FAILED-GATE n=1000000 case=k8_large_mixed variant=skip_fused rows warm 1475.3 us +measured k8_large_mixed K=8 achieved 500157 lower plain 0.850 fused 2.615 us, best count skip_fused = 1492.95 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=plain count warm 4127.7 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=plain any warm 3837.8 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=plain rows warm 3745.5 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=fused count warm 3236.4 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=fused any warm 3232.4 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=fused rows warm 3230.9 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=skip count warm 3813.2 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=skip any warm 3831.1 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=skip rows warm 3728.6 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=skip_fused count warm 2839.3 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=skip_fused any warm 2888.1 us +FAILED-GATE n=1000000 case=k17_tiny_and variant=skip_fused rows warm 2961.9 us +measured k17_tiny_and K=17 achieved 45 lower plain 1.074 fused 7.439 us, best count skip_fused = 2839.27 us +FAILED-GATE n=1000000 case=k17_medium_and variant=plain count warm 3794.4 us +FAILED-GATE n=1000000 case=k17_medium_and variant=plain any warm 3840.5 us +FAILED-GATE n=1000000 case=k17_medium_and variant=plain rows warm 3888.3 us +FAILED-GATE n=1000000 case=k17_medium_and variant=fused count warm 2956.7 us +FAILED-GATE n=1000000 case=k17_medium_and variant=fused any warm 2891.1 us +FAILED-GATE n=1000000 case=k17_medium_and variant=fused rows warm 2873.7 us +FAILED-GATE n=1000000 case=k17_medium_and variant=skip count warm 3523.0 us +FAILED-GATE n=1000000 case=k17_medium_and variant=skip any warm 3610.3 us +FAILED-GATE n=1000000 case=k17_medium_and variant=skip rows warm 3576.3 us +FAILED-GATE n=1000000 case=k17_medium_and variant=skip_fused count warm 2909.6 us +FAILED-GATE n=1000000 case=k17_medium_and variant=skip_fused any warm 2879.3 us +FAILED-GATE n=1000000 case=k17_medium_and variant=skip_fused rows warm 2909.7 us +measured k17_medium_and K=17 achieved 9754 lower plain 1.063 fused 7.979 us, best count skip_fused = 2909.58 us +FAILED-GATE n=1000000 case=k17_large_and variant=plain count warm 3764.5 us +FAILED-GATE n=1000000 case=k17_large_and variant=plain any warm 3778.4 us +FAILED-GATE n=1000000 case=k17_large_and variant=plain rows warm 3738.4 us +FAILED-GATE n=1000000 case=k17_large_and variant=fused count warm 3039.2 us +FAILED-GATE n=1000000 case=k17_large_and variant=fused any warm 3308.7 us +FAILED-GATE n=1000000 case=k17_large_and variant=fused rows warm 3171.6 us +FAILED-GATE n=1000000 case=k17_large_and variant=skip count warm 3679.5 us +FAILED-GATE n=1000000 case=k17_large_and variant=skip any warm 3597.5 us +FAILED-GATE n=1000000 case=k17_large_and variant=skip rows warm 3545.0 us +FAILED-GATE n=1000000 case=k17_large_and variant=skip_fused count warm 2776.0 us +FAILED-GATE n=1000000 case=k17_large_and variant=skip_fused any warm 2764.1 us +FAILED-GATE n=1000000 case=k17_large_and variant=skip_fused rows warm 2786.9 us +measured k17_large_and K=17 achieved 499819 lower plain 1.059 fused 7.438 us, best count skip_fused = 2776.04 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=plain count warm 3323.0 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=plain any warm 3222.7 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=plain rows warm 3258.6 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=fused count warm 3196.0 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=fused any warm 3233.4 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=fused rows warm 3222.5 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=skip count warm 3199.3 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=skip any warm 3167.7 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=skip rows warm 3170.0 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=skip_fused count warm 2835.1 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=skip_fused any warm 2854.0 us +FAILED-GATE n=1000000 case=k17_tiny_or variant=skip_fused rows warm 2956.5 us +measured k17_tiny_or K=17 achieved 1000 lower plain 1.071 fused 7.978 us, best count skip_fused = 2835.07 us +FAILED-GATE n=1000000 case=k17_medium_or variant=plain count warm 2853.3 us +FAILED-GATE n=1000000 case=k17_medium_or variant=plain any warm 2892.7 us +FAILED-GATE n=1000000 case=k17_medium_or variant=plain rows warm 3218.8 us +FAILED-GATE n=1000000 case=k17_medium_or variant=fused count warm 3091.5 us +FAILED-GATE n=1000000 case=k17_medium_or variant=fused any warm 2844.7 us +FAILED-GATE n=1000000 case=k17_medium_or variant=fused rows warm 3123.4 us +FAILED-GATE n=1000000 case=k17_medium_or variant=skip count warm 2947.0 us +FAILED-GATE n=1000000 case=k17_medium_or variant=skip any warm 2769.2 us +FAILED-GATE n=1000000 case=k17_medium_or variant=skip rows warm 2996.4 us +FAILED-GATE n=1000000 case=k17_medium_or variant=skip_fused count warm 2987.7 us +FAILED-GATE n=1000000 case=k17_medium_or variant=skip_fused any warm 3267.0 us +FAILED-GATE n=1000000 case=k17_medium_or variant=skip_fused rows warm 3200.8 us +measured k17_medium_or K=17 achieved 10000 lower plain 1.038 fused 8.229 us, best count plain = 2853.33 us +FAILED-GATE n=1000000 case=k17_large_or variant=plain count warm 3234.5 us +FAILED-GATE n=1000000 case=k17_large_or variant=plain any warm 3188.7 us +FAILED-GATE n=1000000 case=k17_large_or variant=plain rows warm 3158.6 us +FAILED-GATE n=1000000 case=k17_large_or variant=fused count warm 3025.3 us +FAILED-GATE n=1000000 case=k17_large_or variant=fused any warm 2772.4 us +FAILED-GATE n=1000000 case=k17_large_or variant=fused rows warm 2785.1 us +FAILED-GATE n=1000000 case=k17_large_or variant=skip count warm 2798.5 us +FAILED-GATE n=1000000 case=k17_large_or variant=skip any warm 2780.8 us +FAILED-GATE n=1000000 case=k17_large_or variant=skip rows warm 2816.9 us +FAILED-GATE n=1000000 case=k17_large_or variant=skip_fused count warm 2833.3 us +FAILED-GATE n=1000000 case=k17_large_or variant=skip_fused any warm 2827.5 us +FAILED-GATE n=1000000 case=k17_large_or variant=skip_fused rows warm 2877.3 us +measured k17_large_or K=17 achieved 505114 lower plain 1.061 fused 8.185 us, best count skip = 2798.45 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=plain count warm 3332.5 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=plain any warm 3331.9 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=plain rows warm 3537.4 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=fused count warm 3081.2 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=fused any warm 3415.1 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=fused rows warm 3565.8 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip count warm 2378.1 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip any warm 2308.0 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip rows warm 1620.0 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip_fused count warm 3068.9 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip_fused any warm 3350.7 us +FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip_fused rows warm 4055.6 us +measured k17_tiny_mixed K=17 achieved 46 lower plain 1.914 fused 6.994 us, best count skip = 2378.08 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=plain count warm 4986.8 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=plain any warm 3701.8 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=plain rows warm 4047.4 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=fused count warm 3252.1 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=fused any warm 3559.2 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=fused rows warm 3580.7 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip count warm 3864.9 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip any warm 4146.2 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip rows warm 5311.9 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip_fused count warm 3878.5 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip_fused any warm 3867.5 us +FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip_fused rows warm 3708.4 us +measured k17_medium_mixed K=17 achieved 10098 lower plain 2.921 fused 10.529 us, best count fused = 3252.11 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=plain count warm 3938.4 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=plain any warm 3896.9 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=plain rows warm 3879.8 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=fused count warm 2838.3 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=fused any warm 3284.2 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=fused rows warm 3294.0 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=skip count warm 3865.8 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=skip any warm 3823.7 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=skip rows warm 5792.0 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=skip_fused count warm 3032.2 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=skip_fused any warm 2916.9 us +FAILED-GATE n=1000000 case=k17_large_mixed variant=skip_fused rows warm 2881.7 us +measured k17_large_mixed K=17 achieved 498269 lower plain 1.907 fused 6.987 us, best count fused = 2838.34 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=plain count warm 3972.3 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=plain any warm 4062.2 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=plain rows warm 4053.8 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=fused count warm 3951.5 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=fused any warm 3962.9 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=fused rows warm 3960.5 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=skip count warm 4081.3 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=skip any warm 4207.2 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=skip rows warm 4061.2 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=skip_fused count warm 3822.1 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=skip_fused any warm 3885.5 us +FAILED-GATE n=1000000 case=k24_tiny_and variant=skip_fused rows warm 3864.8 us +measured k24_tiny_and K=24 achieved 50 lower plain 1.475 fused 15.644 us, best count skip_fused = 3822.07 us +FAILED-GATE n=1000000 case=k24_medium_and variant=plain count warm 5267.8 us +FAILED-GATE n=1000000 case=k24_medium_and variant=plain any warm 5445.2 us +FAILED-GATE n=1000000 case=k24_medium_and variant=plain rows warm 5098.5 us +FAILED-GATE n=1000000 case=k24_medium_and variant=fused count warm 4083.0 us +FAILED-GATE n=1000000 case=k24_medium_and variant=fused any warm 4096.0 us +FAILED-GATE n=1000000 case=k24_medium_and variant=fused rows warm 4106.0 us +FAILED-GATE n=1000000 case=k24_medium_and variant=skip count warm 5393.8 us +FAILED-GATE n=1000000 case=k24_medium_and variant=skip any warm 8121.5 us +FAILED-GATE n=1000000 case=k24_medium_and variant=skip rows warm 5029.2 us +FAILED-GATE n=1000000 case=k24_medium_and variant=skip_fused count warm 3980.4 us +FAILED-GATE n=1000000 case=k24_medium_and variant=skip_fused any warm 3775.8 us +FAILED-GATE n=1000000 case=k24_medium_and variant=skip_fused rows warm 3769.6 us +measured k24_medium_and K=24 achieved 9900 lower plain 1.442 fused 15.568 us, best count skip_fused = 3980.37 us +FAILED-GATE n=1000000 case=k24_large_and variant=plain count warm 5248.2 us +FAILED-GATE n=1000000 case=k24_large_and variant=plain any warm 5420.1 us +FAILED-GATE n=1000000 case=k24_large_and variant=plain rows warm 7114.1 us +FAILED-GATE n=1000000 case=k24_large_and variant=fused count warm 5288.6 us +FAILED-GATE n=1000000 case=k24_large_and variant=fused any warm 4908.2 us +FAILED-GATE n=1000000 case=k24_large_and variant=fused rows warm 4145.8 us +FAILED-GATE n=1000000 case=k24_large_and variant=skip count warm 4814.3 us +FAILED-GATE n=1000000 case=k24_large_and variant=skip any warm 7140.3 us +FAILED-GATE n=1000000 case=k24_large_and variant=skip rows warm 5021.3 us +FAILED-GATE n=1000000 case=k24_large_and variant=skip_fused count warm 4162.7 us +FAILED-GATE n=1000000 case=k24_large_and variant=skip_fused any warm 3867.2 us +FAILED-GATE n=1000000 case=k24_large_and variant=skip_fused rows warm 3806.4 us +measured k24_large_and K=24 achieved 502071 lower plain 1.419 fused 15.699 us, best count skip_fused = 4162.74 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=plain count warm 3800.6 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=plain any warm 3815.8 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=plain rows warm 4074.0 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=fused count warm 3822.0 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=fused any warm 3834.9 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=fused rows warm 3741.7 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=skip count warm 3725.8 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=skip any warm 3887.2 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=skip rows warm 3984.3 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=skip_fused count warm 3865.0 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=skip_fused any warm 4067.1 us +FAILED-GATE n=1000000 case=k24_tiny_or variant=skip_fused rows warm 4364.6 us +measured k24_tiny_or K=24 achieved 1001 lower plain 1.459 fused 16.353 us, best count skip = 3725.78 us +FAILED-GATE n=1000000 case=k24_medium_or variant=plain count warm 4178.5 us +FAILED-GATE n=1000000 case=k24_medium_or variant=plain any warm 3952.4 us +FAILED-GATE n=1000000 case=k24_medium_or variant=plain rows warm 3907.4 us +FAILED-GATE n=1000000 case=k24_medium_or variant=fused count warm 3754.6 us +FAILED-GATE n=1000000 case=k24_medium_or variant=fused any warm 3878.1 us +FAILED-GATE n=1000000 case=k24_medium_or variant=fused rows warm 4369.6 us +FAILED-GATE n=1000000 case=k24_medium_or variant=skip count warm 5078.9 us +FAILED-GATE n=1000000 case=k24_medium_or variant=skip any warm 5107.8 us +FAILED-GATE n=1000000 case=k24_medium_or variant=skip rows warm 3736.2 us +FAILED-GATE n=1000000 case=k24_medium_or variant=skip_fused count warm 3713.5 us +FAILED-GATE n=1000000 case=k24_medium_or variant=skip_fused any warm 3723.3 us +FAILED-GATE n=1000000 case=k24_medium_or variant=skip_fused rows warm 3757.5 us +measured k24_medium_or K=24 achieved 9995 lower plain 2.180 fused 24.738 us, best count skip_fused = 3713.45 us +FAILED-GATE n=1000000 case=k24_large_or variant=plain count warm 3749.3 us +FAILED-GATE n=1000000 case=k24_large_or variant=plain any warm 3784.1 us +FAILED-GATE n=1000000 case=k24_large_or variant=plain rows warm 3719.0 us +FAILED-GATE n=1000000 case=k24_large_or variant=fused count warm 4348.8 us +FAILED-GATE n=1000000 case=k24_large_or variant=fused any warm 4014.5 us +FAILED-GATE n=1000000 case=k24_large_or variant=fused rows warm 4310.1 us +FAILED-GATE n=1000000 case=k24_large_or variant=skip count warm 4078.1 us +FAILED-GATE n=1000000 case=k24_large_or variant=skip any warm 3964.9 us +FAILED-GATE n=1000000 case=k24_large_or variant=skip rows warm 4041.4 us +FAILED-GATE n=1000000 case=k24_large_or variant=skip_fused count warm 3864.8 us +FAILED-GATE n=1000000 case=k24_large_or variant=skip_fused any warm 3997.6 us +FAILED-GATE n=1000000 case=k24_large_or variant=skip_fused rows warm 4185.6 us +measured k24_large_or K=24 achieved 495651 lower plain 1.437 fused 16.395 us, best count plain = 3749.30 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=plain count warm 5111.5 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=plain any warm 5521.6 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=plain rows warm 7437.4 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=fused count warm 3932.4 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=fused any warm 3859.8 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=fused rows warm 3999.1 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip count warm 7088.2 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip any warm 6828.0 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip rows warm 5817.3 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip_fused count warm 3872.5 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip_fused any warm 4014.0 us +FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip_fused rows warm 4749.7 us +measured k24_tiny_mixed K=24 achieved 48 lower plain 2.623 fused 11.035 us, best count skip_fused = 3872.48 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=plain count warm 5119.7 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=plain any warm 5373.6 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=plain rows warm 6574.3 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=fused count warm 3859.2 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=fused any warm 4081.9 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=fused rows warm 4333.1 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip count warm 4947.8 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip any warm 5032.3 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip rows warm 5298.9 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip_fused count warm 3732.2 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip_fused any warm 3833.5 us +FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip_fused rows warm 4130.1 us +measured k24_medium_mixed K=24 achieved 9953 lower plain 2.563 fused 10.944 us, best count skip_fused = 3732.17 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=plain count warm 5032.5 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=plain any warm 4900.7 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=plain rows warm 5513.0 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=fused count warm 3885.2 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=fused any warm 3820.9 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=fused rows warm 3818.3 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=skip count warm 5226.4 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=skip any warm 4865.4 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=skip rows warm 5037.2 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=skip_fused count warm 4379.8 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=skip_fused any warm 4235.6 us +FAILED-GATE n=1000000 case=k24_large_mixed variant=skip_fused rows warm 3867.3 us +measured k24_large_mixed K=24 achieved 500471 lower plain 2.565 fused 10.787 us, best count fused = 3885.19 us +measured adv_one_everything K=2 achieved 10000 lower plain 0.215 fused 0.374 us, best count skip = 284.84 us +measured adv_one_nothing K=3 achieved 1002 lower plain 0.292 fused 0.504 us, best count plain = 290.04 us +measured adv_or_one_everything K=2 achieved 1000000 lower plain 0.212 fused 0.405 us, best count skip_fused = 333.90 us +measured adv_or_one_nothing K=2 achieved 1000 lower plain 0.211 fused 0.404 us, best count skip_fused = 316.06 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=plain count warm 4511.8 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=plain any warm 3776.1 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=plain rows warm 4160.1 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=fused count warm 2742.0 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=fused any warm 2762.9 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=fused rows warm 2774.1 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip count warm 3620.1 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip any warm 3492.9 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip rows warm 3567.2 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip_fused count warm 3048.0 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip_fused any warm 3003.4 us +FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip_fused rows warm 2993.0 us +measured adv_16_nonselective K=16 achieved 827152 lower plain 0.963 fused 6.746 us, best count fused = 2741.99 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=plain any warm 1030.5 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=plain rows warm 1003.0 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=fused count warm 3024.0 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=fused any warm 3055.9 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=fused rows warm 2881.2 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=skip_fused count warm 2886.6 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=skip_fused any warm 2867.3 us +FAILED-GATE n=1000000 case=adv_16_collapse_one variant=skip_fused rows warm 2849.9 us +measured adv_16_collapse_one K=16 achieved 46 lower plain 0.987 fused 6.589 us, best count skip = 958.51 us +measured adv_correlated_2 K=2 achieved 500001 lower plain 0.216 fused 0.375 us, best count fused = 316.29 us +measured adv_correlated_5 K=5 achieved 490001 lower plain 0.389 fused 1.164 us, best count skip_fused = 612.30 us +measured adv_contradictory_2 K=2 achieved 0 lower plain 0.308 fused 0.607 us, best count fused = 271.82 us +FAILED-GATE n=1000000 case=adv_contradictory_17 variant=fused count warm 3689.5 us +FAILED-GATE n=1000000 case=adv_contradictory_17 variant=fused any warm 3483.8 us +FAILED-GATE n=1000000 case=adv_contradictory_17 variant=fused rows warm 2992.8 us +FAILED-GATE n=1000000 case=adv_contradictory_17 variant=skip_fused count warm 2964.9 us +FAILED-GATE n=1000000 case=adv_contradictory_17 variant=skip_fused any warm 2934.1 us +FAILED-GATE n=1000000 case=adv_contradictory_17 variant=skip_fused rows warm 2857.1 us +measured adv_contradictory_17 K=17 achieved 0 lower plain 1.041 fused 7.625 us, best count skip = 657.51 us +measured null_and K=2 achieved 99875 lower plain 0.322 fused 0.503 us, best count skip_fused = 346.41 us +measured null_not K=1 achieved 450007 lower plain 0.240 fused 0.452 us, best count fused = 186.52 us +measured null_or K=2 achieved 190006 lower plain 0.357 fused 0.532 us, best count plain = 345.29 us +measured null_not_and K=2 achieved 850017 lower plain 0.447 fused 0.846 us, best count skip_fused = 366.14 us +FAILED-GATE n=1000000 case=null_and_5 variant=plain count warm 1082.4 us +FAILED-GATE n=1000000 case=null_and_5 variant=plain any warm 1078.4 us +FAILED-GATE n=1000000 case=null_and_5 variant=plain rows warm 1123.8 us +FAILED-GATE n=1000000 case=null_and_5 variant=fused any warm 1015.9 us +FAILED-GATE n=1000000 case=null_and_5 variant=skip count warm 1048.7 us +FAILED-GATE n=1000000 case=null_and_5 variant=skip any warm 1094.2 us +FAILED-GATE n=1000000 case=null_and_5 variant=skip rows warm 1060.3 us +measured null_and_5 K=5 achieved 267454 lower plain 0.612 fused 1.500 us, best count skip_fused = 931.39 us +N=1000000: 353 FAILED-GATE values (warm >= 1000 us, reported), 0 mismatches +WHERE-K ALL ANSWERS MATCH THE ORACLE + +real 0m49.576s +user 0m48.802s +sys 0m0.049s From 3fb41149db566bdef9d51e2bff22b1b9bfc14c6c Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 21:14:35 +0000 Subject: [PATCH 10/23] D-GLOBAL-WHERE P2: record DuckDB statistics-folded answers instead of crashing DuckDB answers some predicates (a tautology over min/max stats, e.g. c0<1000 OR c3<5) from table statistics: the plan is a constant Column Data Scan, no operator runs and no profile is written. Engine time is recorded as None with stats_folded=true; answers are still checked. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../duckdb/bench_where.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py index 5765ed8b7..271f9240b 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py +++ b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py @@ -95,6 +95,12 @@ def engine_us(con, name, tmpdir): con.execute(f"PRAGMA profiling_output='{qs(path)}'") con.execute(f"EXECUTE {name}").fetchone() con.execute("PRAGMA disable_profiling") + # DuckDB answers some predicates (e.g. a tautology over min/max statistics) + # from table statistics alone: the plan is a constant Column Data Scan, no + # operator executes and no profile is written. That is a real answer path, + # recorded as engine time None + stats_folded, never as an error. + if not os.path.exists(path): + return None with open(path) as f: return round(json.load(f)["query"]["total_time"] * 1e6, 3) @@ -112,13 +118,16 @@ def measure(con, name, sql, runs, tmpdir): assert a == ans, "answer drift" s = sorted(ns) engs = [engine_us(con, name, tmpdir) for _ in range(5)] + folded = any(e is None for e in engs) + engs = [e for e in engs if e is not None] return { "answer": ans if isinstance(ans, bool) else int(ans), "cold_us": cold, "warm_med_us": us(statistics.median(s)), "warm_p10_us": us(pct(s, 0.10)), "warm_p90_us": us(pct(s, 0.90)), - "engine_med_us": round(statistics.median(engs), 3), + "engine_med_us": round(statistics.median(engs), 3) if engs else None, + "stats_folded": folded, } @@ -176,6 +185,7 @@ def run_dir(d, threads, runs, tmpdir): "exists_cold_us": ex["cold_us"], "exists_warm_med_us": ex["warm_med_us"], "exists_warm_p10_us": ex["warm_p10_us"], "exists_warm_p90_us": ex["warm_p90_us"], "exists_engine_med_us": ex["engine_med_us"], + "count_stats_folded": cnt["stats_folded"], "exists_stats_folded": ex["stats_folded"], "trivial_query_wall_us": triv, }) print(f"{d} threads={T} {c['id']} count={cnt['answer']} warm {cnt['warm_med_us']:.1f} us", flush=True) From 49f02414dd487f39367de7e97a71f6d45a592940 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 21:25:35 +0000 Subject: [PATCH 11/23] D-GLOBAL-WHERE P2: DuckDB WHERE-K results at 1M/10M (lab, unanalysed) Corrected parity gate passes: every DuckDB count/EXISTS equals the oracle, coverage complete in both directions at threads 1 and 4. Analysis is parked pending the Lance 13 selective-read trace. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../results/bw.log | 223 ++ .../results/cw.log | 338 +++ .../results/where/n1000000/compare_where.md | 168 ++ .../where/n1000000/explain/k17_medium_and.txt | 143 ++ .../n1000000/explain/k1_medium_single.txt | 127 + .../where/n1000000/explain/k3_medium_and.txt | 131 ++ .../where/n1000000/explain/k8_medium_and.txt | 136 ++ .../results/where/n1000000/where_duckdb.json | 2073 +++++++++++++++++ .../results/where/n10000000/compare_where.md | 168 ++ .../n10000000/explain/k17_medium_and.txt | 143 ++ .../n10000000/explain/k1_medium_single.txt | 127 + .../where/n10000000/explain/k3_medium_and.txt | 131 ++ .../where/n10000000/explain/k8_medium_and.txt | 136 ++ .../results/where/n10000000/where_duckdb.json | 2073 +++++++++++++++++ 14 files changed, 6117 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/bw.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/cw.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/bw.log b/.claude/probes/2026-11-03-d-global-where-p1/results/bw.log new file mode 100644 index 000000000..d60562951 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/bw.log @@ -0,0 +1,223 @@ +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 built in 432942 us, analyze 362 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k1_tiny_single count=1000 warm 1918.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k1_medium_single count=10000 warm 1739.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k1_large_single count=500005 warm 2580.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_tiny_and count=765 warm 4638.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_medium_and count=10139 warm 3490.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_large_and count=499628 warm 3341.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_tiny_or count=999 warm 2403.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_medium_or count=10000 warm 6476.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_large_or count=500615 warm 21854.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_tiny_mixed count=428 warm 3714.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_medium_mixed count=9819 warm 4009.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_large_mixed count=499424 warm 15868.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_tiny_and count=46 warm 4496.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_medium_and count=10097 warm 6335.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_large_and count=498124 warm 7755.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_tiny_or count=999 warm 3547.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_medium_or count=9997 warm 16571.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_large_or count=498831 warm 30636.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_tiny_mixed count=91 warm 14878.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_medium_mixed count=9901 warm 27575.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_large_mixed count=500157 warm 74454.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_tiny_and count=45 warm 15133.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_medium_and count=9754 warm 17023.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_large_and count=499819 warm 20204.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_tiny_or count=1000 warm 4772.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_medium_or count=10000 warm 22157.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_large_or count=505114 warm 46298.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_tiny_mixed count=46 warm 14384.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_medium_mixed count=10098 warm 32478.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_large_mixed count=498269 warm 139929.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_tiny_and count=50 warm 14418.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_medium_and count=9900 warm 21674.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_large_and count=502071 warm 25627.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_tiny_or count=1001 warm 5061.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_medium_or count=9995 warm 23987.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_large_or count=495651 warm 54222.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_tiny_mixed count=48 warm 77685.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_medium_mixed count=9953 warm 105626.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_large_mixed count=500471 warm 210186.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_one_everything count=10000 warm 1736.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_one_nothing count=1002 warm 3253.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_or_one_everything count=1000000 warm 568.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_or_one_nothing count=1000 warm 2203.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_16_nonselective count=827152 warm 21284.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_16_collapse_one count=46 warm 6147.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_correlated_2 count=500001 warm 2401.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_correlated_5 count=490001 warm 2414.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_contradictory_2 count=0 warm 349.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_contradictory_17 count=0 warm 602.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_and count=99875 warm 2862.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_not count=450007 warm 2190.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_or count=190006 warm 9313.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_not_and count=850017 warm 26557.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_and_5 count=267454 warm 4991.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 built in 407967 us, analyze 425 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k1_tiny_single count=1000 warm 1139.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k1_medium_single count=10000 warm 1194.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k1_large_single count=500005 warm 1018.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_tiny_and count=765 warm 1775.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_medium_and count=10139 warm 1711.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_large_and count=499628 warm 1989.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_tiny_or count=999 warm 1615.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_medium_or count=10000 warm 3302.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_large_or count=500615 warm 7746.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_tiny_mixed count=428 warm 2406.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_medium_mixed count=9819 warm 2341.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_large_mixed count=499424 warm 6041.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_tiny_and count=46 warm 2556.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_medium_and count=10097 warm 3211.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_large_and count=498124 warm 3575.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_tiny_or count=999 warm 2206.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_medium_or count=9997 warm 7392.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_large_or count=498831 warm 10587.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_tiny_mixed count=91 warm 6487.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_medium_mixed count=9901 warm 10984.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_large_mixed count=500157 warm 26765.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_tiny_and count=45 warm 5477.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_medium_and count=9754 warm 7021.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_large_and count=499819 warm 9519.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_tiny_or count=1000 warm 3657.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_medium_or count=10000 warm 9796.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_large_or count=505114 warm 17303.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_tiny_mixed count=46 warm 7023.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_medium_mixed count=10098 warm 14138.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_large_mixed count=498269 warm 49926.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_tiny_and count=50 warm 5905.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_medium_and count=9900 warm 7744.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_large_and count=502071 warm 9555.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_tiny_or count=1001 warm 2949.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_medium_or count=9995 warm 9341.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_large_or count=495651 warm 21958.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_tiny_mixed count=48 warm 26730.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_medium_mixed count=9953 warm 36972.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_large_mixed count=500471 warm 60307.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_one_everything count=10000 warm 1192.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_one_nothing count=1002 warm 1669.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_or_one_everything count=1000000 warm 714.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_or_one_nothing count=1000 warm 1582.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_16_nonselective count=827152 warm 7983.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_16_collapse_one count=46 warm 3516.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_correlated_2 count=500001 warm 1566.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_correlated_5 count=490001 warm 1658.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_contradictory_2 count=0 warm 554.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_contradictory_17 count=0 warm 1155.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_and count=99875 warm 1765.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_not count=450007 warm 1289.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_or count=190006 warm 3894.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_not_and count=850017 warm 9881.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_and_5 count=267454 warm 2810.4 us +wrote 108 records to /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000/where_duckdb.json +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 built in 5653755 us, analyze 943 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k1_tiny_single count=0 warm 477.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k1_medium_single count=100002 warm 16065.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k1_large_single count=5000008 warm 14682.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_tiny_and count=0 warm 36607.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_medium_and count=101386 warm 34347.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_large_and count=4996187 warm 41119.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_tiny_or count=0 warm 539.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_medium_or count=100001 warm 66221.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_large_or count=5006214 warm 192171.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_tiny_mixed count=0 warm 40150.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_medium_mixed count=98184 warm 47956.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_large_mixed count=4994319 warm 145146.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_tiny_and count=470 warm 54096.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_medium_and count=100924 warm 83866.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_large_and count=4981051 warm 108897.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_tiny_or count=0 warm 702.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_medium_or count=99996 warm 173318.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_large_or count=4988280 warm 310465.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_tiny_mixed count=935 warm 150918.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_medium_mixed count=99047 warm 263585.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_large_mixed count=5001665 warm 717301.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_tiny_and count=467 warm 142113.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_medium_and count=97561 warm 159095.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_large_and count=4998174 warm 212825.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_tiny_or count=0 warm 1041.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_medium_or count=100002 warm 225787.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_large_or count=5051202 warm 478393.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_tiny_mixed count=467 warm 136162.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_medium_mixed count=100925 warm 293818.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_large_mixed count=4982809 warm 1382934.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_tiny_and count=472 warm 147036.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_medium_and count=99057 warm 188568.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_large_and count=5020727 warm 248329.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_tiny_or count=0 warm 1002.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_medium_or count=99996 warm 227149.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_large_or count=4956413 warm 572694.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_tiny_mixed count=470 warm 657116.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_medium_mixed count=99512 warm 932183.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_large_mixed count=5004671 warm 2090124.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_one_everything count=100002 warm 14886.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_one_nothing count=10002 warm 25638.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_or_one_everything count=10000000 warm 847.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_or_one_nothing count=10000 warm 22805.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_16_nonselective count=8271472 warm 217536.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_16_collapse_one count=472 warm 64305.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_correlated_2 count=5000004 warm 28390.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_correlated_5 count=4900007 warm 31018.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_contradictory_2 count=0 warm 727.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_contradictory_17 count=0 warm 711.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_and count=999196 warm 36063.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_not count=4499990 warm 20619.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_or count=1900011 warm 99873.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_not_and count=8500703 warm 268063.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_and_5 count=2674492 warm 70334.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 built in 4332828 us, analyze 613 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k1_tiny_single count=0 warm 749.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k1_medium_single count=100002 warm 4115.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k1_large_single count=5000008 warm 4483.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_tiny_and count=0 warm 10953.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_medium_and count=101386 warm 9979.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_large_and count=4996187 warm 12053.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_tiny_or count=0 warm 648.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_medium_or count=100001 warm 18505.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_large_or count=5006214 warm 50145.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_tiny_mixed count=0 warm 10858.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_medium_mixed count=98184 warm 13830.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_large_mixed count=4994319 warm 37466.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_tiny_and count=470 warm 16602.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_medium_and count=100924 warm 26988.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_large_and count=4981051 warm 30166.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_tiny_or count=0 warm 798.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_medium_or count=99996 warm 51723.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_large_or count=4988280 warm 84262.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_tiny_mixed count=935 warm 43857.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_medium_mixed count=99047 warm 78663.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_large_mixed count=5001665 warm 187067.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_tiny_and count=467 warm 41400.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_medium_and count=97561 warm 43895.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_large_and count=4998174 warm 57312.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_tiny_or count=0 warm 1239.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_medium_or count=100002 warm 70731.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_large_or count=5051202 warm 132258.5 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_tiny_mixed count=467 warm 37984.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_medium_mixed count=100925 warm 82346.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_large_mixed count=4982809 warm 363912.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_tiny_and count=472 warm 42430.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_medium_and count=99057 warm 55181.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_large_and count=5020727 warm 68975.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_tiny_or count=0 warm 1637.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_medium_or count=99996 warm 88748.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_large_or count=4956413 warm 215605.7 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_tiny_mixed count=470 warm 183991.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_medium_mixed count=99512 warm 268751.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_large_mixed count=5004671 warm 556772.8 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_one_everything count=100002 warm 3725.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_one_nothing count=10002 warm 7062.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_or_one_everything count=10000000 warm 633.2 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_or_one_nothing count=10000 warm 5287.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_16_nonselective count=8271472 warm 57095.4 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_16_collapse_one count=472 warm 18712.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_correlated_2 count=5000004 warm 7181.1 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_correlated_5 count=4900007 warm 6878.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_contradictory_2 count=0 warm 656.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_contradictory_17 count=0 warm 790.0 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_and count=999196 warm 8346.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_not count=4499990 warm 5210.3 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_or count=1900011 warm 26963.6 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_not_and count=8500703 warm 74116.9 us +/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_and_5 count=2674492 warm 17936.4 us +wrote 108 records to /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000/where_duckdb.json +rc=0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/cw.log b/.claude/probes/2026-11-03-d-global-where-p1/results/cw.log new file mode 100644 index 000000000..7a290262b --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/cw.log @@ -0,0 +1,338 @@ +# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 1,000,000 + +Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). + +Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 1,000), k3_tiny_and (target 50, achieved 765), k3_tiny_or (target 50, achieved 999), k3_tiny_mixed (target 50, achieved 428), k8_tiny_or (target 50, achieved 999), k17_tiny_or (target 50, achieved 1,000), k24_tiny_or (target 50, achieved 1,001) + +DuckDB build + ANALYZE: threads 1: 433,303 us (build 432,942, analyze 362); threads 4: 408,392 us (build 407,967, analyze 425) + +### N = 1,000,000, DuckDB threads = 1 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1918.3 | 1981.6 | 589.4 | 13.64 | WIN | 14.09 | WIN | 4.13 | WIN | +| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1739.0 | 1799.0 | 852.7 | 12.55 | WIN | 12.98 | WIN | 6.18 | WIN | +| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 2580.9 | 2118.7 | 744.5 | 18.37 | WIN | 15.08 | WIN | 5.13 | WIN | +| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 4638.3 | 4933.6 | 842.4 | 8.17 | WIN | 8.69 | WIN | 1.48 | WIN | +| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 3490.4 | 4234.6 | 902.7 | 6.60 | WIN | 8.01 | WIN | 1.44 | WIN | +| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 3341.9 | 3411.8 | 874.7 | 6.29 | WIN | 6.42 | WIN | 1.67 | WIN | +| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 2403.1 | 2950.3 | 965.6 | 4.13 | WIN | 5.07 | WIN | 1.67 | WIN | +| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 6476.5 | 6880.9 | 691.1 | 11.61 | WIN | 12.34 | WIN | 1.26 | WIN | +| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 21854.9 | 20115.1 | 728.7 | 41.26 | WIN | 37.97 | WIN | 1.40 | WIN | +| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 3714.8 | 3736.2 | 730.0 | 6.79 | WIN | 6.83 | WIN | 1.34 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 4009.3 | 4073.9 | 721.6 | 7.47 | WIN | 7.59 | WIN | 1.36 | WIN | +| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 15868.0 | 14564.6 | 1095.7 | 30.74 | WIN | 28.22 | WIN | 2.15 | WIN | +| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 4496.9 | 4455.4 | 1017.4 | 4.69 | WIN | 4.64 | WIN | 1.05 | PARITY | +| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 6335.4 | 6355.1 | 881.7 | 4.65 | WIN | 4.66 | WIN | 0.65 | LOSS | +| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 7755.4 | 8069.1 | 881.5 | 5.41 | WIN | 5.63 | WIN | 0.62 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 3547.2 | 3593.4 | 870.5 | 2.48 | WIN | 2.51 | WIN | 0.61 | LOSS | +| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 16571.5 | 17463.0 | 954.4 | 10.83 | WIN | 11.41 | WIN | 0.64 | LOSS | +| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 30636.8 | 30176.8 | 946.6 | 21.62 | WIN | 21.29 | WIN | 0.67 | LOSS | +| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 14878.0 | 14745.0 | 1692.6 | 10.41 | WIN | 10.32 | WIN | 1.22 | WIN | +| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 27575.4 | 28051.8 | 1012.8 | 19.71 | WIN | 20.05 | WIN | 0.73 | LOSS | +| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 74454.8 | 75137.7 | 1078.1 | 49.87 | WIN | 50.33 | WIN | 0.71 | LOSS | +| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 15133.9 | 20282.9 | 2743.6 | 5.33 | WIN | 7.14 | WIN | 0.95 | PARITY | +| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 17023.7 | 15953.3 | 1162.3 | 5.85 | WIN | 5.48 | WIN | 0.40 | LOSS | +| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 20204.8 | 20222.8 | 1175.4 | 7.28 | WIN | 7.28 | WIN | 0.43 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 4772.1 | 5143.0 | 1062.8 | 1.68 | WIN | 1.81 | WIN | 0.37 | LOSS | +| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 22157.3 | 22382.8 | 1163.2 | 7.77 | WIN | 7.84 | WIN | 0.42 | LOSS | +| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 46298.8 | 55727.1 | 1836.9 | 16.54 | WIN | 19.91 | WIN | 0.66 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 14384.5 | 14225.7 | 2724.9 | 6.05 | WIN | 5.98 | WIN | 1.18 | WIN | +| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 32478.6 | 31778.7 | 1308.0 | 9.99 | WIN | 9.77 | WIN | 0.37 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 139929.3 | 137801.1 | 1552.6 | 49.30 | WIN | 48.55 | WIN | 0.53 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 14418.2 | 14223.2 | 1653.5 | 3.77 | WIN | 3.72 | WIN | 0.43 | LOSS | +| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 21674.5 | 26902.6 | 1422.5 | 5.45 | WIN | 6.76 | WIN | 0.38 | LOSS | +| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 25627.8 | 25957.0 | 1403.9 | 6.16 | WIN | 6.24 | WIN | 0.36 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 5061.8 | 5118.6 | 1249.9 | 1.36 | WIN | 1.37 | WIN | 0.33 | LOSS | +| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 23987.1 | 24625.8 | 1328.4 | 6.46 | WIN | 6.63 | WIN | 0.36 | LOSS | +| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 54222.9 | 81416.4 | 2195.6 | 14.46 | WIN | 21.72 | WIN | 0.58 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 77685.0 | 74593.2 | 1816.2 | 20.06 | WIN | 19.26 | WIN | 0.47 | LOSS | +| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 105626.4 | 102196.2 | 1680.8 | 28.30 | WIN | 27.38 | WIN | 0.44 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 210186.7 | 206403.2 | 2679.3 | 54.10 | WIN | 53.13 | WIN | 0.70 | LOSS | +| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1736.4 | 1791.5 | 629.8 | 6.10 | WIN | 6.29 | WIN | 2.13 | WIN | +| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 3253.2 | 3392.3 | 913.9 | 11.22 | WIN | 11.70 | WIN | 3.20 | WIN | +| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 568.5 | - | 635.3 | 1.70 | WIN | - | n/a | 2.02 | WIN | +| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 2203.6 | 2167.9 | 637.7 | 6.97 | WIN | 6.86 | WIN | 1.99 | WIN | +| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 21284.3 | 29563.1 | 1162.1 | 7.76 | WIN | 10.78 | WIN | 0.42 | LOSS | +| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 6147.6 | 6055.4 | 1327.0 | 6.41 | WIN | 6.32 | WIN | 1.37 | WIN | +| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 2401.5 | 2445.3 | 598.1 | 7.59 | WIN | 7.73 | WIN | 1.91 | WIN | +| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 2414.2 | 2579.0 | 652.2 | 3.94 | WIN | 4.21 | WIN | 1.03 | PARITY | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 349.8 | 492.8 | 464.3 | 1.29 | WIN | 1.81 | WIN | 1.74 | WIN | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 602.0 | 701.8 | 740.1 | 0.92 | PARITY | 1.07 | PARITY | 1.11 | WIN | +| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 2862.6 | 3037.3 | 679.7 | 8.26 | WIN | 8.77 | WIN | 2.00 | WIN | +| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 2190.0 | 2244.8 | 570.5 | 11.74 | WIN | 12.03 | WIN | 3.06 | WIN | +| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 9313.9 | 9174.3 | 662.5 | 26.97 | WIN | 26.57 | WIN | 1.86 | WIN | +| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 26557.3 | 27339.2 | 731.3 | 72.53 | WIN | 74.67 | WIN | 2.09 | WIN | +| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 4991.5 | 5394.2 | 802.3 | 5.36 | WIN | 5.79 | WIN | 0.86 | LOSS | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 1,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 692.0 | 9803.4 | 14.17 | WIN | 1997.3 | 28440.0 | 14.24 | WIN | 9.55 | +| count vs duck count, engine | 692.0 | 9860.8 | 14.25 | WIN | 1997.3 | 29328.2 | 14.68 | WIN | 9.89 | +| any vs duck exists, wall | 693.9 | 879.6 | 1.27 | WIN | 1995.5 | 1262.4 | 0.63 | LOSS | 0.83 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 139.9 | 2079.4 | 14.86 | WIN | 0.34 | +| 2-4 | 9 | 544.2 | 7310.8 | 13.43 | WIN | 0.46 | +| 5-16 | 9 | 1383.8 | 20694.6 | 14.96 | WIN | 0.14 | +| 17+ | 18 | 3340.2 | 47270.7 | 14.15 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. + +### N = 1,000,000, DuckDB threads = 4 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1139.3 | 1264.4 | 927.9 | 8.10 | WIN | 8.99 | WIN | 6.50 | WIN | +| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1194.6 | 1195.2 | 875.1 | 8.62 | WIN | 8.63 | WIN | 6.35 | WIN | +| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 1018.2 | 1065.5 | 967.3 | 7.25 | WIN | 7.58 | WIN | 6.66 | WIN | +| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 1775.7 | 1627.2 | 1010.9 | 3.13 | WIN | 2.87 | WIN | 1.78 | WIN | +| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 1711.6 | 1854.9 | 1328.7 | 3.24 | WIN | 3.51 | WIN | 2.12 | WIN | +| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 1989.3 | 2067.8 | 1078.6 | 3.74 | WIN | 3.89 | WIN | 2.06 | WIN | +| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 1615.3 | 1660.1 | 1073.6 | 2.77 | WIN | 2.85 | WIN | 1.86 | WIN | +| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 3302.2 | 3247.2 | 1109.5 | 5.92 | WIN | 5.82 | WIN | 2.03 | WIN | +| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 7746.1 | 7615.0 | 1427.3 | 14.62 | WIN | 14.38 | WIN | 2.74 | WIN | +| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 2406.5 | 2385.2 | 1093.4 | 4.40 | WIN | 4.36 | WIN | 2.00 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 2341.8 | 2395.3 | 1109.9 | 4.36 | WIN | 4.46 | WIN | 2.10 | WIN | +| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 6041.2 | 6048.1 | 1085.5 | 11.70 | WIN | 11.72 | WIN | 2.13 | WIN | +| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 2556.5 | 2602.2 | 1608.9 | 2.66 | WIN | 2.71 | WIN | 1.67 | WIN | +| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 3211.5 | 3379.6 | 1232.4 | 2.36 | WIN | 2.48 | WIN | 0.90 | PARITY | +| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 3575.6 | 3563.6 | 1244.8 | 2.50 | WIN | 2.49 | WIN | 0.87 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 2206.0 | 2246.3 | 1314.8 | 1.54 | WIN | 1.57 | WIN | 0.92 | PARITY | +| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 7392.8 | 6884.2 | 1253.4 | 4.83 | WIN | 4.50 | WIN | 0.84 | LOSS | +| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 10587.5 | 10985.8 | 1334.6 | 7.47 | WIN | 7.75 | WIN | 0.95 | PARITY | +| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 6487.3 | 4835.1 | 2416.9 | 4.54 | WIN | 3.38 | WIN | 1.74 | WIN | +| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 10984.4 | 11573.4 | 1398.7 | 7.85 | WIN | 8.27 | WIN | 1.01 | PARITY | +| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 26765.5 | 27626.3 | 1583.2 | 17.93 | WIN | 18.50 | WIN | 1.04 | PARITY | +| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 5477.6 | 5055.0 | 2799.7 | 1.93 | WIN | 1.78 | WIN | 0.97 | PARITY | +| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 7021.7 | 6300.4 | 1972.2 | 2.41 | WIN | 2.17 | WIN | 0.68 | LOSS | +| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 9519.3 | 8798.6 | 2216.5 | 3.43 | WIN | 3.17 | WIN | 0.80 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 3657.2 | 3620.7 | 2005.9 | 1.29 | WIN | 1.28 | WIN | 0.70 | LOSS | +| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 9796.8 | 9902.8 | 1761.3 | 3.43 | WIN | 3.47 | WIN | 0.64 | LOSS | +| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 17303.5 | 17122.6 | 2216.9 | 6.18 | WIN | 6.12 | WIN | 0.80 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 7023.1 | 6161.9 | 3655.1 | 2.95 | WIN | 2.59 | WIN | 1.58 | WIN | +| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 14138.3 | 14204.1 | 2318.8 | 4.35 | WIN | 4.37 | WIN | 0.65 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 49926.1 | 50849.2 | 2620.3 | 17.59 | WIN | 17.92 | WIN | 0.90 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 5905.0 | 5666.5 | 2537.2 | 1.54 | WIN | 1.48 | WIN | 0.65 | LOSS | +| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 7744.7 | 7598.1 | 2176.2 | 1.95 | WIN | 1.91 | WIN | 0.58 | LOSS | +| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 9555.7 | 10058.7 | 1779.0 | 2.30 | WIN | 2.42 | WIN | 0.46 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 2949.7 | 2996.9 | 1687.7 | 0.79 | LOSS | 0.80 | LOSS | 0.44 | LOSS | +| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 9341.3 | 10687.1 | 2293.1 | 2.52 | WIN | 2.88 | WIN | 0.62 | LOSS | +| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 21958.3 | 18904.6 | 1900.8 | 5.86 | WIN | 5.04 | WIN | 0.50 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 26730.1 | 25867.3 | 7325.5 | 6.90 | WIN | 6.68 | WIN | 1.90 | WIN | +| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 36972.9 | 38432.2 | 2156.4 | 9.91 | WIN | 10.30 | WIN | 0.56 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 60307.6 | 66207.1 | 2320.7 | 15.52 | WIN | 17.04 | WIN | 0.61 | LOSS | +| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1192.5 | 1300.1 | 994.1 | 4.19 | WIN | 4.56 | WIN | 3.36 | WIN | +| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 1669.5 | 1835.7 | 1048.4 | 5.76 | WIN | 6.33 | WIN | 3.67 | WIN | +| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 714.9 | - | 802.7 | 2.14 | WIN | - | n/a | 2.56 | WIN | +| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 1582.3 | 1662.7 | 974.0 | 5.01 | WIN | 5.26 | WIN | 3.04 | WIN | +| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 7983.7 | 7986.8 | 1664.9 | 2.91 | WIN | 2.91 | WIN | 0.60 | LOSS | +| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 3516.8 | 3556.4 | 2077.6 | 3.67 | WIN | 3.71 | WIN | 2.15 | WIN | +| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 1566.7 | 1488.7 | 986.1 | 4.95 | WIN | 4.71 | WIN | 3.16 | WIN | +| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 1658.9 | 1662.9 | 1049.8 | 2.71 | WIN | 2.72 | WIN | 1.66 | WIN | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 554.7 | 597.6 | 740.4 | 2.04 | WIN | 2.20 | WIN | 2.77 | WIN | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 1155.3 | 824.1 | 985.5 | 1.76 | WIN | 1.25 | WIN | 1.48 | WIN | +| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 1765.1 | 1708.6 | 963.5 | 5.10 | WIN | 4.93 | WIN | 2.84 | WIN | +| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 1289.7 | 1252.5 | 845.3 | 6.91 | WIN | 6.71 | WIN | 4.54 | WIN | +| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 3894.8 | 4046.3 | 1001.5 | 11.28 | WIN | 11.72 | WIN | 2.81 | WIN | +| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 9881.9 | 9599.8 | 1034.7 | 26.99 | WIN | 26.22 | WIN | 2.96 | WIN | +| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 2810.4 | 2845.1 | 1117.8 | 3.02 | WIN | 3.05 | WIN | 1.19 | WIN | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 1,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 692.0 | 4023.8 | 5.81 | WIN | 1997.3 | 10548.1 | 5.28 | WIN | 4.30 | +| count vs duck count, engine | 692.0 | 4051.2 | 5.85 | WIN | 1997.3 | 10629.6 | 5.32 | WIN | 4.27 | +| any vs duck exists, wall | 693.9 | 1202.0 | 1.73 | WIN | 1995.5 | 1851.8 | 0.93 | PARITY | 1.19 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 139.9 | 1117.4 | 7.99 | WIN | 0.34 | +| 2-4 | 9 | 544.2 | 3214.4 | 5.91 | WIN | 0.46 | +| 5-16 | 9 | 1383.8 | 8196.3 | 5.92 | WIN | 0.14 | +| 17+ | 18 | 3340.2 | 16962.7 | 5.08 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. + + +# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 10,000,000 + +Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). + +Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 0), k3_tiny_and (target 50, achieved 0), k3_tiny_or (target 50, achieved 0), k3_tiny_mixed (target 50, achieved 0), k8_tiny_and (target 50, achieved 470), k8_tiny_or (target 50, achieved 0), k8_tiny_mixed (target 50, achieved 935), k17_tiny_and (target 50, achieved 467), k17_tiny_or (target 50, achieved 0), k17_tiny_mixed (target 50, achieved 467), k24_tiny_and (target 50, achieved 472), k24_tiny_or (target 50, achieved 0), k24_tiny_mixed (target 50, achieved 470) + +DuckDB build + ANALYZE: threads 1: 5,654,699 us (build 5,653,755, analyze 943); threads 4: 4,333,441 us (build 4,332,828, analyze 613) + +### N = 10,000,000, DuckDB threads = 1 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 477.0 | 592.1 | 591.0 | 0.28 | LOSS | 0.35 | LOSS | 0.36 | LOSS | +| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 16065.5 | 22896.0 | 920.9 | 9.54 | WIN | 13.59 | WIN | 0.54 | LOSS | +| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 14682.0 | 16553.4 | 627.6 | 8.40 | WIN | 9.47 | WIN | 0.36 | LOSS | +| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 36607.8 | 37059.9 | 40659.1 | 7.07 | WIN | 7.16 | WIN | 7.63 | WIN | +| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 34347.9 | 36076.6 | 699.2 | 6.34 | WIN | 6.66 | WIN | 0.13 | LOSS | +| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 41119.5 | 41982.1 | 713.7 | 7.83 | WIN | 8.00 | WIN | 0.13 | LOSS | +| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 539.0 | 582.3 | 606.5 | 0.10 | LOSS | 0.11 | LOSS | 0.11 | LOSS | +| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 66221.3 | 65374.4 | 1148.4 | 13.13 | WIN | 12.96 | WIN | 0.23 | LOSS | +| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 192171.0 | 191457.4 | 813.0 | 37.57 | WIN | 37.43 | WIN | 0.16 | LOSS | +| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 40150.0 | 55077.6 | 52672.7 | 7.39 | WIN | 10.14 | WIN | 9.31 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 47956.4 | 52098.6 | 791.7 | 8.08 | WIN | 8.78 | WIN | 0.14 | LOSS | +| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 145146.5 | 147578.6 | 816.5 | 25.93 | WIN | 26.36 | WIN | 0.15 | LOSS | +| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 54096.7 | 60818.1 | 1617.4 | 2.25 | WIN | 2.53 | WIN | 0.07 | LOSS | +| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 83866.3 | 82393.0 | 958.7 | 2.30 | WIN | 2.26 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 108897.6 | 106359.7 | 946.6 | 2.95 | WIN | 2.89 | WIN | 0.03 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 702.6 | 944.2 | 1262.4 | 0.02 | LOSS | 0.03 | LOSS | 0.03 | LOSS | +| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 173318.7 | 171537.3 | 957.7 | 4.75 | WIN | 4.70 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 310465.8 | 300716.6 | 995.7 | 8.66 | WIN | 8.39 | WIN | 0.03 | LOSS | +| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 150918.1 | 146203.9 | 1770.6 | 4.14 | WIN | 4.01 | WIN | 0.05 | LOSS | +| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 263585.0 | 291324.8 | 1106.1 | 7.17 | WIN | 7.93 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 717301.7 | 687487.8 | 1228.8 | 15.43 | WIN | 14.79 | WIN | 0.03 | LOSS | +| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 142113.7 | 145205.5 | 2076.0 | 1.91 | WIN | 1.96 | WIN | 0.03 | LOSS | +| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 159095.2 | 169152.2 | 1784.8 | 2.16 | WIN | 2.30 | WIN | 0.02 | LOSS | +| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 212825.2 | 222076.1 | 1341.8 | 2.84 | WIN | 2.96 | WIN | 0.02 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1041.1 | 932.3 | 1473.9 | 0.01 | LOSS | 0.01 | LOSS | 0.02 | LOSS | +| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 225787.9 | 239839.7 | 1347.3 | 3.06 | WIN | 3.25 | WIN | 0.02 | LOSS | +| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 478393.1 | 542011.3 | 1349.0 | 6.62 | WIN | 7.50 | WIN | 0.02 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 136162.5 | 132247.9 | 2176.5 | 3.26 | WIN | 3.16 | WIN | 0.04 | LOSS | +| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 293818.0 | 298033.9 | 1420.6 | 4.00 | WIN | 4.06 | WIN | 0.02 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 1382934.4 | 1401588.6 | 2389.6 | 18.53 | WIN | 18.78 | WIN | 0.03 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 147036.4 | 137556.3 | 1684.9 | 1.57 | WIN | 1.47 | WIN | 0.02 | LOSS | +| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 188568.6 | 187580.2 | 1508.9 | 2.11 | WIN | 2.10 | WIN | 0.02 | LOSS | +| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 248329.8 | 243513.3 | 1504.5 | 2.89 | WIN | 2.83 | WIN | 0.02 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1002.4 | 1046.2 | 1129.8 | 0.01 | LOSS | 0.01 | LOSS | 0.01 | LOSS | +| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 227149.9 | 239568.3 | 1463.5 | 2.51 | WIN | 2.65 | WIN | 0.02 | LOSS | +| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 572694.7 | 558926.0 | 1600.6 | 6.41 | WIN | 6.26 | WIN | 0.02 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 657116.1 | 567573.7 | 1916.5 | 7.24 | WIN | 6.25 | WIN | 0.02 | LOSS | +| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 932183.2 | 981755.7 | 1784.2 | 10.40 | WIN | 10.95 | WIN | 0.02 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 2090124.5 | 1985161.1 | 2006.5 | 24.37 | WIN | 23.15 | WIN | 0.02 | LOSS | +| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 14886.8 | 24485.8 | 972.8 | 4.09 | WIN | 6.72 | WIN | 0.28 | LOSS | +| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 25638.5 | 29261.4 | 1090.4 | 9.14 | WIN | 10.44 | WIN | 0.27 | LOSS | +| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 847.4 | - | 922.9 | 0.24 | LOSS | - | n/a | 0.27 | LOSS | +| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 22805.1 | 23057.3 | 713.4 | 6.65 | WIN | 6.72 | WIN | 0.21 | LOSS | +| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 217536.6 | 234985.9 | 1441.2 | 3.00 | WIN | 3.24 | WIN | 0.02 | LOSS | +| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 64305.0 | 64808.0 | 1413.1 | 3.23 | WIN | 3.26 | WIN | 0.07 | LOSS | +| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 28390.5 | 30240.1 | 668.0 | 8.04 | WIN | 8.56 | WIN | 0.19 | LOSS | +| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 31018.7 | 32148.3 | 782.3 | 2.53 | WIN | 2.62 | WIN | 0.06 | LOSS | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 727.8 | 683.2 | 856.1 | 0.25 | LOSS | 0.23 | LOSS | 0.29 | LOSS | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 711.0 | 789.9 | 821.3 | 0.09 | LOSS | 0.11 | LOSS | 0.10 | LOSS | +| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 36063.3 | 36621.3 | 1035.5 | 7.72 | WIN | 7.84 | WIN | 0.18 | LOSS | +| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 20619.5 | 20156.2 | 775.5 | 9.46 | WIN | 9.25 | WIN | 0.36 | LOSS | +| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 99873.4 | 132234.7 | 1117.0 | 21.32 | WIN | 28.23 | WIN | 0.28 | LOSS | +| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 268063.0 | 316992.9 | 787.3 | 67.76 | WIN | 80.13 | WIN | 0.20 | LOSS | +| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 70334.6 | 73451.0 | 814.6 | 3.21 | WIN | 3.35 | WIN | 0.04 | LOSS | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 10,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 12904.5 | 90393.4 | 7.00 | WIN | 46547.9 | 271667.0 | 5.84 | WIN | 3.06 | +| count vs duck count, engine | 12904.5 | 92188.6 | 7.14 | WIN | 46547.9 | 270997.0 | 5.82 | WIN | 3.19 | +| any vs duck exists, wall | 12913.8 | 5567.0 | 0.43 | LOSS | 46604.5 | 3637.5 | 0.08 | LOSS | 0.06 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 1707.2 | 10408.2 | 6.10 | WIN | 0.34 | +| 2-4 | 9 | 5367.4 | 67139.9 | 12.51 | WIN | 0.46 | +| 5-16 | 9 | 36199.5 | 207017.0 | 5.72 | WIN | 0.14 | +| 17+ | 18 | 79785.8 | 449798.7 | 5.64 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. + +### N = 10,000,000, DuckDB threads = 4 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 749.2 | 608.7 | 740.3 | 0.44 | LOSS | 0.36 | LOSS | 0.44 | LOSS | +| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 4115.6 | 4174.6 | 878.1 | 2.44 | WIN | 2.48 | WIN | 0.52 | LOSS | +| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 4483.3 | 4355.8 | 913.8 | 2.56 | WIN | 2.49 | WIN | 0.52 | LOSS | +| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 10953.8 | 10635.1 | 10197.0 | 2.12 | WIN | 2.05 | WIN | 1.91 | WIN | +| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 9979.6 | 10728.6 | 1034.5 | 1.84 | WIN | 1.98 | WIN | 0.19 | LOSS | +| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 12053.1 | 12181.6 | 1018.2 | 2.30 | WIN | 2.32 | WIN | 0.19 | LOSS | +| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 648.2 | 678.1 | 750.1 | 0.12 | LOSS | 0.13 | LOSS | 0.14 | LOSS | +| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 18505.3 | 18795.1 | 1011.7 | 3.67 | WIN | 3.73 | WIN | 0.20 | LOSS | +| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 50145.2 | 54685.3 | 1035.6 | 9.80 | WIN | 10.69 | WIN | 0.20 | LOSS | +| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 10858.1 | 10898.2 | 11380.8 | 2.00 | WIN | 2.01 | WIN | 2.01 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 13830.3 | 12542.5 | 976.2 | 2.33 | WIN | 2.11 | WIN | 0.17 | LOSS | +| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 37466.7 | 40296.9 | 1052.1 | 6.69 | WIN | 7.20 | WIN | 0.20 | LOSS | +| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 16602.2 | 19904.8 | 1921.7 | 0.69 | LOSS | 0.83 | LOSS | 0.09 | LOSS | +| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 26988.8 | 24283.4 | 1249.7 | 0.74 | LOSS | 0.67 | LOSS | 0.03 | LOSS | +| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 30166.4 | 29397.2 | 1241.5 | 0.82 | LOSS | 0.80 | LOSS | 0.03 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 798.1 | 851.8 | 1022.5 | 0.02 | LOSS | 0.02 | LOSS | 0.03 | LOSS | +| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 51723.3 | 46573.0 | 1226.4 | 1.42 | WIN | 1.28 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 84262.8 | 89431.8 | 1399.6 | 2.35 | WIN | 2.50 | WIN | 0.04 | LOSS | +| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 43857.1 | 43639.9 | 2757.2 | 1.20 | WIN | 1.20 | WIN | 0.07 | LOSS | +| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 78663.7 | 87577.5 | 1337.5 | 2.14 | WIN | 2.38 | WIN | 0.04 | LOSS | +| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 187067.9 | 192926.0 | 1470.6 | 4.02 | WIN | 4.15 | WIN | 0.03 | LOSS | +| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 41400.9 | 37266.6 | 2457.8 | 0.56 | LOSS | 0.50 | LOSS | 0.03 | LOSS | +| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 43895.3 | 45147.6 | 1538.0 | 0.60 | LOSS | 0.61 | LOSS | 0.02 | LOSS | +| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 57312.3 | 55350.1 | 1651.6 | 0.76 | LOSS | 0.74 | LOSS | 0.02 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1239.1 | 1011.0 | 1299.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | +| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 70731.7 | 71277.0 | 1534.5 | 0.96 | PARITY | 0.97 | PARITY | 0.02 | LOSS | +| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 132258.5 | 128086.9 | 1600.5 | 1.83 | WIN | 1.77 | WIN | 0.02 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 37984.4 | 42628.1 | 3366.9 | 0.91 | PARITY | 1.02 | PARITY | 0.07 | LOSS | +| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 82346.8 | 85098.5 | 1813.5 | 1.12 | WIN | 1.16 | WIN | 0.02 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 363912.1 | 367205.7 | 2557.8 | 4.88 | WIN | 4.92 | WIN | 0.03 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 42430.7 | 53442.5 | 2717.2 | 0.45 | LOSS | 0.57 | LOSS | 0.03 | LOSS | +| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 55181.2 | 65205.9 | 2579.0 | 0.62 | LOSS | 0.73 | LOSS | 0.03 | LOSS | +| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 68975.0 | 69978.9 | 2407.8 | 0.80 | LOSS | 0.81 | LOSS | 0.03 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1637.8 | 1171.0 | 1724.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | +| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 88748.3 | 104740.6 | 3027.8 | 0.98 | PARITY | 1.16 | WIN | 0.04 | LOSS | +| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 215605.7 | 212426.9 | 3283.8 | 2.41 | WIN | 2.38 | WIN | 0.04 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 183991.0 | 179896.0 | 7625.6 | 2.03 | WIN | 1.98 | WIN | 0.08 | LOSS | +| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 268751.0 | 291474.1 | 2621.0 | 3.00 | WIN | 3.25 | WIN | 0.03 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 556772.8 | 516854.5 | 2286.9 | 6.49 | WIN | 6.03 | WIN | 0.03 | LOSS | +| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 3725.4 | 4034.9 | 901.8 | 1.02 | PARITY | 1.11 | WIN | 0.26 | LOSS | +| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 7062.0 | 7261.5 | 1009.7 | 2.52 | WIN | 2.59 | WIN | 0.25 | LOSS | +| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 633.2 | - | 771.4 | 0.18 | LOSS | - | n/a | 0.22 | LOSS | +| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 5287.0 | 5569.3 | 916.4 | 1.54 | WIN | 1.62 | WIN | 0.26 | LOSS | +| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 57095.4 | 59265.9 | 1649.1 | 0.79 | LOSS | 0.82 | LOSS | 0.02 | LOSS | +| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 18712.3 | 19949.1 | 2643.1 | 0.94 | PARITY | 1.00 | PARITY | 0.13 | LOSS | +| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 7181.1 | 6992.3 | 921.0 | 2.03 | WIN | 1.98 | WIN | 0.26 | LOSS | +| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 6878.6 | 6917.5 | 949.2 | 0.56 | LOSS | 0.56 | LOSS | 0.07 | LOSS | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 656.9 | 676.6 | 947.9 | 0.22 | LOSS | 0.23 | LOSS | 0.33 | LOSS | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 790.0 | 882.2 | 949.5 | 0.11 | LOSS | 0.12 | LOSS | 0.12 | LOSS | +| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 8346.3 | 8109.7 | 961.5 | 1.79 | WIN | 1.74 | WIN | 0.17 | LOSS | +| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 5210.3 | 5399.1 | 1018.5 | 2.39 | WIN | 2.48 | WIN | 0.47 | LOSS | +| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 26963.6 | 27898.9 | 1347.2 | 5.76 | WIN | 5.96 | WIN | 0.33 | LOSS | +| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 74116.9 | 74124.0 | 1188.5 | 18.74 | WIN | 18.74 | WIN | 0.30 | LOSS | +| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 17936.4 | 17825.6 | 1060.5 | 0.82 | LOSS | 0.81 | LOSS | 0.05 | LOSS | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 10,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 12904.5 | 25265.7 | 1.96 | WIN | 46547.9 | 77105.0 | 1.66 | WIN | 1.07 | +| count vs duck count, engine | 12904.5 | 25875.0 | 2.01 | WIN | 46547.9 | 78036.6 | 1.68 | WIN | 1.08 | +| any vs duck exists, wall | 12913.8 | 2107.0 | 0.16 | LOSS | 46604.5 | 2325.8 | 0.05 | LOSS | 0.07 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 1707.2 | 3116.0 | 1.83 | WIN | 0.34 | +| 2-4 | 9 | 5367.4 | 18271.1 | 3.40 | WIN | 0.46 | +| 5-16 | 9 | 36199.5 | 57792.3 | 1.60 | WIN | 0.14 | +| 17+ | 18 | 79785.8 | 128509.7 | 1.61 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. + + diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md new file mode 100644 index 000000000..6b990e3b7 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md @@ -0,0 +1,168 @@ +# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 1,000,000 + +Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). + +Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 1,000), k3_tiny_and (target 50, achieved 765), k3_tiny_or (target 50, achieved 999), k3_tiny_mixed (target 50, achieved 428), k8_tiny_or (target 50, achieved 999), k17_tiny_or (target 50, achieved 1,000), k24_tiny_or (target 50, achieved 1,001) + +DuckDB build + ANALYZE: threads 1: 433,303 us (build 432,942, analyze 362); threads 4: 408,392 us (build 407,967, analyze 425) + +### N = 1,000,000, DuckDB threads = 1 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1918.3 | 1981.6 | 589.4 | 13.64 | WIN | 14.09 | WIN | 4.13 | WIN | +| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1739.0 | 1799.0 | 852.7 | 12.55 | WIN | 12.98 | WIN | 6.18 | WIN | +| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 2580.9 | 2118.7 | 744.5 | 18.37 | WIN | 15.08 | WIN | 5.13 | WIN | +| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 4638.3 | 4933.6 | 842.4 | 8.17 | WIN | 8.69 | WIN | 1.48 | WIN | +| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 3490.4 | 4234.6 | 902.7 | 6.60 | WIN | 8.01 | WIN | 1.44 | WIN | +| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 3341.9 | 3411.8 | 874.7 | 6.29 | WIN | 6.42 | WIN | 1.67 | WIN | +| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 2403.1 | 2950.3 | 965.6 | 4.13 | WIN | 5.07 | WIN | 1.67 | WIN | +| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 6476.5 | 6880.9 | 691.1 | 11.61 | WIN | 12.34 | WIN | 1.26 | WIN | +| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 21854.9 | 20115.1 | 728.7 | 41.26 | WIN | 37.97 | WIN | 1.40 | WIN | +| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 3714.8 | 3736.2 | 730.0 | 6.79 | WIN | 6.83 | WIN | 1.34 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 4009.3 | 4073.9 | 721.6 | 7.47 | WIN | 7.59 | WIN | 1.36 | WIN | +| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 15868.0 | 14564.6 | 1095.7 | 30.74 | WIN | 28.22 | WIN | 2.15 | WIN | +| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 4496.9 | 4455.4 | 1017.4 | 4.69 | WIN | 4.64 | WIN | 1.05 | PARITY | +| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 6335.4 | 6355.1 | 881.7 | 4.65 | WIN | 4.66 | WIN | 0.65 | LOSS | +| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 7755.4 | 8069.1 | 881.5 | 5.41 | WIN | 5.63 | WIN | 0.62 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 3547.2 | 3593.4 | 870.5 | 2.48 | WIN | 2.51 | WIN | 0.61 | LOSS | +| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 16571.5 | 17463.0 | 954.4 | 10.83 | WIN | 11.41 | WIN | 0.64 | LOSS | +| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 30636.8 | 30176.8 | 946.6 | 21.62 | WIN | 21.29 | WIN | 0.67 | LOSS | +| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 14878.0 | 14745.0 | 1692.6 | 10.41 | WIN | 10.32 | WIN | 1.22 | WIN | +| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 27575.4 | 28051.8 | 1012.8 | 19.71 | WIN | 20.05 | WIN | 0.73 | LOSS | +| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 74454.8 | 75137.7 | 1078.1 | 49.87 | WIN | 50.33 | WIN | 0.71 | LOSS | +| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 15133.9 | 20282.9 | 2743.6 | 5.33 | WIN | 7.14 | WIN | 0.95 | PARITY | +| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 17023.7 | 15953.3 | 1162.3 | 5.85 | WIN | 5.48 | WIN | 0.40 | LOSS | +| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 20204.8 | 20222.8 | 1175.4 | 7.28 | WIN | 7.28 | WIN | 0.43 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 4772.1 | 5143.0 | 1062.8 | 1.68 | WIN | 1.81 | WIN | 0.37 | LOSS | +| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 22157.3 | 22382.8 | 1163.2 | 7.77 | WIN | 7.84 | WIN | 0.42 | LOSS | +| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 46298.8 | 55727.1 | 1836.9 | 16.54 | WIN | 19.91 | WIN | 0.66 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 14384.5 | 14225.7 | 2724.9 | 6.05 | WIN | 5.98 | WIN | 1.18 | WIN | +| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 32478.6 | 31778.7 | 1308.0 | 9.99 | WIN | 9.77 | WIN | 0.37 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 139929.3 | 137801.1 | 1552.6 | 49.30 | WIN | 48.55 | WIN | 0.53 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 14418.2 | 14223.2 | 1653.5 | 3.77 | WIN | 3.72 | WIN | 0.43 | LOSS | +| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 21674.5 | 26902.6 | 1422.5 | 5.45 | WIN | 6.76 | WIN | 0.38 | LOSS | +| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 25627.8 | 25957.0 | 1403.9 | 6.16 | WIN | 6.24 | WIN | 0.36 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 5061.8 | 5118.6 | 1249.9 | 1.36 | WIN | 1.37 | WIN | 0.33 | LOSS | +| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 23987.1 | 24625.8 | 1328.4 | 6.46 | WIN | 6.63 | WIN | 0.36 | LOSS | +| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 54222.9 | 81416.4 | 2195.6 | 14.46 | WIN | 21.72 | WIN | 0.58 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 77685.0 | 74593.2 | 1816.2 | 20.06 | WIN | 19.26 | WIN | 0.47 | LOSS | +| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 105626.4 | 102196.2 | 1680.8 | 28.30 | WIN | 27.38 | WIN | 0.44 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 210186.7 | 206403.2 | 2679.3 | 54.10 | WIN | 53.13 | WIN | 0.70 | LOSS | +| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1736.4 | 1791.5 | 629.8 | 6.10 | WIN | 6.29 | WIN | 2.13 | WIN | +| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 3253.2 | 3392.3 | 913.9 | 11.22 | WIN | 11.70 | WIN | 3.20 | WIN | +| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 568.5 | - | 635.3 | 1.70 | WIN | - | n/a | 2.02 | WIN | +| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 2203.6 | 2167.9 | 637.7 | 6.97 | WIN | 6.86 | WIN | 1.99 | WIN | +| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 21284.3 | 29563.1 | 1162.1 | 7.76 | WIN | 10.78 | WIN | 0.42 | LOSS | +| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 6147.6 | 6055.4 | 1327.0 | 6.41 | WIN | 6.32 | WIN | 1.37 | WIN | +| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 2401.5 | 2445.3 | 598.1 | 7.59 | WIN | 7.73 | WIN | 1.91 | WIN | +| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 2414.2 | 2579.0 | 652.2 | 3.94 | WIN | 4.21 | WIN | 1.03 | PARITY | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 349.8 | 492.8 | 464.3 | 1.29 | WIN | 1.81 | WIN | 1.74 | WIN | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 602.0 | 701.8 | 740.1 | 0.92 | PARITY | 1.07 | PARITY | 1.11 | WIN | +| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 2862.6 | 3037.3 | 679.7 | 8.26 | WIN | 8.77 | WIN | 2.00 | WIN | +| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 2190.0 | 2244.8 | 570.5 | 11.74 | WIN | 12.03 | WIN | 3.06 | WIN | +| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 9313.9 | 9174.3 | 662.5 | 26.97 | WIN | 26.57 | WIN | 1.86 | WIN | +| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 26557.3 | 27339.2 | 731.3 | 72.53 | WIN | 74.67 | WIN | 2.09 | WIN | +| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 4991.5 | 5394.2 | 802.3 | 5.36 | WIN | 5.79 | WIN | 0.86 | LOSS | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 1,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 692.0 | 9803.4 | 14.17 | WIN | 1997.3 | 28440.0 | 14.24 | WIN | 9.55 | +| count vs duck count, engine | 692.0 | 9860.8 | 14.25 | WIN | 1997.3 | 29328.2 | 14.68 | WIN | 9.89 | +| any vs duck exists, wall | 693.9 | 879.6 | 1.27 | WIN | 1995.5 | 1262.4 | 0.63 | LOSS | 0.83 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 139.9 | 2079.4 | 14.86 | WIN | 0.34 | +| 2-4 | 9 | 544.2 | 7310.8 | 13.43 | WIN | 0.46 | +| 5-16 | 9 | 1383.8 | 20694.6 | 14.96 | WIN | 0.14 | +| 17+ | 18 | 3340.2 | 47270.7 | 14.15 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. + +### N = 1,000,000, DuckDB threads = 4 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1139.3 | 1264.4 | 927.9 | 8.10 | WIN | 8.99 | WIN | 6.50 | WIN | +| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1194.6 | 1195.2 | 875.1 | 8.62 | WIN | 8.63 | WIN | 6.35 | WIN | +| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 1018.2 | 1065.5 | 967.3 | 7.25 | WIN | 7.58 | WIN | 6.66 | WIN | +| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 1775.7 | 1627.2 | 1010.9 | 3.13 | WIN | 2.87 | WIN | 1.78 | WIN | +| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 1711.6 | 1854.9 | 1328.7 | 3.24 | WIN | 3.51 | WIN | 2.12 | WIN | +| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 1989.3 | 2067.8 | 1078.6 | 3.74 | WIN | 3.89 | WIN | 2.06 | WIN | +| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 1615.3 | 1660.1 | 1073.6 | 2.77 | WIN | 2.85 | WIN | 1.86 | WIN | +| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 3302.2 | 3247.2 | 1109.5 | 5.92 | WIN | 5.82 | WIN | 2.03 | WIN | +| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 7746.1 | 7615.0 | 1427.3 | 14.62 | WIN | 14.38 | WIN | 2.74 | WIN | +| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 2406.5 | 2385.2 | 1093.4 | 4.40 | WIN | 4.36 | WIN | 2.00 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 2341.8 | 2395.3 | 1109.9 | 4.36 | WIN | 4.46 | WIN | 2.10 | WIN | +| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 6041.2 | 6048.1 | 1085.5 | 11.70 | WIN | 11.72 | WIN | 2.13 | WIN | +| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 2556.5 | 2602.2 | 1608.9 | 2.66 | WIN | 2.71 | WIN | 1.67 | WIN | +| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 3211.5 | 3379.6 | 1232.4 | 2.36 | WIN | 2.48 | WIN | 0.90 | PARITY | +| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 3575.6 | 3563.6 | 1244.8 | 2.50 | WIN | 2.49 | WIN | 0.87 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 2206.0 | 2246.3 | 1314.8 | 1.54 | WIN | 1.57 | WIN | 0.92 | PARITY | +| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 7392.8 | 6884.2 | 1253.4 | 4.83 | WIN | 4.50 | WIN | 0.84 | LOSS | +| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 10587.5 | 10985.8 | 1334.6 | 7.47 | WIN | 7.75 | WIN | 0.95 | PARITY | +| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 6487.3 | 4835.1 | 2416.9 | 4.54 | WIN | 3.38 | WIN | 1.74 | WIN | +| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 10984.4 | 11573.4 | 1398.7 | 7.85 | WIN | 8.27 | WIN | 1.01 | PARITY | +| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 26765.5 | 27626.3 | 1583.2 | 17.93 | WIN | 18.50 | WIN | 1.04 | PARITY | +| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 5477.6 | 5055.0 | 2799.7 | 1.93 | WIN | 1.78 | WIN | 0.97 | PARITY | +| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 7021.7 | 6300.4 | 1972.2 | 2.41 | WIN | 2.17 | WIN | 0.68 | LOSS | +| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 9519.3 | 8798.6 | 2216.5 | 3.43 | WIN | 3.17 | WIN | 0.80 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 3657.2 | 3620.7 | 2005.9 | 1.29 | WIN | 1.28 | WIN | 0.70 | LOSS | +| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 9796.8 | 9902.8 | 1761.3 | 3.43 | WIN | 3.47 | WIN | 0.64 | LOSS | +| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 17303.5 | 17122.6 | 2216.9 | 6.18 | WIN | 6.12 | WIN | 0.80 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 7023.1 | 6161.9 | 3655.1 | 2.95 | WIN | 2.59 | WIN | 1.58 | WIN | +| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 14138.3 | 14204.1 | 2318.8 | 4.35 | WIN | 4.37 | WIN | 0.65 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 49926.1 | 50849.2 | 2620.3 | 17.59 | WIN | 17.92 | WIN | 0.90 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 5905.0 | 5666.5 | 2537.2 | 1.54 | WIN | 1.48 | WIN | 0.65 | LOSS | +| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 7744.7 | 7598.1 | 2176.2 | 1.95 | WIN | 1.91 | WIN | 0.58 | LOSS | +| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 9555.7 | 10058.7 | 1779.0 | 2.30 | WIN | 2.42 | WIN | 0.46 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 2949.7 | 2996.9 | 1687.7 | 0.79 | LOSS | 0.80 | LOSS | 0.44 | LOSS | +| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 9341.3 | 10687.1 | 2293.1 | 2.52 | WIN | 2.88 | WIN | 0.62 | LOSS | +| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 21958.3 | 18904.6 | 1900.8 | 5.86 | WIN | 5.04 | WIN | 0.50 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 26730.1 | 25867.3 | 7325.5 | 6.90 | WIN | 6.68 | WIN | 1.90 | WIN | +| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 36972.9 | 38432.2 | 2156.4 | 9.91 | WIN | 10.30 | WIN | 0.56 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 60307.6 | 66207.1 | 2320.7 | 15.52 | WIN | 17.04 | WIN | 0.61 | LOSS | +| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1192.5 | 1300.1 | 994.1 | 4.19 | WIN | 4.56 | WIN | 3.36 | WIN | +| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 1669.5 | 1835.7 | 1048.4 | 5.76 | WIN | 6.33 | WIN | 3.67 | WIN | +| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 714.9 | - | 802.7 | 2.14 | WIN | - | n/a | 2.56 | WIN | +| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 1582.3 | 1662.7 | 974.0 | 5.01 | WIN | 5.26 | WIN | 3.04 | WIN | +| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 7983.7 | 7986.8 | 1664.9 | 2.91 | WIN | 2.91 | WIN | 0.60 | LOSS | +| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 3516.8 | 3556.4 | 2077.6 | 3.67 | WIN | 3.71 | WIN | 2.15 | WIN | +| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 1566.7 | 1488.7 | 986.1 | 4.95 | WIN | 4.71 | WIN | 3.16 | WIN | +| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 1658.9 | 1662.9 | 1049.8 | 2.71 | WIN | 2.72 | WIN | 1.66 | WIN | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 554.7 | 597.6 | 740.4 | 2.04 | WIN | 2.20 | WIN | 2.77 | WIN | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 1155.3 | 824.1 | 985.5 | 1.76 | WIN | 1.25 | WIN | 1.48 | WIN | +| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 1765.1 | 1708.6 | 963.5 | 5.10 | WIN | 4.93 | WIN | 2.84 | WIN | +| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 1289.7 | 1252.5 | 845.3 | 6.91 | WIN | 6.71 | WIN | 4.54 | WIN | +| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 3894.8 | 4046.3 | 1001.5 | 11.28 | WIN | 11.72 | WIN | 2.81 | WIN | +| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 9881.9 | 9599.8 | 1034.7 | 26.99 | WIN | 26.22 | WIN | 2.96 | WIN | +| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 2810.4 | 2845.1 | 1117.8 | 3.02 | WIN | 3.05 | WIN | 1.19 | WIN | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 1,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 692.0 | 4023.8 | 5.81 | WIN | 1997.3 | 10548.1 | 5.28 | WIN | 4.30 | +| count vs duck count, engine | 692.0 | 4051.2 | 5.85 | WIN | 1997.3 | 10629.6 | 5.32 | WIN | 4.27 | +| any vs duck exists, wall | 693.9 | 1202.0 | 1.73 | WIN | 1995.5 | 1851.8 | 0.93 | PARITY | 1.19 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 139.9 | 1117.4 | 7.99 | WIN | 0.34 | +| 2-4 | 9 | 544.2 | 3214.4 | 5.91 | WIN | 0.46 | +| 5-16 | 9 | 1383.8 | 8196.3 | 5.92 | WIN | 0.14 | +| 17+ | 18 | 3340.2 | 16962.7 | 5.08 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. + diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt new file mode 100644 index 000000000..aeb108353 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt @@ -0,0 +1,143 @@ +-- k17_medium_and (K group 17+) +-- WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829)) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 2.8e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.000058247999999999995, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": [ + "((c8 >= 171) AND (c8 < 829))", + "((c4 >= 172) AND (c4 < 829))", + "(c5 < 829)", + "(c1 >= 171)", + "(c12 < 829)", + "(c7 >= 171)", + "(c14 < 829)", + "(c13 >= 171)", + "(c2 < 829)", + "(c9 >= 171)", + "(c3 < 829)", + "(c0 >= 171)", + "(c11 < 829)", + "(c6 >= 171)", + "(c10 < 829)" + ], + "Estimated Cardinality": "200000" + }, + "intermediate_rows": 9754, + "intermediate_size_bytes": 585240, + "row_groups_scanned": 9, + "rows_scanned": 1000000, + "timing": 0.014411654000000005, + "total_row_groups_to_scan": 9, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.000005033, + "aggregate_reuse": 0.000002151, + "build_side_probe_side": 0.000001325, + "column_lifetime": 0.000001957, + "common_aggregate": 9.67e-7, + "common_subexpressions": 0.000001002, + "common_subplan": 0.000012661, + "cte_filter_pusher": 5.67e-7, + "cte_inlining": 5.31e-7, + "deliminator": 7.71e-7, + "duplicate_groups": 0.000001121, + "empty_result_pullup": 3.77e-7, + "expression_rewriter": 0.000119512, + "filter_pullup": 0.000001034, + "filter_pushdown": 0.000093589, + "grouping_sets": 4.17e-7, + "in_clause": 5.74e-7, + "join_elimination": 0.000001349, + "join_filter_pushdown": 3.74e-7, + "join_order": 0.000051331, + "late_materialization": 7.28e-7, + "limit_pushdown": 4.63e-7, + "outer_join_simplification": 0.000002255, + "partial_aggregate_pushdown": 0.00000132, + "partitioned_execution": 4.7e-7, + "projection_placement": 0.000001254, + "projection_pullup": 0.000001041, + "redundant_order_keys": 0.000002542, + "regex_range": 5.12e-7, + "reorder_filter": 4.8e-7, + "row_group_pruner": 3.45e-7, + "row_number_rewriter": 4.82e-7, + "sampling_pushdown": 3.87e-7, + "scalar_fn_pushdown": 2.81e-7, + "statistics_propagation": 0.000072785, + "top_n": 4.25e-7, + "top_n_window_elimination": 0.000002373, + "total_time": 0.00047628, + "type_pushdown": 3.55e-7, + "unnest_rewriter": 8.18e-7, + "unused_columns": 0.000036548, + "window_self_join": 5.54e-7 + }, + "physical_planner": { + "column_binding": 0.000001977, + "create_plan": 0.000020864, + "resolve_types": 2.71e-7, + "total_time": 0.000028071 + }, + "planner": { + "binding_time": 0.000201244, + "total_time": 0.000274912 + }, + "query": { + "cpu_time": 0.014470182000000005, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829))", + "total_intermediate_rows": 9755, + "total_intermediate_size_bytes": 585248, + "total_row_groups_scanned": 9, + "total_row_groups_to_scan": 9, + "total_rows_scanned": 1000000, + "total_time": 0.016655088 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 82549032, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt new file mode 100644 index 000000000..510b084c9 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt @@ -0,0 +1,127 @@ +-- k1_medium_single (K group 1) +-- WHERE (c5 < 10) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 3.4e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.00010689099999999999, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": "(c5 < 10)", + "Estimated Cardinality": "200000" + }, + "intermediate_rows": 10000, + "intermediate_size_bytes": 40000, + "row_groups_scanned": 9, + "rows_scanned": 1000000, + "timing": 0.001925262, + "total_row_groups_to_scan": 9, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.000007391, + "aggregate_reuse": 0.000002205, + "build_side_probe_side": 0.000001594, + "column_lifetime": 0.000002727, + "common_aggregate": 0.000001384, + "common_subexpressions": 0.000001219, + "common_subplan": 0.000027769, + "cte_filter_pusher": 6.34e-7, + "cte_inlining": 6.64e-7, + "deliminator": 8.44e-7, + "duplicate_groups": 0.000001424, + "empty_result_pullup": 4.7e-7, + "expression_rewriter": 0.000040484, + "filter_pullup": 0.000001148, + "filter_pushdown": 0.000024819, + "grouping_sets": 5.42e-7, + "in_clause": 6.53e-7, + "join_elimination": 0.000001663, + "join_filter_pushdown": 5.32e-7, + "join_order": 0.000033117, + "late_materialization": 0.000001021, + "limit_pushdown": 5.32e-7, + "outer_join_simplification": 0.000002598, + "partial_aggregate_pushdown": 0.000001582, + "partitioned_execution": 5.73e-7, + "projection_placement": 0.000001492, + "projection_pullup": 0.000001339, + "redundant_order_keys": 0.000001903, + "regex_range": 5.17e-7, + "reorder_filter": 6.6e-7, + "row_group_pruner": 4.49e-7, + "row_number_rewriter": 6.07e-7, + "sampling_pushdown": 4.52e-7, + "scalar_fn_pushdown": 3.16e-7, + "statistics_propagation": 0.000038084, + "top_n": 5.29e-7, + "top_n_window_elimination": 0.000002975, + "total_time": 0.000295786, + "type_pushdown": 4.79e-7, + "unnest_rewriter": 9.13e-7, + "unused_columns": 0.000012075, + "window_self_join": 0.000001396 + }, + "physical_planner": { + "column_binding": 0.000002275, + "create_plan": 0.00001432, + "resolve_types": 2.46e-7, + "total_time": 0.000022179 + }, + "planner": { + "binding_time": 0.000122667, + "total_time": 0.000198134 + }, + "query": { + "cpu_time": 0.0020324930000000002, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE (c5 < 10)", + "total_intermediate_rows": 10001, + "total_intermediate_size_bytes": 40008, + "total_row_groups_scanned": 9, + "total_row_groups_to_scan": 9, + "total_rows_scanned": 1000000, + "total_time": 0.00297264 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 82450728, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt new file mode 100644 index 000000000..ac741b80e --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt @@ -0,0 +1,131 @@ +-- k3_medium_and (K group 2-4) +-- WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207)) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 3.02e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.00004471000000000002, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": [ + "(c6 < 207)", + "(c10 >= 793)", + "(c2 < 207)" + ], + "Estimated Cardinality": "200000" + }, + "intermediate_rows": 10139, + "intermediate_size_bytes": 121668, + "row_groups_scanned": 9, + "rows_scanned": 1000000, + "timing": 0.0027193840000000013, + "total_row_groups_to_scan": 9, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.000005574, + "aggregate_reuse": 0.000001948, + "build_side_probe_side": 0.000001316, + "column_lifetime": 0.000002359, + "common_aggregate": 0.000001135, + "common_subexpressions": 0.00005113, + "common_subplan": 0.000013522, + "cte_filter_pusher": 5.81e-7, + "cte_inlining": 5.65e-7, + "deliminator": 6.23e-7, + "duplicate_groups": 0.000001064, + "empty_result_pullup": 3.31e-7, + "expression_rewriter": 0.000045855, + "filter_pullup": 0.000001043, + "filter_pushdown": 0.000043169, + "grouping_sets": 5.12e-7, + "in_clause": 6.91e-7, + "join_elimination": 0.000001337, + "join_filter_pushdown": 4.49e-7, + "join_order": 0.000030586, + "late_materialization": 8.63e-7, + "limit_pushdown": 4.26e-7, + "outer_join_simplification": 0.000002105, + "partial_aggregate_pushdown": 0.000001279, + "partitioned_execution": 4.67e-7, + "projection_placement": 0.000001189, + "projection_pullup": 0.000001248, + "redundant_order_keys": 0.00000157, + "regex_range": 4.71e-7, + "reorder_filter": 6.09e-7, + "row_group_pruner": 3.73e-7, + "row_number_rewriter": 4.58e-7, + "sampling_pushdown": 4.14e-7, + "scalar_fn_pushdown": 2.1e-7, + "statistics_propagation": 0.000037293, + "top_n": 3.91e-7, + "top_n_window_elimination": 0.000002551, + "total_time": 0.00032446, + "type_pushdown": 3.22e-7, + "unnest_rewriter": 8.29e-7, + "unused_columns": 0.000013264, + "window_self_join": 5.98e-7 + }, + "physical_planner": { + "column_binding": 0.000002066, + "create_plan": 0.000011922, + "resolve_types": 1.9e-7, + "total_time": 0.000024928 + }, + "planner": { + "binding_time": 0.000111012, + "total_time": 0.000167176 + }, + "query": { + "cpu_time": 0.0027643960000000014, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207))", + "total_intermediate_rows": 10140, + "total_intermediate_size_bytes": 121676, + "total_row_groups_scanned": 9, + "total_row_groups_to_scan": 9, + "total_rows_scanned": 1000000, + "total_time": 0.0038337 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 82450728, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt new file mode 100644 index 000000000..a67328749 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt @@ -0,0 +1,136 @@ +-- k8_medium_and (K group 5-16) +-- WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368)) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 1.32e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.00005236500000000002, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": [ + "(c3 < 632)", + "(c6 >= 368)", + "(c8 < 632)", + "(c11 >= 368)", + "(c9 < 632)", + "(c0 >= 368)", + "(c7 < 632)", + "(c2 >= 368)" + ], + "Estimated Cardinality": "200000" + }, + "intermediate_rows": 10097, + "intermediate_size_bytes": 323104, + "row_groups_scanned": 9, + "rows_scanned": 1000000, + "timing": 0.006398797999999997, + "total_row_groups_to_scan": 9, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.000004997, + "aggregate_reuse": 0.00000192, + "build_side_probe_side": 0.000001258, + "column_lifetime": 0.000002384, + "common_aggregate": 0.000001172, + "common_subexpressions": 9.55e-7, + "common_subplan": 0.00001125, + "cte_filter_pusher": 5.83e-7, + "cte_inlining": 4.86e-7, + "deliminator": 5.95e-7, + "duplicate_groups": 0.000001103, + "empty_result_pullup": 3.75e-7, + "expression_rewriter": 0.000072562, + "filter_pullup": 0.000001044, + "filter_pushdown": 0.000052411, + "grouping_sets": 4.32e-7, + "in_clause": 6.03e-7, + "join_elimination": 0.000001221, + "join_filter_pushdown": 5.01e-7, + "join_order": 0.000039156, + "late_materialization": 8.57e-7, + "limit_pushdown": 4.3e-7, + "outer_join_simplification": 0.000002231, + "partial_aggregate_pushdown": 0.000001234, + "partitioned_execution": 5.72e-7, + "projection_placement": 0.000001408, + "projection_pullup": 0.000001097, + "redundant_order_keys": 0.000001971, + "regex_range": 4.49e-7, + "reorder_filter": 6.03e-7, + "row_group_pruner": 3.58e-7, + "row_number_rewriter": 4.65e-7, + "sampling_pushdown": 3.97e-7, + "scalar_fn_pushdown": 2.18e-7, + "statistics_propagation": 0.000083689, + "top_n": 4.08e-7, + "top_n_window_elimination": 0.000002377, + "total_time": 0.000369327, + "type_pushdown": 3.2e-7, + "unnest_rewriter": 8.09e-7, + "unused_columns": 0.000020245, + "window_self_join": 6.11e-7 + }, + "physical_planner": { + "column_binding": 0.000002204, + "create_plan": 0.000012314, + "resolve_types": 2.24e-7, + "total_time": 0.000019188 + }, + "planner": { + "binding_time": 0.000124404, + "total_time": 0.000197582 + }, + "query": { + "cpu_time": 0.0064512949999999975, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368))", + "total_intermediate_rows": 10098, + "total_intermediate_size_bytes": 323112, + "total_row_groups_scanned": 9, + "total_row_groups_to_scan": 9, + "total_rows_scanned": 1000000, + "total_time": 0.007903188 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 82516264, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json new file mode 100644 index 000000000..6d53ec2b6 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json @@ -0,0 +1,2073 @@ +{ + "n": 1000000, + "duckdb_version": "2.0.0", + "runs": 31, + "load": { + "1": { + "build_us": 432941.514, + "analyze_us": 361.902, + "load_us": 433303.416, + "mem_bytes": 82446632 + }, + "4": { + "build_us": 407966.601, + "analyze_us": 425.116, + "load_us": 408391.717, + "mem_bytes": 82446632 + } + }, + "records": [ + { + "id": "k1_tiny_single", + "threads": 1, + "count": 1000, + "exists": true, + "count_cold_us": 5621.02, + "count_warm_med_us": 1918.268, + "count_warm_p10_us": 1664.774, + "count_warm_p90_us": 2485.728, + "count_engine_med_us": 1981.609, + "exists_cold_us": 1378.305, + "exists_warm_med_us": 589.417, + "exists_warm_p10_us": 510.031, + "exists_warm_p90_us": 702.132, + "exists_engine_med_us": 674.559, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k1_medium_single", + "threads": 1, + "count": 10000, + "exists": true, + "count_cold_us": 2687.324, + "count_warm_med_us": 1738.972, + "count_warm_p10_us": 1630.374, + "count_warm_p90_us": 2045.268, + "count_engine_med_us": 1798.954, + "exists_cold_us": 1908.953, + "exists_warm_med_us": 852.655, + "exists_warm_p10_us": 813.352, + "exists_warm_p90_us": 926.575, + "exists_engine_med_us": 898.931, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k1_large_single", + "threads": 1, + "count": 500005, + "exists": true, + "count_cold_us": 3934.294, + "count_warm_med_us": 2580.879, + "count_warm_p10_us": 1633.903, + "count_warm_p90_us": 3405.558, + "count_engine_med_us": 2118.66, + "exists_cold_us": 1670.479, + "exists_warm_med_us": 744.503, + "exists_warm_p10_us": 690.84, + "exists_warm_p90_us": 815.906, + "exists_engine_med_us": 812.895, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_tiny_and", + "threads": 1, + "count": 765, + "exists": true, + "count_cold_us": 6869.788, + "count_warm_med_us": 4638.318, + "count_warm_p10_us": 3131.511, + "count_warm_p90_us": 4788.883, + "count_engine_med_us": 4933.59, + "exists_cold_us": 1946.865, + "exists_warm_med_us": 842.384, + "exists_warm_p10_us": 725.3, + "exists_warm_p90_us": 906.546, + "exists_engine_med_us": 786.595, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_medium_and", + "threads": 1, + "count": 10139, + "exists": true, + "count_cold_us": 4540.33, + "count_warm_med_us": 3490.399, + "count_warm_p10_us": 2999.365, + "count_warm_p90_us": 4342.667, + "count_engine_med_us": 4234.648, + "exists_cold_us": 2295.528, + "exists_warm_med_us": 902.736, + "exists_warm_p10_us": 693.118, + "exists_warm_p90_us": 1075.683, + "exists_engine_med_us": 1052.391, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_large_and", + "threads": 1, + "count": 499628, + "exists": true, + "count_cold_us": 7351.869, + "count_warm_med_us": 3341.871, + "count_warm_p10_us": 3212.788, + "count_warm_p90_us": 3895.041, + "count_engine_med_us": 3411.843, + "exists_cold_us": 2005.698, + "exists_warm_med_us": 874.733, + "exists_warm_p10_us": 691.211, + "exists_warm_p90_us": 920.28, + "exists_engine_med_us": 962.231, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_tiny_or", + "threads": 1, + "count": 999, + "exists": true, + "count_cold_us": 4991.015, + "count_warm_med_us": 2403.109, + "count_warm_p10_us": 2231.592, + "count_warm_p90_us": 3704.63, + "count_engine_med_us": 2950.291, + "exists_cold_us": 2220.248, + "exists_warm_med_us": 965.596, + "exists_warm_p10_us": 763.012, + "exists_warm_p90_us": 1038.172, + "exists_engine_med_us": 799.273, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_medium_or", + "threads": 1, + "count": 10000, + "exists": true, + "count_cold_us": 8215.602, + "count_warm_med_us": 6476.471, + "count_warm_p10_us": 5925.722, + "count_warm_p90_us": 8647.368, + "count_engine_med_us": 6880.935, + "exists_cold_us": 1558.995, + "exists_warm_med_us": 691.077, + "exists_warm_p10_us": 657.335, + "exists_warm_p90_us": 804.854, + "exists_engine_med_us": 816.07, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_large_or", + "threads": 1, + "count": 500615, + "exists": true, + "count_cold_us": 26836.568, + "count_warm_med_us": 21854.879, + "count_warm_p10_us": 19720.203, + "count_warm_p90_us": 26873.995, + "count_engine_med_us": 20115.064, + "exists_cold_us": 2044.355, + "exists_warm_med_us": 728.655, + "exists_warm_p10_us": 667.007, + "exists_warm_p90_us": 829.44, + "exists_engine_med_us": 945.821, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_tiny_mixed", + "threads": 1, + "count": 428, + "exists": true, + "count_cold_us": 6459.539, + "count_warm_med_us": 3714.813, + "count_warm_p10_us": 3433.579, + "count_warm_p90_us": 4239.921, + "count_engine_med_us": 3736.24, + "exists_cold_us": 1638.374, + "exists_warm_med_us": 730.017, + "exists_warm_p10_us": 681.321, + "exists_warm_p90_us": 901.651, + "exists_engine_med_us": 735.94, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_medium_mixed", + "threads": 1, + "count": 9819, + "exists": true, + "count_cold_us": 7609.299, + "count_warm_med_us": 4009.266, + "count_warm_p10_us": 3846.237, + "count_warm_p90_us": 5154.643, + "count_engine_med_us": 4073.93, + "exists_cold_us": 1724.633, + "exists_warm_med_us": 721.591, + "exists_warm_p10_us": 670.985, + "exists_warm_p90_us": 786.934, + "exists_engine_med_us": 791.989, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k3_large_mixed", + "threads": 1, + "count": 499424, + "exists": true, + "count_cold_us": 16725.484, + "count_warm_med_us": 15868.025, + "count_warm_p10_us": 14599.471, + "count_warm_p90_us": 19770.281, + "count_engine_med_us": 14564.578, + "exists_cold_us": 1721.867, + "exists_warm_med_us": 1095.727, + "exists_warm_p10_us": 1075.439, + "exists_warm_p90_us": 1180.951, + "exists_engine_med_us": 1149.461, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_tiny_and", + "threads": 1, + "count": 46, + "exists": true, + "count_cold_us": 9540.841, + "count_warm_med_us": 4496.883, + "count_warm_p10_us": 4310.876, + "count_warm_p90_us": 5309.017, + "count_engine_med_us": 4455.384, + "exists_cold_us": 2254.435, + "exists_warm_med_us": 1017.438, + "exists_warm_p10_us": 969.966, + "exists_warm_p90_us": 1208.107, + "exists_engine_med_us": 1109.475, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_medium_and", + "threads": 1, + "count": 10097, + "exists": true, + "count_cold_us": 16134.646, + "count_warm_med_us": 6335.387, + "count_warm_p10_us": 5982.254, + "count_warm_p90_us": 7914.624, + "count_engine_med_us": 6355.062, + "exists_cold_us": 2010.991, + "exists_warm_med_us": 881.729, + "exists_warm_p10_us": 828.76, + "exists_warm_p90_us": 987.085, + "exists_engine_med_us": 985.948, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_large_and", + "threads": 1, + "count": 498124, + "exists": true, + "count_cold_us": 11245.263, + "count_warm_med_us": 7755.427, + "count_warm_p10_us": 7474.505, + "count_warm_p90_us": 9139.924, + "count_engine_med_us": 8069.13, + "exists_cold_us": 1984.443, + "exists_warm_med_us": 881.543, + "exists_warm_p10_us": 834.376, + "exists_warm_p90_us": 966.274, + "exists_engine_med_us": 1011.495, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_tiny_or", + "threads": 1, + "count": 999, + "exists": true, + "count_cold_us": 5411.93, + "count_warm_med_us": 3547.239, + "count_warm_p10_us": 3202.172, + "count_warm_p90_us": 5062.949, + "count_engine_med_us": 3593.424, + "exists_cold_us": 2142.36, + "exists_warm_med_us": 870.539, + "exists_warm_p10_us": 771.103, + "exists_warm_p90_us": 986.619, + "exists_engine_med_us": 983.942, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_medium_or", + "threads": 1, + "count": 9997, + "exists": true, + "count_cold_us": 18002.665, + "count_warm_med_us": 16571.528, + "count_warm_p10_us": 16181.984, + "count_warm_p90_us": 17253.63, + "count_engine_med_us": 17463.041, + "exists_cold_us": 2154.29, + "exists_warm_med_us": 954.432, + "exists_warm_p10_us": 872.336, + "exists_warm_p90_us": 1249.496, + "exists_engine_med_us": 1001.275, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_large_or", + "threads": 1, + "count": 498831, + "exists": true, + "count_cold_us": 34061.571, + "count_warm_med_us": 30636.811, + "count_warm_p10_us": 28571.636, + "count_warm_p90_us": 36864.446, + "count_engine_med_us": 30176.751, + "exists_cold_us": 2333.781, + "exists_warm_med_us": 946.629, + "exists_warm_p10_us": 868.968, + "exists_warm_p90_us": 1260.095, + "exists_engine_med_us": 1033.414, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_tiny_mixed", + "threads": 1, + "count": 91, + "exists": true, + "count_cold_us": 16960.131, + "count_warm_med_us": 14877.962, + "count_warm_p10_us": 13790.313, + "count_warm_p90_us": 15550.625, + "count_engine_med_us": 14745.011, + "exists_cold_us": 3406.78, + "exists_warm_med_us": 1692.633, + "exists_warm_p10_us": 1581.798, + "exists_warm_p90_us": 1929.946, + "exists_engine_med_us": 1733.869, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_medium_mixed", + "threads": 1, + "count": 9901, + "exists": true, + "count_cold_us": 27592.097, + "count_warm_med_us": 27575.353, + "count_warm_p10_us": 26171.446, + "count_warm_p90_us": 29242.31, + "count_engine_med_us": 28051.768, + "exists_cold_us": 2416.416, + "exists_warm_med_us": 1012.835, + "exists_warm_p10_us": 960.249, + "exists_warm_p90_us": 1305.44, + "exists_engine_med_us": 1059.963, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k8_large_mixed", + "threads": 1, + "count": 500157, + "exists": true, + "count_cold_us": 68844.088, + "count_warm_med_us": 74454.825, + "count_warm_p10_us": 70365.371, + "count_warm_p90_us": 97094.385, + "count_engine_med_us": 75137.697, + "exists_cold_us": 2708.76, + "exists_warm_med_us": 1078.064, + "exists_warm_p10_us": 1031.732, + "exists_warm_p90_us": 1164.504, + "exists_engine_med_us": 1167.654, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_tiny_and", + "threads": 1, + "count": 45, + "exists": true, + "count_cold_us": 16202.592, + "count_warm_med_us": 15133.874, + "count_warm_p10_us": 14374.722, + "count_warm_p90_us": 19165.231, + "count_engine_med_us": 20282.867, + "exists_cold_us": 5610.741, + "exists_warm_med_us": 2743.646, + "exists_warm_p10_us": 2577.949, + "exists_warm_p90_us": 2852.861, + "exists_engine_med_us": 2885.269, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_medium_and", + "threads": 1, + "count": 9754, + "exists": true, + "count_cold_us": 25486.78, + "count_warm_med_us": 17023.66, + "count_warm_p10_us": 15979.292, + "count_warm_p90_us": 23307.744, + "count_engine_med_us": 15953.307, + "exists_cold_us": 2747.474, + "exists_warm_med_us": 1162.258, + "exists_warm_p10_us": 1130.052, + "exists_warm_p90_us": 1217.573, + "exists_engine_med_us": 1256.687, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_large_and", + "threads": 1, + "count": 499819, + "exists": true, + "count_cold_us": 22168.435, + "count_warm_med_us": 20204.788, + "count_warm_p10_us": 19763.982, + "count_warm_p90_us": 20634.618, + "count_engine_med_us": 20222.754, + "exists_cold_us": 2873.398, + "exists_warm_med_us": 1175.414, + "exists_warm_p10_us": 1135.837, + "exists_warm_p90_us": 1229.116, + "exists_engine_med_us": 1276.66, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_tiny_or", + "threads": 1, + "count": 1000, + "exists": true, + "count_cold_us": 7369.699, + "count_warm_med_us": 4772.097, + "count_warm_p10_us": 4656.188, + "count_warm_p90_us": 5127.916, + "count_engine_med_us": 5143.049, + "exists_cold_us": 2540.492, + "exists_warm_med_us": 1062.784, + "exists_warm_p10_us": 1018.665, + "exists_warm_p90_us": 1117.372, + "exists_engine_med_us": 1092.258, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_medium_or", + "threads": 1, + "count": 10000, + "exists": true, + "count_cold_us": 23230.197, + "count_warm_med_us": 22157.313, + "count_warm_p10_us": 21868.098, + "count_warm_p90_us": 22501.192, + "count_engine_med_us": 22382.752, + "exists_cold_us": 3032.605, + "exists_warm_med_us": 1163.192, + "exists_warm_p10_us": 1131.756, + "exists_warm_p90_us": 1234.55, + "exists_engine_med_us": 1303.469, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_large_or", + "threads": 1, + "count": 505114, + "exists": true, + "count_cold_us": 47711.883, + "count_warm_med_us": 46298.771, + "count_warm_p10_us": 45491.27, + "count_warm_p90_us": 51725.46, + "count_engine_med_us": 55727.066, + "exists_cold_us": 4926.418, + "exists_warm_med_us": 1836.948, + "exists_warm_p10_us": 1671.241, + "exists_warm_p90_us": 1981.891, + "exists_engine_med_us": 1954.071, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_tiny_mixed", + "threads": 1, + "count": 46, + "exists": true, + "count_cold_us": 24675.944, + "count_warm_med_us": 14384.487, + "count_warm_p10_us": 13272.878, + "count_warm_p90_us": 16296.74, + "count_engine_med_us": 14225.721, + "exists_cold_us": 3785.414, + "exists_warm_med_us": 2724.867, + "exists_warm_p10_us": 2040.199, + "exists_warm_p90_us": 2854.447, + "exists_engine_med_us": 2929.972, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_medium_mixed", + "threads": 1, + "count": 10098, + "exists": true, + "count_cold_us": 39410.82, + "count_warm_med_us": 32478.567, + "count_warm_p10_us": 29958.474, + "count_warm_p90_us": 53496.706, + "count_engine_med_us": 31778.696, + "exists_cold_us": 3258.594, + "exists_warm_med_us": 1307.972, + "exists_warm_p10_us": 1239.962, + "exists_warm_p90_us": 1407.918, + "exists_engine_med_us": 1441.465, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k17_large_mixed", + "threads": 1, + "count": 498269, + "exists": true, + "count_cold_us": 142454.265, + "count_warm_med_us": 139929.269, + "count_warm_p10_us": 134117.766, + "count_warm_p90_us": 158886.723, + "count_engine_med_us": 137801.093, + "exists_cold_us": 3647.101, + "exists_warm_med_us": 1552.611, + "exists_warm_p10_us": 1489.89, + "exists_warm_p90_us": 1769.508, + "exists_engine_med_us": 1686.952, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_tiny_and", + "threads": 1, + "count": 50, + "exists": true, + "count_cold_us": 17641.321, + "count_warm_med_us": 14418.189, + "count_warm_p10_us": 13936.973, + "count_warm_p90_us": 18710.458, + "count_engine_med_us": 14223.188, + "exists_cold_us": 3650.751, + "exists_warm_med_us": 1653.497, + "exists_warm_p10_us": 1543.602, + "exists_warm_p90_us": 1767.134, + "exists_engine_med_us": 1790.24, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_medium_and", + "threads": 1, + "count": 9900, + "exists": true, + "count_cold_us": 21216.388, + "count_warm_med_us": 21674.499, + "count_warm_p10_us": 19298.841, + "count_warm_p90_us": 27764.023, + "count_engine_med_us": 26902.611, + "exists_cold_us": 5445.38, + "exists_warm_med_us": 1422.526, + "exists_warm_p10_us": 1325.954, + "exists_warm_p90_us": 1700.82, + "exists_engine_med_us": 1493.422, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_large_and", + "threads": 1, + "count": 502071, + "exists": true, + "count_cold_us": 25831.832, + "count_warm_med_us": 25627.766, + "count_warm_p10_us": 24582.431, + "count_warm_p90_us": 28365.457, + "count_engine_med_us": 25956.963, + "exists_cold_us": 3650.659, + "exists_warm_med_us": 1403.908, + "exists_warm_p10_us": 1346.015, + "exists_warm_p90_us": 1530.948, + "exists_engine_med_us": 1557.699, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_tiny_or", + "threads": 1, + "count": 1001, + "exists": true, + "count_cold_us": 8322.418, + "count_warm_med_us": 5061.799, + "count_warm_p10_us": 4852.95, + "count_warm_p90_us": 5657.831, + "count_engine_med_us": 5118.637, + "exists_cold_us": 2915.999, + "exists_warm_med_us": 1249.935, + "exists_warm_p10_us": 1183.317, + "exists_warm_p90_us": 1430.973, + "exists_engine_med_us": 1279.631, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_medium_or", + "threads": 1, + "count": 9995, + "exists": true, + "count_cold_us": 25718.424, + "count_warm_med_us": 23987.106, + "count_warm_p10_us": 23126.553, + "count_warm_p90_us": 25852.548, + "count_engine_med_us": 24625.849, + "exists_cold_us": 3275.745, + "exists_warm_med_us": 1328.44, + "exists_warm_p10_us": 1267.951, + "exists_warm_p90_us": 1438.991, + "exists_engine_med_us": 1471.951, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_large_or", + "threads": 1, + "count": 495651, + "exists": true, + "count_cold_us": 54881.129, + "count_warm_med_us": 54222.904, + "count_warm_p10_us": 53622.71, + "count_warm_p90_us": 55982.012, + "count_engine_med_us": 81416.402, + "exists_cold_us": 6229.084, + "exists_warm_med_us": 2195.592, + "exists_warm_p10_us": 2084.728, + "exists_warm_p90_us": 2528.694, + "exists_engine_med_us": 2425.142, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_tiny_mixed", + "threads": 1, + "count": 48, + "exists": true, + "count_cold_us": 123521.158, + "count_warm_med_us": 77685.022, + "count_warm_p10_us": 72891.08, + "count_warm_p90_us": 102411.137, + "count_engine_med_us": 74593.209, + "exists_cold_us": 4258.935, + "exists_warm_med_us": 1816.249, + "exists_warm_p10_us": 1717.845, + "exists_warm_p90_us": 2018.048, + "exists_engine_med_us": 2741.898, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_medium_mixed", + "threads": 1, + "count": 9953, + "exists": true, + "count_cold_us": 131059.566, + "count_warm_med_us": 105626.418, + "count_warm_p10_us": 99976.015, + "count_warm_p90_us": 116641.335, + "count_engine_med_us": 102196.236, + "exists_cold_us": 4111.142, + "exists_warm_med_us": 1680.779, + "exists_warm_p10_us": 1596.774, + "exists_warm_p90_us": 1792.727, + "exists_engine_med_us": 1730.832, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k24_large_mixed", + "threads": 1, + "count": 500471, + "exists": true, + "count_cold_us": 209853.379, + "count_warm_med_us": 210186.662, + "count_warm_p10_us": 197581.16, + "count_warm_p90_us": 234217.23, + "count_engine_med_us": 206403.2, + "exists_cold_us": 4406.125, + "exists_warm_med_us": 2679.321, + "exists_warm_p10_us": 1943.773, + "exists_warm_p90_us": 3062.055, + "exists_engine_med_us": 2770.185, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_one_everything", + "threads": 1, + "count": 10000, + "exists": true, + "count_cold_us": 3034.182, + "count_warm_med_us": 1736.448, + "count_warm_p10_us": 1659.073, + "count_warm_p90_us": 1935.356, + "count_engine_med_us": 1791.541, + "exists_cold_us": 1478.856, + "exists_warm_med_us": 629.836, + "exists_warm_p10_us": 566.683, + "exists_warm_p90_us": 701.735, + "exists_engine_med_us": 748.566, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_one_nothing", + "threads": 1, + "count": 1002, + "exists": true, + "count_cold_us": 3788.993, + "count_warm_med_us": 3253.244, + "count_warm_p10_us": 2534.098, + "count_warm_p90_us": 3774.961, + "count_engine_med_us": 3392.335, + "exists_cold_us": 2286.797, + "exists_warm_med_us": 913.852, + "exists_warm_p10_us": 865.013, + "exists_warm_p90_us": 1002.148, + "exists_engine_med_us": 820.601, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_or_one_everything", + "threads": 1, + "count": 1000000, + "exists": true, + "count_cold_us": 1262.123, + "count_warm_med_us": 568.531, + "count_warm_p10_us": 498.743, + "count_warm_p90_us": 719.076, + "count_engine_med_us": null, + "exists_cold_us": 1937.927, + "exists_warm_med_us": 635.29, + "exists_warm_p10_us": 558.798, + "exists_warm_p90_us": 775.435, + "exists_engine_med_us": 963.684, + "count_stats_folded": true, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_or_one_nothing", + "threads": 1, + "count": 1000, + "exists": true, + "count_cold_us": 4059.881, + "count_warm_med_us": 2203.604, + "count_warm_p10_us": 2115.246, + "count_warm_p90_us": 2545.933, + "count_engine_med_us": 2167.889, + "exists_cold_us": 1465.336, + "exists_warm_med_us": 637.66, + "exists_warm_p10_us": 597.412, + "exists_warm_p90_us": 740.77, + "exists_engine_med_us": 741.717, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_16_nonselective", + "threads": 1, + "count": 827152, + "exists": true, + "count_cold_us": 23302.189, + "count_warm_med_us": 21284.303, + "count_warm_p10_us": 20601.012, + "count_warm_p90_us": 24906.072, + "count_engine_med_us": 29563.096, + "exists_cold_us": 4501.747, + "exists_warm_med_us": 1162.091, + "exists_warm_p10_us": 1108.71, + "exists_warm_p90_us": 1373.85, + "exists_engine_med_us": 1254.943, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_16_collapse_one", + "threads": 1, + "count": 46, + "exists": true, + "count_cold_us": 9459.374, + "count_warm_med_us": 6147.6, + "count_warm_p10_us": 5905.801, + "count_warm_p90_us": 6747.282, + "count_engine_med_us": 6055.354, + "exists_cold_us": 2764.82, + "exists_warm_med_us": 1327.042, + "exists_warm_p10_us": 1272.855, + "exists_warm_p90_us": 1419.722, + "exists_engine_med_us": 1441.89, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_correlated_2", + "threads": 1, + "count": 500001, + "exists": true, + "count_cold_us": 3911.092, + "count_warm_med_us": 2401.495, + "count_warm_p10_us": 2310.692, + "count_warm_p90_us": 3189.221, + "count_engine_med_us": 2445.337, + "exists_cold_us": 1500.974, + "exists_warm_med_us": 598.06, + "exists_warm_p10_us": 555.788, + "exists_warm_p90_us": 652.864, + "exists_engine_med_us": 681.895, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_correlated_5", + "threads": 1, + "count": 490001, + "exists": true, + "count_cold_us": 3959.837, + "count_warm_med_us": 2414.168, + "count_warm_p10_us": 2346.142, + "count_warm_p90_us": 2572.887, + "count_engine_med_us": 2578.969, + "exists_cold_us": 1650.402, + "exists_warm_med_us": 652.238, + "exists_warm_p10_us": 606.425, + "exists_warm_p90_us": 728.564, + "exists_engine_med_us": 765.972, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_contradictory_2", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 1072.203, + "count_warm_med_us": 349.842, + "count_warm_p10_us": 303.266, + "count_warm_p90_us": 407.16, + "count_engine_med_us": 492.805, + "exists_cold_us": 1251.658, + "exists_warm_med_us": 464.347, + "exists_warm_p10_us": 404.765, + "exists_warm_p90_us": 564.221, + "exists_engine_med_us": 568.654, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "adv_contradictory_17", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 2091.671, + "count_warm_med_us": 602.046, + "count_warm_p10_us": 548.46, + "count_warm_p90_us": 718.82, + "count_engine_med_us": 701.824, + "exists_cold_us": 2023.746, + "exists_warm_med_us": 740.08, + "exists_warm_p10_us": 689.568, + "exists_warm_p90_us": 869.389, + "exists_engine_med_us": 828.795, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "null_and", + "threads": 1, + "count": 99875, + "exists": true, + "count_cold_us": 5474.963, + "count_warm_med_us": 2862.637, + "count_warm_p10_us": 2786.077, + "count_warm_p90_us": 3162.635, + "count_engine_med_us": 3037.276, + "exists_cold_us": 1588.523, + "exists_warm_med_us": 679.676, + "exists_warm_p10_us": 596.754, + "exists_warm_p90_us": 811.967, + "exists_engine_med_us": 714.659, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "null_not", + "threads": 1, + "count": 450007, + "exists": true, + "count_cold_us": 3099.19, + "count_warm_med_us": 2189.983, + "count_warm_p10_us": 2113.491, + "count_warm_p90_us": 2367.238, + "count_engine_med_us": 2244.78, + "exists_cold_us": 1335.75, + "exists_warm_med_us": 570.477, + "exists_warm_p10_us": 530.092, + "exists_warm_p90_us": 655.469, + "exists_engine_med_us": 673.707, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "null_or", + "threads": 1, + "count": 190006, + "exists": true, + "count_cold_us": 10721.345, + "count_warm_med_us": 9313.864, + "count_warm_p10_us": 8953.027, + "count_warm_p90_us": 10159.407, + "count_engine_med_us": 9174.331, + "exists_cold_us": 1482.311, + "exists_warm_med_us": 662.509, + "exists_warm_p10_us": 604.777, + "exists_warm_p90_us": 718.458, + "exists_engine_med_us": 736.322, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "null_not_and", + "threads": 1, + "count": 850017, + "exists": true, + "count_cold_us": 26742.237, + "count_warm_med_us": 26557.319, + "count_warm_p10_us": 26172.274, + "count_warm_p90_us": 27141.901, + "count_engine_med_us": 27339.153, + "exists_cold_us": 1781.198, + "exists_warm_med_us": 731.315, + "exists_warm_p10_us": 706.061, + "exists_warm_p90_us": 812.344, + "exists_engine_med_us": 798.048, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "null_and_5", + "threads": 1, + "count": 267454, + "exists": true, + "count_cold_us": 7590.344, + "count_warm_med_us": 4991.545, + "count_warm_p10_us": 4890.714, + "count_warm_p90_us": 5216.832, + "count_engine_med_us": 5394.244, + "exists_cold_us": 1811.56, + "exists_warm_med_us": 802.284, + "exists_warm_p10_us": 729.042, + "exists_warm_p90_us": 907.866, + "exists_engine_med_us": 838.597, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 105.69 + }, + { + "id": "k1_tiny_single", + "threads": 4, + "count": 1000, + "exists": true, + "count_cold_us": 2051.446, + "count_warm_med_us": 1139.302, + "count_warm_p10_us": 1047.484, + "count_warm_p90_us": 1222.874, + "count_engine_med_us": 1264.418, + "exists_cold_us": 1814.257, + "exists_warm_med_us": 927.862, + "exists_warm_p10_us": 828.252, + "exists_warm_p90_us": 1064.624, + "exists_engine_med_us": 1001.866, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k1_medium_single", + "threads": 4, + "count": 10000, + "exists": true, + "count_cold_us": 2089.718, + "count_warm_med_us": 1194.581, + "count_warm_p10_us": 1085.681, + "count_warm_p90_us": 1294.614, + "count_engine_med_us": 1195.199, + "exists_cold_us": 1760.333, + "exists_warm_med_us": 875.089, + "exists_warm_p10_us": 807.288, + "exists_warm_p90_us": 940.238, + "exists_engine_med_us": 979.626, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k1_large_single", + "threads": 4, + "count": 500005, + "exists": true, + "count_cold_us": 2235.404, + "count_warm_med_us": 1018.219, + "count_warm_p10_us": 936.083, + "count_warm_p90_us": 1232.827, + "count_engine_med_us": 1065.453, + "exists_cold_us": 1620.918, + "exists_warm_med_us": 967.318, + "exists_warm_p10_us": 877.973, + "exists_warm_p90_us": 1057.094, + "exists_engine_med_us": 1040.404, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_tiny_and", + "threads": 4, + "count": 765, + "exists": true, + "count_cold_us": 3195.431, + "count_warm_med_us": 1775.709, + "count_warm_p10_us": 1688.38, + "count_warm_p90_us": 1957.75, + "count_engine_med_us": 1627.183, + "exists_cold_us": 1957.465, + "exists_warm_med_us": 1010.927, + "exists_warm_p10_us": 954.17, + "exists_warm_p90_us": 1130.881, + "exists_engine_med_us": 1094.858, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_medium_and", + "threads": 4, + "count": 10139, + "exists": true, + "count_cold_us": 2807.626, + "count_warm_med_us": 1711.584, + "count_warm_p10_us": 1520.262, + "count_warm_p90_us": 1892.006, + "count_engine_med_us": 1854.879, + "exists_cold_us": 2689.931, + "exists_warm_med_us": 1328.67, + "exists_warm_p10_us": 1220.539, + "exists_warm_p90_us": 1416.199, + "exists_engine_med_us": 1095.426, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_large_and", + "threads": 4, + "count": 499628, + "exists": true, + "count_cold_us": 3105.366, + "count_warm_med_us": 1989.321, + "count_warm_p10_us": 1543.828, + "count_warm_p90_us": 2190.608, + "count_engine_med_us": 2067.779, + "exists_cold_us": 2237.78, + "exists_warm_med_us": 1078.591, + "exists_warm_p10_us": 1008.038, + "exists_warm_p90_us": 1144.278, + "exists_engine_med_us": 1187.228, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_tiny_or", + "threads": 4, + "count": 999, + "exists": true, + "count_cold_us": 2730.076, + "count_warm_med_us": 1615.276, + "count_warm_p10_us": 1494.063, + "count_warm_p90_us": 1791.116, + "count_engine_med_us": 1660.12, + "exists_cold_us": 2107.772, + "exists_warm_med_us": 1073.628, + "exists_warm_p10_us": 1030.014, + "exists_warm_p90_us": 1144.556, + "exists_engine_med_us": 1271.973, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_medium_or", + "threads": 4, + "count": 10000, + "exists": true, + "count_cold_us": 4434.174, + "count_warm_med_us": 3302.192, + "count_warm_p10_us": 3153.088, + "count_warm_p90_us": 3696.75, + "count_engine_med_us": 3247.238, + "exists_cold_us": 2101.432, + "exists_warm_med_us": 1109.456, + "exists_warm_p10_us": 1001.397, + "exists_warm_p90_us": 1383.876, + "exists_engine_med_us": 1547.226, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_large_or", + "threads": 4, + "count": 500615, + "exists": true, + "count_cold_us": 8795.092, + "count_warm_med_us": 7746.15, + "count_warm_p10_us": 7482.265, + "count_warm_p90_us": 7968.991, + "count_engine_med_us": 7614.983, + "exists_cold_us": 2801.644, + "exists_warm_med_us": 1427.287, + "exists_warm_p10_us": 1344.996, + "exists_warm_p90_us": 1544.828, + "exists_engine_med_us": 1516.904, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_tiny_mixed", + "threads": 4, + "count": 428, + "exists": true, + "count_cold_us": 3923.748, + "count_warm_med_us": 2406.544, + "count_warm_p10_us": 2317.715, + "count_warm_p90_us": 2574.692, + "count_engine_med_us": 2385.183, + "exists_cold_us": 2072.512, + "exists_warm_med_us": 1093.364, + "exists_warm_p10_us": 1040.778, + "exists_warm_p90_us": 1166.52, + "exists_engine_med_us": 1321.461, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_medium_mixed", + "threads": 4, + "count": 9819, + "exists": true, + "count_cold_us": 3839.905, + "count_warm_med_us": 2341.783, + "count_warm_p10_us": 2229.363, + "count_warm_p90_us": 2506.224, + "count_engine_med_us": 2395.295, + "exists_cold_us": 2333.16, + "exists_warm_med_us": 1109.859, + "exists_warm_p10_us": 1026.468, + "exists_warm_p90_us": 1245.635, + "exists_engine_med_us": 1182.935, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k3_large_mixed", + "threads": 4, + "count": 499424, + "exists": true, + "count_cold_us": 7204.736, + "count_warm_med_us": 6041.18, + "count_warm_p10_us": 4763.863, + "count_warm_p90_us": 6222.741, + "count_engine_med_us": 6048.111, + "exists_cold_us": 2104.018, + "exists_warm_med_us": 1085.521, + "exists_warm_p10_us": 1008.872, + "exists_warm_p90_us": 1141.359, + "exists_engine_med_us": 1212.161, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_tiny_and", + "threads": 4, + "count": 46, + "exists": true, + "count_cold_us": 4280.941, + "count_warm_med_us": 2556.513, + "count_warm_p10_us": 2399.973, + "count_warm_p90_us": 2675.363, + "count_engine_med_us": 2602.181, + "exists_cold_us": 2645.51, + "exists_warm_med_us": 1608.903, + "exists_warm_p10_us": 1484.047, + "exists_warm_p90_us": 1853.389, + "exists_engine_med_us": 1672.461, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_medium_and", + "threads": 4, + "count": 10097, + "exists": true, + "count_cold_us": 5027.646, + "count_warm_med_us": 3211.493, + "count_warm_p10_us": 2994.026, + "count_warm_p90_us": 3527.366, + "count_engine_med_us": 3379.622, + "exists_cold_us": 2473.372, + "exists_warm_med_us": 1232.362, + "exists_warm_p10_us": 1131.308, + "exists_warm_p90_us": 1443.902, + "exists_engine_med_us": 1378.106, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_large_and", + "threads": 4, + "count": 498124, + "exists": true, + "count_cold_us": 5572.477, + "count_warm_med_us": 3575.619, + "count_warm_p10_us": 2844.698, + "count_warm_p90_us": 4011.171, + "count_engine_med_us": 3563.639, + "exists_cold_us": 2888.924, + "exists_warm_med_us": 1244.84, + "exists_warm_p10_us": 1157.03, + "exists_warm_p90_us": 1343.834, + "exists_engine_med_us": 1392.66, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_tiny_or", + "threads": 4, + "count": 999, + "exists": true, + "count_cold_us": 4309.99, + "count_warm_med_us": 2206.007, + "count_warm_p10_us": 2022.095, + "count_warm_p90_us": 2511.203, + "count_engine_med_us": 2246.272, + "exists_cold_us": 2421.226, + "exists_warm_med_us": 1314.814, + "exists_warm_p10_us": 1155.73, + "exists_warm_p90_us": 1529.093, + "exists_engine_med_us": 1563.59, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_medium_or", + "threads": 4, + "count": 9997, + "exists": true, + "count_cold_us": 9644.462, + "count_warm_med_us": 7392.779, + "count_warm_p10_us": 6823.181, + "count_warm_p90_us": 7643.443, + "count_engine_med_us": 6884.187, + "exists_cold_us": 2606.072, + "exists_warm_med_us": 1253.41, + "exists_warm_p10_us": 1134.624, + "exists_warm_p90_us": 1444.511, + "exists_engine_med_us": 1388.4, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_large_or", + "threads": 4, + "count": 498831, + "exists": true, + "count_cold_us": 12006.155, + "count_warm_med_us": 10587.485, + "count_warm_p10_us": 8223.412, + "count_warm_p90_us": 11633.76, + "count_engine_med_us": 10985.822, + "exists_cold_us": 2504.608, + "exists_warm_med_us": 1334.602, + "exists_warm_p10_us": 1267.497, + "exists_warm_p90_us": 1488.594, + "exists_engine_med_us": 1473.929, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_tiny_mixed", + "threads": 4, + "count": 91, + "exists": true, + "count_cold_us": 7968.694, + "count_warm_med_us": 6487.266, + "count_warm_p10_us": 4581.427, + "count_warm_p90_us": 6857.16, + "count_engine_med_us": 4835.117, + "exists_cold_us": 6122.52, + "exists_warm_med_us": 2416.905, + "exists_warm_p10_us": 2224.268, + "exists_warm_p90_us": 2900.962, + "exists_engine_med_us": 3100.147, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_medium_mixed", + "threads": 4, + "count": 9901, + "exists": true, + "count_cold_us": 14334.661, + "count_warm_med_us": 10984.387, + "count_warm_p10_us": 9385.988, + "count_warm_p90_us": 11914.26, + "count_engine_med_us": 11573.364, + "exists_cold_us": 2824.801, + "exists_warm_med_us": 1398.743, + "exists_warm_p10_us": 1286.367, + "exists_warm_p90_us": 1768.929, + "exists_engine_med_us": 1399.969, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k8_large_mixed", + "threads": 4, + "count": 500157, + "exists": true, + "count_cold_us": 21671.676, + "count_warm_med_us": 26765.531, + "count_warm_p10_us": 21639.71, + "count_warm_p90_us": 27992.222, + "count_engine_med_us": 27626.252, + "exists_cold_us": 3364.576, + "exists_warm_med_us": 1583.201, + "exists_warm_p10_us": 1433.349, + "exists_warm_p90_us": 1908.026, + "exists_engine_med_us": 1809.757, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_tiny_and", + "threads": 4, + "count": 45, + "exists": true, + "count_cold_us": 8819.918, + "count_warm_med_us": 5477.55, + "count_warm_p10_us": 4989.976, + "count_warm_p90_us": 7065.617, + "count_engine_med_us": 5054.952, + "exists_cold_us": 4590.027, + "exists_warm_med_us": 2799.713, + "exists_warm_p10_us": 2592.24, + "exists_warm_p90_us": 3296.993, + "exists_engine_med_us": 3688.541, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_medium_and", + "threads": 4, + "count": 9754, + "exists": true, + "count_cold_us": 9762.722, + "count_warm_med_us": 7021.685, + "count_warm_p10_us": 6561.543, + "count_warm_p90_us": 8643.787, + "count_engine_med_us": 6300.369, + "exists_cold_us": 3214.666, + "exists_warm_med_us": 1972.197, + "exists_warm_p10_us": 1566.449, + "exists_warm_p90_us": 2584.399, + "exists_engine_med_us": 2577.064, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_large_and", + "threads": 4, + "count": 499819, + "exists": true, + "count_cold_us": 12377.317, + "count_warm_med_us": 9519.303, + "count_warm_p10_us": 8655.784, + "count_warm_p90_us": 10377.119, + "count_engine_med_us": 8798.607, + "exists_cold_us": 4590.415, + "exists_warm_med_us": 2216.522, + "exists_warm_p10_us": 2098.891, + "exists_warm_p90_us": 2523.831, + "exists_engine_med_us": 2597.633, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_tiny_or", + "threads": 4, + "count": 1000, + "exists": true, + "count_cold_us": 6267.727, + "count_warm_med_us": 3657.177, + "count_warm_p10_us": 3421.061, + "count_warm_p90_us": 4938.33, + "count_engine_med_us": 3620.673, + "exists_cold_us": 5632.256, + "exists_warm_med_us": 2005.934, + "exists_warm_p10_us": 1937.813, + "exists_warm_p90_us": 2287.978, + "exists_engine_med_us": 2058.107, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_medium_or", + "threads": 4, + "count": 10000, + "exists": true, + "count_cold_us": 12281.654, + "count_warm_med_us": 9796.78, + "count_warm_p10_us": 8676.409, + "count_warm_p90_us": 10790.623, + "count_engine_med_us": 9902.796, + "exists_cold_us": 3459.617, + "exists_warm_med_us": 1761.301, + "exists_warm_p10_us": 1623.266, + "exists_warm_p90_us": 1932.543, + "exists_engine_med_us": 1806.484, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_large_or", + "threads": 4, + "count": 505114, + "exists": true, + "count_cold_us": 21666.706, + "count_warm_med_us": 17303.52, + "count_warm_p10_us": 16878.824, + "count_warm_p90_us": 18495.066, + "count_engine_med_us": 17122.599, + "exists_cold_us": 4903.486, + "exists_warm_med_us": 2216.949, + "exists_warm_p10_us": 1622.52, + "exists_warm_p90_us": 2419.524, + "exists_engine_med_us": 2124.395, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_tiny_mixed", + "threads": 4, + "count": 46, + "exists": true, + "count_cold_us": 9872.719, + "count_warm_med_us": 7023.065, + "count_warm_p10_us": 6287.103, + "count_warm_p90_us": 8149.885, + "count_engine_med_us": 6161.872, + "exists_cold_us": 5047.583, + "exists_warm_med_us": 3655.084, + "exists_warm_p10_us": 3433.44, + "exists_warm_p90_us": 3915.402, + "exists_engine_med_us": 3950.334, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_medium_mixed", + "threads": 4, + "count": 10098, + "exists": true, + "count_cold_us": 18719.016, + "count_warm_med_us": 14138.304, + "count_warm_p10_us": 13829.172, + "count_warm_p90_us": 14914.045, + "count_engine_med_us": 14204.142, + "exists_cold_us": 4937.422, + "exists_warm_med_us": 2318.785, + "exists_warm_p10_us": 2198.599, + "exists_warm_p90_us": 2533.356, + "exists_engine_med_us": 2621.008, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k17_large_mixed", + "threads": 4, + "count": 498269, + "exists": true, + "count_cold_us": 51542.012, + "count_warm_med_us": 49926.059, + "count_warm_p10_us": 48174.95, + "count_warm_p90_us": 56547.522, + "count_engine_med_us": 50849.168, + "exists_cold_us": 5690.108, + "exists_warm_med_us": 2620.329, + "exists_warm_p10_us": 2475.016, + "exists_warm_p90_us": 2921.692, + "exists_engine_med_us": 3027.899, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_tiny_and", + "threads": 4, + "count": 50, + "exists": true, + "count_cold_us": 9855.396, + "count_warm_med_us": 5905.005, + "count_warm_p10_us": 5375.902, + "count_warm_p90_us": 10158.997, + "count_engine_med_us": 5666.52, + "exists_cold_us": 4366.262, + "exists_warm_med_us": 2537.192, + "exists_warm_p10_us": 2319.647, + "exists_warm_p90_us": 3188.604, + "exists_engine_med_us": 3246.641, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_medium_and", + "threads": 4, + "count": 9900, + "exists": true, + "count_cold_us": 10986.547, + "count_warm_med_us": 7744.652, + "count_warm_p10_us": 7393.937, + "count_warm_p90_us": 8614.399, + "count_engine_med_us": 7598.147, + "exists_cold_us": 5072.367, + "exists_warm_med_us": 2176.174, + "exists_warm_p10_us": 1812.541, + "exists_warm_p90_us": 2311.61, + "exists_engine_med_us": 2481.376, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_large_and", + "threads": 4, + "count": 502071, + "exists": true, + "count_cold_us": 14038.655, + "count_warm_med_us": 9555.74, + "count_warm_p10_us": 7193.646, + "count_warm_p90_us": 10101.339, + "count_engine_med_us": 10058.713, + "exists_cold_us": 5566.84, + "exists_warm_med_us": 1778.967, + "exists_warm_p10_us": 1693.291, + "exists_warm_p90_us": 1917.273, + "exists_engine_med_us": 2206.866, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_tiny_or", + "threads": 4, + "count": 1001, + "exists": true, + "count_cold_us": 5672.704, + "count_warm_med_us": 2949.728, + "count_warm_p10_us": 2604.039, + "count_warm_p90_us": 3274.655, + "count_engine_med_us": 2996.862, + "exists_cold_us": 3642.819, + "exists_warm_med_us": 1687.655, + "exists_warm_p10_us": 1521.063, + "exists_warm_p90_us": 2193.047, + "exists_engine_med_us": 1761.785, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_medium_or", + "threads": 4, + "count": 9995, + "exists": true, + "count_cold_us": 9039.662, + "count_warm_med_us": 9341.259, + "count_warm_p10_us": 7106.886, + "count_warm_p90_us": 10163.595, + "count_engine_med_us": 10687.128, + "exists_cold_us": 4468.585, + "exists_warm_med_us": 2293.076, + "exists_warm_p10_us": 1936.69, + "exists_warm_p90_us": 2550.824, + "exists_engine_med_us": 2755.063, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_large_or", + "threads": 4, + "count": 495651, + "exists": true, + "count_cold_us": 26899.539, + "count_warm_med_us": 21958.256, + "count_warm_p10_us": 20359.569, + "count_warm_p90_us": 22650.281, + "count_engine_med_us": 18904.639, + "exists_cold_us": 3763.181, + "exists_warm_med_us": 1900.782, + "exists_warm_p10_us": 1747.663, + "exists_warm_p90_us": 2181.572, + "exists_engine_med_us": 2090.671, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_tiny_mixed", + "threads": 4, + "count": 48, + "exists": true, + "count_cold_us": 29599.811, + "count_warm_med_us": 26730.067, + "count_warm_p10_us": 21494.266, + "count_warm_p90_us": 28035.429, + "count_engine_med_us": 25867.293, + "exists_cold_us": 9944.342, + "exists_warm_med_us": 7325.527, + "exists_warm_p10_us": 6987.066, + "exists_warm_p90_us": 8121.114, + "exists_engine_med_us": 7301.483, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_medium_mixed", + "threads": 4, + "count": 9953, + "exists": true, + "count_cold_us": 34308.71, + "count_warm_med_us": 36972.941, + "count_warm_p10_us": 30342.041, + "count_warm_p90_us": 43247.439, + "count_engine_med_us": 38432.194, + "exists_cold_us": 4593.083, + "exists_warm_med_us": 2156.431, + "exists_warm_p10_us": 2023.361, + "exists_warm_p90_us": 2294.316, + "exists_engine_med_us": 2390.522, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "k24_large_mixed", + "threads": 4, + "count": 500471, + "exists": true, + "count_cold_us": 57369.452, + "count_warm_med_us": 60307.553, + "count_warm_p10_us": 53321.716, + "count_warm_p90_us": 70663.219, + "count_engine_med_us": 66207.072, + "exists_cold_us": 5078.141, + "exists_warm_med_us": 2320.693, + "exists_warm_p10_us": 2161.587, + "exists_warm_p90_us": 2651.245, + "exists_engine_med_us": 2277.31, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_one_everything", + "threads": 4, + "count": 10000, + "exists": true, + "count_cold_us": 2194.826, + "count_warm_med_us": 1192.516, + "count_warm_p10_us": 1102.167, + "count_warm_p90_us": 1310.747, + "count_engine_med_us": 1300.108, + "exists_cold_us": 1881.187, + "exists_warm_med_us": 994.064, + "exists_warm_p10_us": 941.687, + "exists_warm_p90_us": 1114.521, + "exists_engine_med_us": 1060.978, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_one_nothing", + "threads": 4, + "count": 1002, + "exists": true, + "count_cold_us": 3063.021, + "count_warm_med_us": 1669.456, + "count_warm_p10_us": 1571.144, + "count_warm_p90_us": 1822.994, + "count_engine_med_us": 1835.651, + "exists_cold_us": 1923.263, + "exists_warm_med_us": 1048.372, + "exists_warm_p10_us": 921.967, + "exists_warm_p90_us": 1378.58, + "exists_engine_med_us": 1363.327, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_or_one_everything", + "threads": 4, + "count": 1000000, + "exists": true, + "count_cold_us": 2127.866, + "count_warm_med_us": 714.926, + "count_warm_p10_us": 583.568, + "count_warm_p90_us": 1277.241, + "count_engine_med_us": null, + "exists_cold_us": 2717.184, + "exists_warm_med_us": 802.745, + "exists_warm_p10_us": 737.677, + "exists_warm_p90_us": 963.016, + "exists_engine_med_us": 996.882, + "count_stats_folded": true, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_or_one_nothing", + "threads": 4, + "count": 1000, + "exists": true, + "count_cold_us": 2637.15, + "count_warm_med_us": 1582.298, + "count_warm_p10_us": 1375.38, + "count_warm_p90_us": 1687.622, + "count_engine_med_us": 1662.749, + "exists_cold_us": 1912.519, + "exists_warm_med_us": 973.994, + "exists_warm_p10_us": 877.207, + "exists_warm_p90_us": 1100.177, + "exists_engine_med_us": 1118.753, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_16_nonselective", + "threads": 4, + "count": 827152, + "exists": true, + "count_cold_us": 10327.381, + "count_warm_med_us": 7983.685, + "count_warm_p10_us": 7487.063, + "count_warm_p90_us": 8781.882, + "count_engine_med_us": 7986.808, + "exists_cold_us": 3597.36, + "exists_warm_med_us": 1664.948, + "exists_warm_p10_us": 1568.237, + "exists_warm_p90_us": 1878.976, + "exists_engine_med_us": 1793.336, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_16_collapse_one", + "threads": 4, + "count": 46, + "exists": true, + "count_cold_us": 5901.165, + "count_warm_med_us": 3516.848, + "count_warm_p10_us": 3371.847, + "count_warm_p90_us": 3765.41, + "count_engine_med_us": 3556.431, + "exists_cold_us": 3679.681, + "exists_warm_med_us": 2077.584, + "exists_warm_p10_us": 1928.684, + "exists_warm_p90_us": 2220.755, + "exists_engine_med_us": 2180.09, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_correlated_2", + "threads": 4, + "count": 500001, + "exists": true, + "count_cold_us": 2564.117, + "count_warm_med_us": 1566.666, + "count_warm_p10_us": 1392.653, + "count_warm_p90_us": 1758.922, + "count_engine_med_us": 1488.697, + "exists_cold_us": 1840.03, + "exists_warm_med_us": 986.09, + "exists_warm_p10_us": 919.789, + "exists_warm_p90_us": 1061.513, + "exists_engine_med_us": 1180.559, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_correlated_5", + "threads": 4, + "count": 490001, + "exists": true, + "count_cold_us": 2698.497, + "count_warm_med_us": 1658.935, + "count_warm_p10_us": 1528.551, + "count_warm_p90_us": 1775.477, + "count_engine_med_us": 1662.861, + "exists_cold_us": 2737.458, + "exists_warm_med_us": 1049.784, + "exists_warm_p10_us": 960.2, + "exists_warm_p90_us": 1207.568, + "exists_engine_med_us": 1156.534, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_contradictory_2", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 1487.956, + "count_warm_med_us": 554.68, + "count_warm_p10_us": 480.254, + "count_warm_p90_us": 638.74, + "count_engine_med_us": 597.595, + "exists_cold_us": 1690.194, + "exists_warm_med_us": 740.431, + "exists_warm_p10_us": 664.818, + "exists_warm_p90_us": 808.991, + "exists_engine_med_us": 863.718, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "adv_contradictory_17", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 3085.611, + "count_warm_med_us": 1155.277, + "count_warm_p10_us": 743.344, + "count_warm_p90_us": 1307.314, + "count_engine_med_us": 824.096, + "exists_cold_us": 2420.91, + "exists_warm_med_us": 985.468, + "exists_warm_p10_us": 923.801, + "exists_warm_p90_us": 1106.023, + "exists_engine_med_us": 989.059, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "null_and", + "threads": 4, + "count": 99875, + "exists": true, + "count_cold_us": 2924.824, + "count_warm_med_us": 1765.143, + "count_warm_p10_us": 1457.853, + "count_warm_p90_us": 1955.162, + "count_engine_med_us": 1708.561, + "exists_cold_us": 1877.747, + "exists_warm_med_us": 963.489, + "exists_warm_p10_us": 896.82, + "exists_warm_p90_us": 1028.814, + "exists_engine_med_us": 1062.065, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "null_not", + "threads": 4, + "count": 450007, + "exists": true, + "count_cold_us": 2426.254, + "count_warm_med_us": 1289.668, + "count_warm_p10_us": 1180.428, + "count_warm_p90_us": 1423.775, + "count_engine_med_us": 1252.45, + "exists_cold_us": 1708.295, + "exists_warm_med_us": 845.252, + "exists_warm_p10_us": 786.49, + "exists_warm_p90_us": 930.016, + "exists_engine_med_us": 995.635, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "null_or", + "threads": 4, + "count": 190006, + "exists": true, + "count_cold_us": 4111.105, + "count_warm_med_us": 3894.793, + "count_warm_p10_us": 3769.778, + "count_warm_p90_us": 4155.265, + "count_engine_med_us": 4046.264, + "exists_cold_us": 1775.483, + "exists_warm_med_us": 1001.545, + "exists_warm_p10_us": 915.337, + "exists_warm_p90_us": 1077.929, + "exists_engine_med_us": 1120.374, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "null_not_and", + "threads": 4, + "count": 850017, + "exists": true, + "count_cold_us": 10708.737, + "count_warm_med_us": 9881.909, + "count_warm_p10_us": 9574.747, + "count_warm_p90_us": 10409.391, + "count_engine_med_us": 9599.839, + "exists_cold_us": 2200.933, + "exists_warm_med_us": 1034.653, + "exists_warm_p10_us": 963.539, + "exists_warm_p90_us": 1181.843, + "exists_engine_med_us": 1166.928, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + }, + { + "id": "null_and_5", + "threads": 4, + "count": 267454, + "exists": true, + "count_cold_us": 3978.5, + "count_warm_med_us": 2810.408, + "count_warm_p10_us": 2653.619, + "count_warm_p90_us": 3018.925, + "count_engine_med_us": 2845.055, + "exists_cold_us": 2300.549, + "exists_warm_med_us": 1117.777, + "exists_warm_p10_us": 1049.73, + "exists_warm_p90_us": 1300.315, + "exists_engine_med_us": 1182.867, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 191.498 + } + ] +} \ No newline at end of file diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md new file mode 100644 index 000000000..76b05d426 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md @@ -0,0 +1,168 @@ +# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 10,000,000 + +Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). + +Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 0), k3_tiny_and (target 50, achieved 0), k3_tiny_or (target 50, achieved 0), k3_tiny_mixed (target 50, achieved 0), k8_tiny_and (target 50, achieved 470), k8_tiny_or (target 50, achieved 0), k8_tiny_mixed (target 50, achieved 935), k17_tiny_and (target 50, achieved 467), k17_tiny_or (target 50, achieved 0), k17_tiny_mixed (target 50, achieved 467), k24_tiny_and (target 50, achieved 472), k24_tiny_or (target 50, achieved 0), k24_tiny_mixed (target 50, achieved 470) + +DuckDB build + ANALYZE: threads 1: 5,654,699 us (build 5,653,755, analyze 943); threads 4: 4,333,441 us (build 4,332,828, analyze 613) + +### N = 10,000,000, DuckDB threads = 1 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 477.0 | 592.1 | 591.0 | 0.28 | LOSS | 0.35 | LOSS | 0.36 | LOSS | +| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 16065.5 | 22896.0 | 920.9 | 9.54 | WIN | 13.59 | WIN | 0.54 | LOSS | +| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 14682.0 | 16553.4 | 627.6 | 8.40 | WIN | 9.47 | WIN | 0.36 | LOSS | +| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 36607.8 | 37059.9 | 40659.1 | 7.07 | WIN | 7.16 | WIN | 7.63 | WIN | +| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 34347.9 | 36076.6 | 699.2 | 6.34 | WIN | 6.66 | WIN | 0.13 | LOSS | +| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 41119.5 | 41982.1 | 713.7 | 7.83 | WIN | 8.00 | WIN | 0.13 | LOSS | +| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 539.0 | 582.3 | 606.5 | 0.10 | LOSS | 0.11 | LOSS | 0.11 | LOSS | +| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 66221.3 | 65374.4 | 1148.4 | 13.13 | WIN | 12.96 | WIN | 0.23 | LOSS | +| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 192171.0 | 191457.4 | 813.0 | 37.57 | WIN | 37.43 | WIN | 0.16 | LOSS | +| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 40150.0 | 55077.6 | 52672.7 | 7.39 | WIN | 10.14 | WIN | 9.31 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 47956.4 | 52098.6 | 791.7 | 8.08 | WIN | 8.78 | WIN | 0.14 | LOSS | +| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 145146.5 | 147578.6 | 816.5 | 25.93 | WIN | 26.36 | WIN | 0.15 | LOSS | +| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 54096.7 | 60818.1 | 1617.4 | 2.25 | WIN | 2.53 | WIN | 0.07 | LOSS | +| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 83866.3 | 82393.0 | 958.7 | 2.30 | WIN | 2.26 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 108897.6 | 106359.7 | 946.6 | 2.95 | WIN | 2.89 | WIN | 0.03 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 702.6 | 944.2 | 1262.4 | 0.02 | LOSS | 0.03 | LOSS | 0.03 | LOSS | +| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 173318.7 | 171537.3 | 957.7 | 4.75 | WIN | 4.70 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 310465.8 | 300716.6 | 995.7 | 8.66 | WIN | 8.39 | WIN | 0.03 | LOSS | +| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 150918.1 | 146203.9 | 1770.6 | 4.14 | WIN | 4.01 | WIN | 0.05 | LOSS | +| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 263585.0 | 291324.8 | 1106.1 | 7.17 | WIN | 7.93 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 717301.7 | 687487.8 | 1228.8 | 15.43 | WIN | 14.79 | WIN | 0.03 | LOSS | +| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 142113.7 | 145205.5 | 2076.0 | 1.91 | WIN | 1.96 | WIN | 0.03 | LOSS | +| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 159095.2 | 169152.2 | 1784.8 | 2.16 | WIN | 2.30 | WIN | 0.02 | LOSS | +| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 212825.2 | 222076.1 | 1341.8 | 2.84 | WIN | 2.96 | WIN | 0.02 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1041.1 | 932.3 | 1473.9 | 0.01 | LOSS | 0.01 | LOSS | 0.02 | LOSS | +| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 225787.9 | 239839.7 | 1347.3 | 3.06 | WIN | 3.25 | WIN | 0.02 | LOSS | +| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 478393.1 | 542011.3 | 1349.0 | 6.62 | WIN | 7.50 | WIN | 0.02 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 136162.5 | 132247.9 | 2176.5 | 3.26 | WIN | 3.16 | WIN | 0.04 | LOSS | +| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 293818.0 | 298033.9 | 1420.6 | 4.00 | WIN | 4.06 | WIN | 0.02 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 1382934.4 | 1401588.6 | 2389.6 | 18.53 | WIN | 18.78 | WIN | 0.03 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 147036.4 | 137556.3 | 1684.9 | 1.57 | WIN | 1.47 | WIN | 0.02 | LOSS | +| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 188568.6 | 187580.2 | 1508.9 | 2.11 | WIN | 2.10 | WIN | 0.02 | LOSS | +| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 248329.8 | 243513.3 | 1504.5 | 2.89 | WIN | 2.83 | WIN | 0.02 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1002.4 | 1046.2 | 1129.8 | 0.01 | LOSS | 0.01 | LOSS | 0.01 | LOSS | +| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 227149.9 | 239568.3 | 1463.5 | 2.51 | WIN | 2.65 | WIN | 0.02 | LOSS | +| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 572694.7 | 558926.0 | 1600.6 | 6.41 | WIN | 6.26 | WIN | 0.02 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 657116.1 | 567573.7 | 1916.5 | 7.24 | WIN | 6.25 | WIN | 0.02 | LOSS | +| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 932183.2 | 981755.7 | 1784.2 | 10.40 | WIN | 10.95 | WIN | 0.02 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 2090124.5 | 1985161.1 | 2006.5 | 24.37 | WIN | 23.15 | WIN | 0.02 | LOSS | +| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 14886.8 | 24485.8 | 972.8 | 4.09 | WIN | 6.72 | WIN | 0.28 | LOSS | +| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 25638.5 | 29261.4 | 1090.4 | 9.14 | WIN | 10.44 | WIN | 0.27 | LOSS | +| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 847.4 | - | 922.9 | 0.24 | LOSS | - | n/a | 0.27 | LOSS | +| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 22805.1 | 23057.3 | 713.4 | 6.65 | WIN | 6.72 | WIN | 0.21 | LOSS | +| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 217536.6 | 234985.9 | 1441.2 | 3.00 | WIN | 3.24 | WIN | 0.02 | LOSS | +| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 64305.0 | 64808.0 | 1413.1 | 3.23 | WIN | 3.26 | WIN | 0.07 | LOSS | +| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 28390.5 | 30240.1 | 668.0 | 8.04 | WIN | 8.56 | WIN | 0.19 | LOSS | +| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 31018.7 | 32148.3 | 782.3 | 2.53 | WIN | 2.62 | WIN | 0.06 | LOSS | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 727.8 | 683.2 | 856.1 | 0.25 | LOSS | 0.23 | LOSS | 0.29 | LOSS | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 711.0 | 789.9 | 821.3 | 0.09 | LOSS | 0.11 | LOSS | 0.10 | LOSS | +| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 36063.3 | 36621.3 | 1035.5 | 7.72 | WIN | 7.84 | WIN | 0.18 | LOSS | +| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 20619.5 | 20156.2 | 775.5 | 9.46 | WIN | 9.25 | WIN | 0.36 | LOSS | +| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 99873.4 | 132234.7 | 1117.0 | 21.32 | WIN | 28.23 | WIN | 0.28 | LOSS | +| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 268063.0 | 316992.9 | 787.3 | 67.76 | WIN | 80.13 | WIN | 0.20 | LOSS | +| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 70334.6 | 73451.0 | 814.6 | 3.21 | WIN | 3.35 | WIN | 0.04 | LOSS | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 10,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 12904.5 | 90393.4 | 7.00 | WIN | 46547.9 | 271667.0 | 5.84 | WIN | 3.06 | +| count vs duck count, engine | 12904.5 | 92188.6 | 7.14 | WIN | 46547.9 | 270997.0 | 5.82 | WIN | 3.19 | +| any vs duck exists, wall | 12913.8 | 5567.0 | 0.43 | LOSS | 46604.5 | 3637.5 | 0.08 | LOSS | 0.06 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 1707.2 | 10408.2 | 6.10 | WIN | 0.34 | +| 2-4 | 9 | 5367.4 | 67139.9 | 12.51 | WIN | 0.46 | +| 5-16 | 9 | 36199.5 | 207017.0 | 5.72 | WIN | 0.14 | +| 17+ | 18 | 79785.8 | 449798.7 | 5.64 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. + +### N = 10,000,000, DuckDB threads = 4 + +| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | +|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| +| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 749.2 | 608.7 | 740.3 | 0.44 | LOSS | 0.36 | LOSS | 0.44 | LOSS | +| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 4115.6 | 4174.6 | 878.1 | 2.44 | WIN | 2.48 | WIN | 0.52 | LOSS | +| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 4483.3 | 4355.8 | 913.8 | 2.56 | WIN | 2.49 | WIN | 0.52 | LOSS | +| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 10953.8 | 10635.1 | 10197.0 | 2.12 | WIN | 2.05 | WIN | 1.91 | WIN | +| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 9979.6 | 10728.6 | 1034.5 | 1.84 | WIN | 1.98 | WIN | 0.19 | LOSS | +| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 12053.1 | 12181.6 | 1018.2 | 2.30 | WIN | 2.32 | WIN | 0.19 | LOSS | +| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 648.2 | 678.1 | 750.1 | 0.12 | LOSS | 0.13 | LOSS | 0.14 | LOSS | +| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 18505.3 | 18795.1 | 1011.7 | 3.67 | WIN | 3.73 | WIN | 0.20 | LOSS | +| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 50145.2 | 54685.3 | 1035.6 | 9.80 | WIN | 10.69 | WIN | 0.20 | LOSS | +| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 10858.1 | 10898.2 | 11380.8 | 2.00 | WIN | 2.01 | WIN | 2.01 | WIN | +| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 13830.3 | 12542.5 | 976.2 | 2.33 | WIN | 2.11 | WIN | 0.17 | LOSS | +| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 37466.7 | 40296.9 | 1052.1 | 6.69 | WIN | 7.20 | WIN | 0.20 | LOSS | +| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 16602.2 | 19904.8 | 1921.7 | 0.69 | LOSS | 0.83 | LOSS | 0.09 | LOSS | +| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 26988.8 | 24283.4 | 1249.7 | 0.74 | LOSS | 0.67 | LOSS | 0.03 | LOSS | +| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 30166.4 | 29397.2 | 1241.5 | 0.82 | LOSS | 0.80 | LOSS | 0.03 | LOSS | +| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 798.1 | 851.8 | 1022.5 | 0.02 | LOSS | 0.02 | LOSS | 0.03 | LOSS | +| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 51723.3 | 46573.0 | 1226.4 | 1.42 | WIN | 1.28 | WIN | 0.03 | LOSS | +| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 84262.8 | 89431.8 | 1399.6 | 2.35 | WIN | 2.50 | WIN | 0.04 | LOSS | +| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 43857.1 | 43639.9 | 2757.2 | 1.20 | WIN | 1.20 | WIN | 0.07 | LOSS | +| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 78663.7 | 87577.5 | 1337.5 | 2.14 | WIN | 2.38 | WIN | 0.04 | LOSS | +| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 187067.9 | 192926.0 | 1470.6 | 4.02 | WIN | 4.15 | WIN | 0.03 | LOSS | +| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 41400.9 | 37266.6 | 2457.8 | 0.56 | LOSS | 0.50 | LOSS | 0.03 | LOSS | +| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 43895.3 | 45147.6 | 1538.0 | 0.60 | LOSS | 0.61 | LOSS | 0.02 | LOSS | +| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 57312.3 | 55350.1 | 1651.6 | 0.76 | LOSS | 0.74 | LOSS | 0.02 | LOSS | +| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1239.1 | 1011.0 | 1299.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | +| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 70731.7 | 71277.0 | 1534.5 | 0.96 | PARITY | 0.97 | PARITY | 0.02 | LOSS | +| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 132258.5 | 128086.9 | 1600.5 | 1.83 | WIN | 1.77 | WIN | 0.02 | LOSS | +| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 37984.4 | 42628.1 | 3366.9 | 0.91 | PARITY | 1.02 | PARITY | 0.07 | LOSS | +| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 82346.8 | 85098.5 | 1813.5 | 1.12 | WIN | 1.16 | WIN | 0.02 | LOSS | +| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 363912.1 | 367205.7 | 2557.8 | 4.88 | WIN | 4.92 | WIN | 0.03 | LOSS | +| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 42430.7 | 53442.5 | 2717.2 | 0.45 | LOSS | 0.57 | LOSS | 0.03 | LOSS | +| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 55181.2 | 65205.9 | 2579.0 | 0.62 | LOSS | 0.73 | LOSS | 0.03 | LOSS | +| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 68975.0 | 69978.9 | 2407.8 | 0.80 | LOSS | 0.81 | LOSS | 0.03 | LOSS | +| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1637.8 | 1171.0 | 1724.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | +| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 88748.3 | 104740.6 | 3027.8 | 0.98 | PARITY | 1.16 | WIN | 0.04 | LOSS | +| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 215605.7 | 212426.9 | 3283.8 | 2.41 | WIN | 2.38 | WIN | 0.04 | LOSS | +| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 183991.0 | 179896.0 | 7625.6 | 2.03 | WIN | 1.98 | WIN | 0.08 | LOSS | +| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 268751.0 | 291474.1 | 2621.0 | 3.00 | WIN | 3.25 | WIN | 0.03 | LOSS | +| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 556772.8 | 516854.5 | 2286.9 | 6.49 | WIN | 6.03 | WIN | 0.03 | LOSS | +| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 3725.4 | 4034.9 | 901.8 | 1.02 | PARITY | 1.11 | WIN | 0.26 | LOSS | +| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 7062.0 | 7261.5 | 1009.7 | 2.52 | WIN | 2.59 | WIN | 0.25 | LOSS | +| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 633.2 | - | 771.4 | 0.18 | LOSS | - | n/a | 0.22 | LOSS | +| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 5287.0 | 5569.3 | 916.4 | 1.54 | WIN | 1.62 | WIN | 0.26 | LOSS | +| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 57095.4 | 59265.9 | 1649.1 | 0.79 | LOSS | 0.82 | LOSS | 0.02 | LOSS | +| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 18712.3 | 19949.1 | 2643.1 | 0.94 | PARITY | 1.00 | PARITY | 0.13 | LOSS | +| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 7181.1 | 6992.3 | 921.0 | 2.03 | WIN | 1.98 | WIN | 0.26 | LOSS | +| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 6878.6 | 6917.5 | 949.2 | 0.56 | LOSS | 0.56 | LOSS | 0.07 | LOSS | +| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 656.9 | 676.6 | 947.9 | 0.22 | LOSS | 0.23 | LOSS | 0.33 | LOSS | +| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 790.0 | 882.2 | 949.5 | 0.11 | LOSS | 0.12 | LOSS | 0.12 | LOSS | +| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 8346.3 | 8109.7 | 961.5 | 1.79 | WIN | 1.74 | WIN | 0.17 | LOSS | +| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 5210.3 | 5399.1 | 1018.5 | 2.39 | WIN | 2.48 | WIN | 0.47 | LOSS | +| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 26963.6 | 27898.9 | 1347.2 | 5.76 | WIN | 5.96 | WIN | 0.33 | LOSS | +| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 74116.9 | 74124.0 | 1188.5 | 18.74 | WIN | 18.74 | WIN | 0.30 | LOSS | +| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 17936.4 | 17825.6 | 1060.5 | 0.82 | LOSS | 0.81 | LOSS | 0.05 | LOSS | + +Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. + +Summary, N = 10,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) + +| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | +|---|---:|---:|---:|---|---:|---:|---:|---|---:| +| count vs duck count, wall | 12904.5 | 25265.7 | 1.96 | WIN | 46547.9 | 77105.0 | 1.66 | WIN | 1.07 | +| count vs duck count, engine | 12904.5 | 25875.0 | 2.01 | WIN | 46547.9 | 78036.6 | 1.68 | WIN | 1.08 | +| any vs duck exists, wall | 12913.8 | 2107.0 | 0.16 | LOSS | 46604.5 | 2325.8 | 0.05 | LOSS | 0.07 | + +Per K group (count vs duck count, wall; mean us over regular cases): + +| K group | cases | ours us | duck us | ratio | verdict | weight | +|---|---:|---:|---:|---:|---|---:| +| 1 | 3 | 1707.2 | 3116.0 | 1.83 | WIN | 0.34 | +| 2-4 | 9 | 5367.4 | 18271.1 | 3.40 | WIN | 0.46 | +| 5-16 | 9 | 36199.5 | 57792.3 | 1.60 | WIN | 0.14 | +| 17+ | 18 | 79785.8 | 128509.7 | 1.61 | WIN | 0.06 | + +Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. + diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt new file mode 100644 index 000000000..c77022961 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt @@ -0,0 +1,143 @@ +-- k17_medium_and (K group 17+) +-- WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829)) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 5.2e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.0007658659999999986, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": [ + "((c8 >= 171) AND (c8 < 829))", + "((c4 >= 172) AND (c4 < 829))", + "(c5 < 829)", + "(c1 >= 171)", + "(c12 < 829)", + "(c7 >= 171)", + "(c14 < 829)", + "(c13 >= 171)", + "(c2 < 829)", + "(c9 >= 171)", + "(c3 < 829)", + "(c0 >= 171)", + "(c11 < 829)", + "(c6 >= 171)", + "(c10 < 829)" + ], + "Estimated Cardinality": "2000000" + }, + "intermediate_rows": 97561, + "intermediate_size_bytes": 5853660, + "row_groups_scanned": 82, + "rows_scanned": 10000000, + "timing": 0.17273337600000016, + "total_row_groups_to_scan": 82, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.000006017, + "aggregate_reuse": 0.000002743, + "build_side_probe_side": 0.000001854, + "column_lifetime": 0.000003201, + "common_aggregate": 0.000001602, + "common_subexpressions": 0.000001524, + "common_subplan": 0.000016118, + "cte_filter_pusher": 6.34e-7, + "cte_inlining": 6.91e-7, + "deliminator": 9.85e-7, + "duplicate_groups": 0.000001811, + "empty_result_pullup": 4.79e-7, + "expression_rewriter": 0.000183576, + "filter_pullup": 0.000001155, + "filter_pushdown": 0.000149399, + "grouping_sets": 7.81e-7, + "in_clause": 8.94e-7, + "join_elimination": 0.000001708, + "join_filter_pushdown": 6.16e-7, + "join_order": 0.000071708, + "late_materialization": 0.000001346, + "limit_pushdown": 5.25e-7, + "outer_join_simplification": 0.000003101, + "partial_aggregate_pushdown": 0.000001595, + "partitioned_execution": 6.39e-7, + "projection_placement": 0.000001853, + "projection_pullup": 0.000001666, + "redundant_order_keys": 0.000003621, + "regex_range": 5.55e-7, + "reorder_filter": 6.18e-7, + "row_group_pruner": 4.99e-7, + "row_number_rewriter": 6.16e-7, + "sampling_pushdown": 3.85e-7, + "scalar_fn_pushdown": 3.53e-7, + "statistics_propagation": 0.000252125, + "top_n": 5.06e-7, + "top_n_window_elimination": 0.000003147, + "total_time": 0.000914687, + "type_pushdown": 4.83e-7, + "unnest_rewriter": 9.29e-7, + "unused_columns": 0.000097124, + "window_self_join": 7.31e-7 + }, + "physical_planner": { + "column_binding": 0.000003, + "create_plan": 0.000028416, + "resolve_types": 5.34e-7, + "total_time": 0.000038708 + }, + "planner": { + "binding_time": 0.000258894, + "total_time": 0.000368208 + }, + "query": { + "cpu_time": 0.17349976200000017, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829))", + "total_intermediate_rows": 97562, + "total_intermediate_size_bytes": 5853668, + "total_row_groups_scanned": 82, + "total_row_groups_to_scan": 82, + "total_rows_scanned": 10000000, + "total_time": 0.189325537 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 814565048, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt new file mode 100644 index 000000000..79c42eb1a --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt @@ -0,0 +1,127 @@ +-- k1_medium_single (K group 1) +-- WHERE (c5 < 10) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 3.52e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.0005367530000000005, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": "(c5 < 10)", + "Estimated Cardinality": "2000000" + }, + "intermediate_rows": 100002, + "intermediate_size_bytes": 400008, + "row_groups_scanned": 82, + "rows_scanned": 10000000, + "timing": 0.018524467999999957, + "total_row_groups_to_scan": 82, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.000006707, + "aggregate_reuse": 0.000002002, + "build_side_probe_side": 0.00000146, + "column_lifetime": 0.000003316, + "common_aggregate": 0.000001906, + "common_subexpressions": 0.000001213, + "common_subplan": 0.000018777, + "cte_filter_pusher": 6.17e-7, + "cte_inlining": 6.08e-7, + "deliminator": 8.65e-7, + "duplicate_groups": 0.000001394, + "empty_result_pullup": 4.29e-7, + "expression_rewriter": 0.000038844, + "filter_pullup": 0.000001116, + "filter_pushdown": 0.000024453, + "grouping_sets": 5.1e-7, + "in_clause": 6.06e-7, + "join_elimination": 0.000001651, + "join_filter_pushdown": 6.3e-7, + "join_order": 0.000032051, + "late_materialization": 0.000001055, + "limit_pushdown": 5.42e-7, + "outer_join_simplification": 0.000002456, + "partial_aggregate_pushdown": 0.00000153, + "partitioned_execution": 7.09e-7, + "projection_placement": 0.000001734, + "projection_pullup": 0.000001274, + "redundant_order_keys": 0.000001593, + "regex_range": 5.05e-7, + "reorder_filter": 6.26e-7, + "row_group_pruner": 4.56e-7, + "row_number_rewriter": 5.82e-7, + "sampling_pushdown": 4.81e-7, + "scalar_fn_pushdown": 3.13e-7, + "statistics_propagation": 0.000212398, + "top_n": 4.51e-7, + "top_n_window_elimination": 0.00000304, + "total_time": 0.000472748, + "type_pushdown": 4.74e-7, + "unnest_rewriter": 8.64e-7, + "unused_columns": 0.000011677, + "window_self_join": 6.8e-7 + }, + "physical_planner": { + "column_binding": 0.000002797, + "create_plan": 0.000016452, + "resolve_types": 3.43e-7, + "total_time": 0.000025605 + }, + "planner": { + "binding_time": 0.000127689, + "total_time": 0.000208018 + }, + "query": { + "cpu_time": 0.019061572999999957, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE (c5 < 10)", + "total_intermediate_rows": 100003, + "total_intermediate_size_bytes": 400016, + "total_row_groups_scanned": 82, + "total_row_groups_to_scan": 82, + "total_rows_scanned": 10000000, + "total_time": 0.022363626 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 814495416, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt new file mode 100644 index 000000000..81f409c52 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt @@ -0,0 +1,131 @@ +-- k3_medium_and (K group 2-4) +-- WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207)) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 2.76e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.00041957100000000345, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": [ + "(c6 < 207)", + "(c10 >= 793)", + "(c2 < 207)" + ], + "Estimated Cardinality": "2000000" + }, + "intermediate_rows": 101386, + "intermediate_size_bytes": 1216632, + "row_groups_scanned": 82, + "rows_scanned": 10000000, + "timing": 0.02891999899999996, + "total_row_groups_to_scan": 82, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.00000506, + "aggregate_reuse": 0.000001767, + "build_side_probe_side": 0.000001327, + "column_lifetime": 0.000001901, + "common_aggregate": 9.71e-7, + "common_subexpressions": 9.04e-7, + "common_subplan": 0.000013631, + "cte_filter_pusher": 5.55e-7, + "cte_inlining": 5.1e-7, + "deliminator": 7.47e-7, + "duplicate_groups": 0.000001126, + "empty_result_pullup": 3.55e-7, + "expression_rewriter": 0.000061134, + "filter_pullup": 0.000001016, + "filter_pushdown": 0.000028983, + "grouping_sets": 5.58e-7, + "in_clause": 5.95e-7, + "join_elimination": 0.000001236, + "join_filter_pushdown": 3.83e-7, + "join_order": 0.000029447, + "late_materialization": 8.11e-7, + "limit_pushdown": 4.4e-7, + "outer_join_simplification": 0.000002109, + "partial_aggregate_pushdown": 0.000001266, + "partitioned_execution": 4.96e-7, + "projection_placement": 0.00000118, + "projection_pullup": 0.000001102, + "redundant_order_keys": 0.000001651, + "regex_range": 4.48e-7, + "reorder_filter": 5.04e-7, + "row_group_pruner": 3.7e-7, + "row_number_rewriter": 4.33e-7, + "sampling_pushdown": 3.23e-7, + "scalar_fn_pushdown": 2.62e-7, + "statistics_propagation": 0.000147441, + "top_n": 3.81e-7, + "top_n_window_elimination": 0.000002255, + "total_time": 0.00038529, + "type_pushdown": 3.51e-7, + "unnest_rewriter": 8.44e-7, + "unused_columns": 0.000012824, + "window_self_join": 5.84e-7 + }, + "physical_planner": { + "column_binding": 0.00000182, + "create_plan": 0.000011194, + "resolve_types": 1.67e-7, + "total_time": 0.000017201 + }, + "planner": { + "binding_time": 0.000142345, + "total_time": 0.000196464 + }, + "query": { + "cpu_time": 0.029339845999999965, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207))", + "total_intermediate_rows": 101387, + "total_intermediate_size_bytes": 1216640, + "total_row_groups_scanned": 82, + "total_row_groups_to_scan": 82, + "total_rows_scanned": 10000000, + "total_time": 0.03270091 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 814499512, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt new file mode 100644 index 000000000..d9cd2932c --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt @@ -0,0 +1,136 @@ +-- k8_medium_and (K group 5-16) +-- WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368)) +{ + "io": { + "total_bytes_read": 0, + "total_bytes_written": 0 + }, + "operator": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 0.0, + "type": "RESULT_COLLECTOR", + "children": [ + { + "extra_info": {}, + "intermediate_rows": 0, + "intermediate_size_bytes": 0, + "timing": 7.78e-7, + "type": "EXPLAIN_ANALYZE", + "children": [ + { + "extra_info": { + "Aggregates": "count_star()", + "Estimated Cardinality": "1" + }, + "intermediate_rows": 1, + "intermediate_size_bytes": 8, + "timing": 0.000550955999999999, + "type": "UNGROUPED_AGGREGATE", + "children": [ + { + "extra_info": { + "Table": "memory.main.nodes", + "Type": "Sequential Scan", + "Projections": "", + "Filters": [ + "(c3 < 632)", + "(c6 >= 368)", + "(c8 < 632)", + "(c11 >= 368)", + "(c9 < 632)", + "(c0 >= 368)", + "(c7 < 632)", + "(c2 >= 368)" + ], + "Estimated Cardinality": "2000000" + }, + "intermediate_rows": 100924, + "intermediate_size_bytes": 3229568, + "row_groups_scanned": 82, + "rows_scanned": 10000000, + "timing": 0.07691875, + "total_row_groups_to_scan": 82, + "type": "TABLE_SCAN" + } + ] + } + ] + } + ] + } + ], + "optimizer": { + "aggregate_function_rewriter": 0.000005096, + "aggregate_reuse": 0.000002043, + "build_side_probe_side": 0.000001147, + "column_lifetime": 0.000002107, + "common_aggregate": 0.000001025, + "common_subexpressions": 9.76e-7, + "common_subplan": 0.000012436, + "cte_filter_pusher": 5.45e-7, + "cte_inlining": 5.09e-7, + "deliminator": 8.05e-7, + "duplicate_groups": 0.000001122, + "empty_result_pullup": 3.68e-7, + "expression_rewriter": 0.000069692, + "filter_pullup": 9.77e-7, + "filter_pushdown": 0.000052628, + "grouping_sets": 3.22e-7, + "in_clause": 5.33e-7, + "join_elimination": 0.000001145, + "join_filter_pushdown": 3.81e-7, + "join_order": 0.000037383, + "late_materialization": 9.32e-7, + "limit_pushdown": 4.19e-7, + "outer_join_simplification": 0.000002133, + "partial_aggregate_pushdown": 0.000001228, + "partitioned_execution": 4.51e-7, + "projection_placement": 0.000001171, + "projection_pullup": 0.000001031, + "redundant_order_keys": 0.000001859, + "regex_range": 4.23e-7, + "reorder_filter": 5.15e-7, + "row_group_pruner": 3.34e-7, + "row_number_rewriter": 4.48e-7, + "sampling_pushdown": 3.29e-7, + "scalar_fn_pushdown": 2.1e-7, + "statistics_propagation": 0.000177119, + "top_n": 3.95e-7, + "top_n_window_elimination": 0.000002339, + "total_time": 0.000462814, + "type_pushdown": 3.45e-7, + "unnest_rewriter": 7.65e-7, + "unused_columns": 0.000023018, + "window_self_join": 5.94e-7 + }, + "physical_planner": { + "column_binding": 0.000001996, + "create_plan": 0.000014419, + "resolve_types": 2.47e-7, + "total_time": 0.000020795 + }, + "planner": { + "binding_time": 0.000140391, + "total_time": 0.000240742 + }, + "query": { + "cpu_time": 0.07747048399999999, + "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368))", + "total_intermediate_rows": 100925, + "total_intermediate_size_bytes": 3229576, + "total_row_groups_scanned": 82, + "total_row_groups_to_scan": 82, + "total_rows_scanned": 10000000, + "total_time": 0.084546192 + }, + "system": { + "blocked_thread_time": 0.0, + "peak_buffer_memory": 814532280, + "peak_streaming_buffer_size": 0, + "peak_temp_dir_size": 0, + "total_memory_allocated": 0 + } +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json new file mode 100644 index 000000000..4934dde8a --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json @@ -0,0 +1,2073 @@ +{ + "n": 10000000, + "duckdb_version": "2.0.0", + "runs": 31, + "load": { + "1": { + "build_us": 5653755.113, + "analyze_us": 943.46, + "load_us": 5654698.573, + "mem_bytes": 814474936 + }, + "4": { + "build_us": 4332828.166, + "analyze_us": 613.072, + "load_us": 4333441.238, + "mem_bytes": 814474936 + } + }, + "records": [ + { + "id": "k1_tiny_single", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 1502.927, + "count_warm_med_us": 477.013, + "count_warm_p10_us": 408.835, + "count_warm_p90_us": 630.858, + "count_engine_med_us": 592.148, + "exists_cold_us": 1338.812, + "exists_warm_med_us": 590.955, + "exists_warm_p10_us": 482.909, + "exists_warm_p90_us": 690.654, + "exists_engine_med_us": 622.01, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k1_medium_single", + "threads": 1, + "count": 100002, + "exists": true, + "count_cold_us": 17806.969, + "count_warm_med_us": 16065.49, + "count_warm_p10_us": 15530.8, + "count_warm_p90_us": 20597.148, + "count_engine_med_us": 22895.954, + "exists_cold_us": 2287.917, + "exists_warm_med_us": 920.903, + "exists_warm_p10_us": 897.547, + "exists_warm_p90_us": 970.571, + "exists_engine_med_us": 953.188, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k1_large_single", + "threads": 1, + "count": 5000008, + "exists": true, + "count_cold_us": 21972.435, + "count_warm_med_us": 14681.996, + "count_warm_p10_us": 14370.354, + "count_warm_p90_us": 20998.677, + "count_engine_med_us": 16553.427, + "exists_cold_us": 2115.024, + "exists_warm_med_us": 627.561, + "exists_warm_p10_us": 579.828, + "exists_warm_p90_us": 966.131, + "exists_engine_med_us": 711.952, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_tiny_and", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 39107.699, + "count_warm_med_us": 36607.801, + "count_warm_p10_us": 35727.308, + "count_warm_p90_us": 37243.996, + "count_engine_med_us": 37059.917, + "exists_cold_us": 38545.787, + "exists_warm_med_us": 40659.084, + "exists_warm_p10_us": 37146.254, + "exists_warm_p90_us": 49803.645, + "exists_engine_med_us": 38382.767, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_medium_and", + "threads": 1, + "count": 101386, + "exists": true, + "count_cold_us": 35388.754, + "count_warm_med_us": 34347.86, + "count_warm_p10_us": 32493.15, + "count_warm_p90_us": 46666.538, + "count_engine_med_us": 36076.56, + "exists_cold_us": 1915.497, + "exists_warm_med_us": 699.225, + "exists_warm_p10_us": 668.549, + "exists_warm_p90_us": 761.953, + "exists_engine_med_us": 777.487, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_large_and", + "threads": 1, + "count": 4996187, + "exists": true, + "count_cold_us": 41949.634, + "count_warm_med_us": 41119.455, + "count_warm_p10_us": 39527.829, + "count_warm_p90_us": 43056.729, + "count_engine_med_us": 41982.082, + "exists_cold_us": 1922.807, + "exists_warm_med_us": 713.718, + "exists_warm_p10_us": 655.19, + "exists_warm_p90_us": 870.533, + "exists_engine_med_us": 797.706, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_tiny_or", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 1543.436, + "count_warm_med_us": 539.027, + "count_warm_p10_us": 465.898, + "count_warm_p90_us": 627.315, + "count_engine_med_us": 582.296, + "exists_cold_us": 1491.669, + "exists_warm_med_us": 606.528, + "exists_warm_p10_us": 561.03, + "exists_warm_p90_us": 660.887, + "exists_engine_med_us": 693.028, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_medium_or", + "threads": 1, + "count": 100001, + "exists": true, + "count_cold_us": 65330.231, + "count_warm_med_us": 66221.265, + "count_warm_p10_us": 61354.836, + "count_warm_p90_us": 81898.146, + "count_engine_med_us": 65374.369, + "exists_cold_us": 2907.079, + "exists_warm_med_us": 1148.436, + "exists_warm_p10_us": 1090.744, + "exists_warm_p90_us": 1229.111, + "exists_engine_med_us": 1195.573, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_large_or", + "threads": 1, + "count": 5006214, + "exists": true, + "count_cold_us": 197823.689, + "count_warm_med_us": 192171.033, + "count_warm_p10_us": 184787.064, + "count_warm_p90_us": 214027.569, + "count_engine_med_us": 191457.375, + "exists_cold_us": 3055.179, + "exists_warm_med_us": 812.988, + "exists_warm_p10_us": 740.335, + "exists_warm_p90_us": 1276.436, + "exists_engine_med_us": 893.209, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_tiny_mixed", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 39844.837, + "count_warm_med_us": 40149.951, + "count_warm_p10_us": 37893.998, + "count_warm_p90_us": 52291.964, + "count_engine_med_us": 55077.566, + "exists_cold_us": 55464.296, + "exists_warm_med_us": 52672.705, + "exists_warm_p10_us": 38049.641, + "exists_warm_p90_us": 54798.037, + "exists_engine_med_us": 39506.53, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_medium_mixed", + "threads": 1, + "count": 98184, + "exists": true, + "count_cold_us": 49169.464, + "count_warm_med_us": 47956.362, + "count_warm_p10_us": 46308.891, + "count_warm_p90_us": 59247.109, + "count_engine_med_us": 52098.581, + "exists_cold_us": 2183.775, + "exists_warm_med_us": 791.66, + "exists_warm_p10_us": 741.61, + "exists_warm_p90_us": 896.465, + "exists_engine_med_us": 855.07, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k3_large_mixed", + "threads": 1, + "count": 4994319, + "exists": true, + "count_cold_us": 147057.985, + "count_warm_med_us": 145146.481, + "count_warm_p10_us": 139223.291, + "count_warm_p90_us": 176244.875, + "count_engine_med_us": 147578.576, + "exists_cold_us": 2236.074, + "exists_warm_med_us": 816.537, + "exists_warm_p10_us": 764.745, + "exists_warm_p90_us": 946.14, + "exists_engine_med_us": 872.718, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_tiny_and", + "threads": 1, + "count": 470, + "exists": true, + "count_cold_us": 55956.83, + "count_warm_med_us": 54096.707, + "count_warm_p10_us": 52613.907, + "count_warm_p90_us": 60750.264, + "count_engine_med_us": 60818.107, + "exists_cold_us": 3842.115, + "exists_warm_med_us": 1617.39, + "exists_warm_p10_us": 1284.12, + "exists_warm_p90_us": 1742.286, + "exists_engine_med_us": 1768.812, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_medium_and", + "threads": 1, + "count": 100924, + "exists": true, + "count_cold_us": 84760.756, + "count_warm_med_us": 83866.331, + "count_warm_p10_us": 78918.1, + "count_warm_p90_us": 97287.874, + "count_engine_med_us": 82392.971, + "exists_cold_us": 2725.984, + "exists_warm_med_us": 958.659, + "exists_warm_p10_us": 903.8, + "exists_warm_p90_us": 1021.921, + "exists_engine_med_us": 998.406, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_large_and", + "threads": 1, + "count": 4981051, + "exists": true, + "count_cold_us": 108266.632, + "count_warm_med_us": 108897.643, + "count_warm_p10_us": 103072.351, + "count_warm_p90_us": 143759.357, + "count_engine_med_us": 106359.689, + "exists_cold_us": 2578.549, + "exists_warm_med_us": 946.59, + "exists_warm_p10_us": 900.27, + "exists_warm_p90_us": 1052.842, + "exists_engine_med_us": 1035.345, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_tiny_or", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 2263.95, + "count_warm_med_us": 702.615, + "count_warm_p10_us": 616.987, + "count_warm_p90_us": 762.604, + "count_engine_med_us": 944.155, + "exists_cold_us": 2094.385, + "exists_warm_med_us": 1262.405, + "exists_warm_p10_us": 828.011, + "exists_warm_p90_us": 1459.215, + "exists_engine_med_us": 1247.973, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_medium_or", + "threads": 1, + "count": 99996, + "exists": true, + "count_cold_us": 198433.602, + "count_warm_med_us": 173318.713, + "count_warm_p10_us": 165066.428, + "count_warm_p90_us": 210973.249, + "count_engine_med_us": 171537.306, + "exists_cold_us": 2952.271, + "exists_warm_med_us": 957.676, + "exists_warm_p10_us": 897.092, + "exists_warm_p90_us": 1081.243, + "exists_engine_med_us": 1085.393, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_large_or", + "threads": 1, + "count": 4988280, + "exists": true, + "count_cold_us": 293438.828, + "count_warm_med_us": 310465.768, + "count_warm_p10_us": 287628.682, + "count_warm_p90_us": 357198.362, + "count_engine_med_us": 300716.615, + "exists_cold_us": 2625.46, + "exists_warm_med_us": 995.7, + "exists_warm_p10_us": 954.724, + "exists_warm_p90_us": 1119.895, + "exists_engine_med_us": 1097.319, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_tiny_mixed", + "threads": 1, + "count": 935, + "exists": true, + "count_cold_us": 156531.439, + "count_warm_med_us": 150918.097, + "count_warm_p10_us": 139435.223, + "count_warm_p90_us": 171941.7, + "count_engine_med_us": 146203.897, + "exists_cold_us": 4109.031, + "exists_warm_med_us": 1770.589, + "exists_warm_p10_us": 1685.204, + "exists_warm_p90_us": 2006.644, + "exists_engine_med_us": 1839.301, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_medium_mixed", + "threads": 1, + "count": 99047, + "exists": true, + "count_cold_us": 259289.199, + "count_warm_med_us": 263585.041, + "count_warm_p10_us": 252283.056, + "count_warm_p90_us": 278934.206, + "count_engine_med_us": 291324.837, + "exists_cold_us": 2864.733, + "exists_warm_med_us": 1106.107, + "exists_warm_p10_us": 999.16, + "exists_warm_p90_us": 1196.28, + "exists_engine_med_us": 1126.869, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k8_large_mixed", + "threads": 1, + "count": 5001665, + "exists": true, + "count_cold_us": 733782.904, + "count_warm_med_us": 717301.74, + "count_warm_p10_us": 676493.995, + "count_warm_p90_us": 764098.636, + "count_engine_med_us": 687487.765, + "exists_cold_us": 3179.222, + "exists_warm_med_us": 1228.772, + "exists_warm_p10_us": 1149.402, + "exists_warm_p90_us": 1410.354, + "exists_engine_med_us": 1472.383, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_tiny_and", + "threads": 1, + "count": 467, + "exists": true, + "count_cold_us": 161678.105, + "count_warm_med_us": 142113.741, + "count_warm_p10_us": 138068.272, + "count_warm_p90_us": 159330.942, + "count_engine_med_us": 145205.464, + "exists_cold_us": 6489.25, + "exists_warm_med_us": 2075.984, + "exists_warm_p10_us": 1838.617, + "exists_warm_p90_us": 2591.809, + "exists_engine_med_us": 2130.671, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_medium_and", + "threads": 1, + "count": 97561, + "exists": true, + "count_cold_us": 158241.606, + "count_warm_med_us": 159095.187, + "count_warm_p10_us": 152453.355, + "count_warm_p90_us": 179033.291, + "count_engine_med_us": 169152.232, + "exists_cold_us": 4727.457, + "exists_warm_med_us": 1784.759, + "exists_warm_p10_us": 1326.998, + "exists_warm_p90_us": 1926.197, + "exists_engine_med_us": 1979.829, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_large_and", + "threads": 1, + "count": 4998174, + "exists": true, + "count_cold_us": 224923.666, + "count_warm_med_us": 212825.209, + "count_warm_p10_us": 200323.212, + "count_warm_p90_us": 243018.876, + "count_engine_med_us": 222076.112, + "exists_cold_us": 3894.09, + "exists_warm_med_us": 1341.833, + "exists_warm_p10_us": 1261.508, + "exists_warm_p90_us": 1489.43, + "exists_engine_med_us": 1444.638, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_tiny_or", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 2441.139, + "count_warm_med_us": 1041.07, + "count_warm_p10_us": 861.031, + "count_warm_p90_us": 1580.251, + "count_engine_med_us": 932.302, + "exists_cold_us": 3979.77, + "exists_warm_med_us": 1473.901, + "exists_warm_p10_us": 998.348, + "exists_warm_p90_us": 1587.639, + "exists_engine_med_us": 1048.242, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_medium_or", + "threads": 1, + "count": 100002, + "exists": true, + "count_cold_us": 218725.526, + "count_warm_med_us": 225787.854, + "count_warm_p10_us": 217506.411, + "count_warm_p90_us": 239055.304, + "count_engine_med_us": 239839.676, + "exists_cold_us": 4341.183, + "exists_warm_med_us": 1347.261, + "exists_warm_p10_us": 1285.183, + "exists_warm_p90_us": 1574.028, + "exists_engine_med_us": 1366.944, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_large_or", + "threads": 1, + "count": 5051202, + "exists": true, + "count_cold_us": 470453.96, + "count_warm_med_us": 478393.135, + "count_warm_p10_us": 459015.548, + "count_warm_p90_us": 522631.372, + "count_engine_med_us": 542011.279, + "exists_cold_us": 3415.555, + "exists_warm_med_us": 1348.977, + "exists_warm_p10_us": 1297.594, + "exists_warm_p90_us": 1419.292, + "exists_engine_med_us": 1404.311, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_tiny_mixed", + "threads": 1, + "count": 467, + "exists": true, + "count_cold_us": 126345.808, + "count_warm_med_us": 136162.45, + "count_warm_p10_us": 124953.163, + "count_warm_p90_us": 153836.004, + "count_engine_med_us": 132247.891, + "exists_cold_us": 4726.517, + "exists_warm_med_us": 2176.461, + "exists_warm_p10_us": 2072.42, + "exists_warm_p90_us": 2508.502, + "exists_engine_med_us": 2261.205, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_medium_mixed", + "threads": 1, + "count": 100925, + "exists": true, + "count_cold_us": 278162.835, + "count_warm_med_us": 293817.992, + "count_warm_p10_us": 268319.422, + "count_warm_p90_us": 334273.536, + "count_engine_med_us": 298033.857, + "exists_cold_us": 3776.0, + "exists_warm_med_us": 1420.571, + "exists_warm_p10_us": 1337.46, + "exists_warm_p90_us": 1554.073, + "exists_engine_med_us": 1634.848, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k17_large_mixed", + "threads": 1, + "count": 4982809, + "exists": true, + "count_cold_us": 1245376.339, + "count_warm_med_us": 1382934.443, + "count_warm_p10_us": 1296478.545, + "count_warm_p90_us": 1458620.134, + "count_engine_med_us": 1401588.613, + "exists_cold_us": 5825.652, + "exists_warm_med_us": 2389.558, + "exists_warm_p10_us": 2230.868, + "exists_warm_p90_us": 2581.573, + "exists_engine_med_us": 2381.286, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_tiny_and", + "threads": 1, + "count": 472, + "exists": true, + "count_cold_us": 185195.037, + "count_warm_med_us": 147036.367, + "count_warm_p10_us": 137224.897, + "count_warm_p90_us": 177397.347, + "count_engine_med_us": 137556.344, + "exists_cold_us": 4522.701, + "exists_warm_med_us": 1684.933, + "exists_warm_p10_us": 1613.6, + "exists_warm_p90_us": 1955.555, + "exists_engine_med_us": 2038.064, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_medium_and", + "threads": 1, + "count": 99057, + "exists": true, + "count_cold_us": 189360.304, + "count_warm_med_us": 188568.633, + "count_warm_p10_us": 178043.045, + "count_warm_p90_us": 207406.084, + "count_engine_med_us": 187580.207, + "exists_cold_us": 4010.641, + "exists_warm_med_us": 1508.858, + "exists_warm_p10_us": 1401.005, + "exists_warm_p90_us": 1594.974, + "exists_engine_med_us": 1675.06, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_large_and", + "threads": 1, + "count": 5020727, + "exists": true, + "count_cold_us": 257003.716, + "count_warm_med_us": 248329.805, + "count_warm_p10_us": 240150.937, + "count_warm_p90_us": 273724.578, + "count_engine_med_us": 243513.328, + "exists_cold_us": 4200.436, + "exists_warm_med_us": 1504.527, + "exists_warm_p10_us": 1427.48, + "exists_warm_p90_us": 1630.253, + "exists_engine_med_us": 1775.404, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_tiny_or", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 2913.745, + "count_warm_med_us": 1002.399, + "count_warm_p10_us": 961.082, + "count_warm_p90_us": 1046.008, + "count_engine_med_us": 1046.244, + "exists_cold_us": 2984.651, + "exists_warm_med_us": 1129.842, + "exists_warm_p10_us": 1074.763, + "exists_warm_p90_us": 1424.99, + "exists_engine_med_us": 1119.056, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_medium_or", + "threads": 1, + "count": 99996, + "exists": true, + "count_cold_us": 255567.173, + "count_warm_med_us": 227149.938, + "count_warm_p10_us": 214776.252, + "count_warm_p90_us": 254285.605, + "count_engine_med_us": 239568.307, + "exists_cold_us": 4061.559, + "exists_warm_med_us": 1463.55, + "exists_warm_p10_us": 1368.286, + "exists_warm_p90_us": 1542.053, + "exists_engine_med_us": 1592.923, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_large_or", + "threads": 1, + "count": 4956413, + "exists": true, + "count_cold_us": 597798.27, + "count_warm_med_us": 572694.67, + "count_warm_p10_us": 542379.5, + "count_warm_p90_us": 619256.523, + "count_engine_med_us": 558926.018, + "exists_cold_us": 4702.7, + "exists_warm_med_us": 1600.601, + "exists_warm_p10_us": 1467.353, + "exists_warm_p90_us": 1804.452, + "exists_engine_med_us": 1799.861, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_tiny_mixed", + "threads": 1, + "count": 470, + "exists": true, + "count_cold_us": 617623.369, + "count_warm_med_us": 657116.085, + "count_warm_p10_us": 580074.094, + "count_warm_p90_us": 864066.025, + "count_engine_med_us": 567573.711, + "exists_cold_us": 4719.75, + "exists_warm_med_us": 1916.48, + "exists_warm_p10_us": 1847.831, + "exists_warm_p90_us": 2013.212, + "exists_engine_med_us": 2046.632, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_medium_mixed", + "threads": 1, + "count": 99512, + "exists": true, + "count_cold_us": 982435.042, + "count_warm_med_us": 932183.176, + "count_warm_p10_us": 813157.076, + "count_warm_p90_us": 1032239.762, + "count_engine_med_us": 981755.737, + "exists_cold_us": 4763.673, + "exists_warm_med_us": 1784.214, + "exists_warm_p10_us": 1681.136, + "exists_warm_p90_us": 1973.465, + "exists_engine_med_us": 1940.677, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k24_large_mixed", + "threads": 1, + "count": 5004671, + "exists": true, + "count_cold_us": 2214063.598, + "count_warm_med_us": 2090124.495, + "count_warm_p10_us": 1915360.156, + "count_warm_p90_us": 2191581.777, + "count_engine_med_us": 1985161.07, + "exists_cold_us": 4817.631, + "exists_warm_med_us": 2006.542, + "exists_warm_p10_us": 1922.813, + "exists_warm_p90_us": 2198.233, + "exists_engine_med_us": 2103.571, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_one_everything", + "threads": 1, + "count": 100002, + "exists": true, + "count_cold_us": 15811.984, + "count_warm_med_us": 14886.763, + "count_warm_p10_us": 14636.467, + "count_warm_p90_us": 16135.664, + "count_engine_med_us": 24485.818, + "exists_cold_us": 2685.022, + "exists_warm_med_us": 972.847, + "exists_warm_p10_us": 825.463, + "exists_warm_p90_us": 1045.69, + "exists_engine_med_us": 814.382, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_one_nothing", + "threads": 1, + "count": 10002, + "exists": true, + "count_cold_us": 26575.487, + "count_warm_med_us": 25638.508, + "count_warm_p10_us": 25230.058, + "count_warm_p90_us": 31352.376, + "count_engine_med_us": 29261.356, + "exists_cold_us": 2552.21, + "exists_warm_med_us": 1090.365, + "exists_warm_p10_us": 1037.793, + "exists_warm_p90_us": 1149.761, + "exists_engine_med_us": 1089.097, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_or_one_everything", + "threads": 1, + "count": 10000000, + "exists": true, + "count_cold_us": 2209.321, + "count_warm_med_us": 847.404, + "count_warm_p10_us": 799.116, + "count_warm_p90_us": 922.304, + "count_engine_med_us": null, + "exists_cold_us": 2233.189, + "exists_warm_med_us": 922.901, + "exists_warm_p10_us": 873.196, + "exists_warm_p90_us": 1000.03, + "exists_engine_med_us": 946.774, + "count_stats_folded": true, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_or_one_nothing", + "threads": 1, + "count": 10000, + "exists": true, + "count_cold_us": 30291.237, + "count_warm_med_us": 22805.111, + "count_warm_p10_us": 20120.688, + "count_warm_p90_us": 28261.278, + "count_engine_med_us": 23057.298, + "exists_cold_us": 1684.895, + "exists_warm_med_us": 713.417, + "exists_warm_p10_us": 649.133, + "exists_warm_p90_us": 824.781, + "exists_engine_med_us": 774.878, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_16_nonselective", + "threads": 1, + "count": 8271472, + "exists": true, + "count_cold_us": 227110.399, + "count_warm_med_us": 217536.641, + "count_warm_p10_us": 203810.381, + "count_warm_p90_us": 263775.478, + "count_engine_med_us": 234985.884, + "exists_cold_us": 3606.988, + "exists_warm_med_us": 1441.151, + "exists_warm_p10_us": 1229.212, + "exists_warm_p90_us": 1933.781, + "exists_engine_med_us": 1426.411, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_16_collapse_one", + "threads": 1, + "count": 472, + "exists": true, + "count_cold_us": 67674.311, + "count_warm_med_us": 64304.967, + "count_warm_p10_us": 60969.301, + "count_warm_p90_us": 71367.624, + "count_engine_med_us": 64808.0, + "exists_cold_us": 3577.563, + "exists_warm_med_us": 1413.118, + "exists_warm_p10_us": 1365.213, + "exists_warm_p90_us": 1566.712, + "exists_engine_med_us": 1538.06, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_correlated_2", + "threads": 1, + "count": 5000004, + "exists": true, + "count_cold_us": 27470.857, + "count_warm_med_us": 28390.526, + "count_warm_p10_us": 27325.025, + "count_warm_p90_us": 32607.226, + "count_engine_med_us": 30240.064, + "exists_cold_us": 1755.252, + "exists_warm_med_us": 667.976, + "exists_warm_p10_us": 631.758, + "exists_warm_p90_us": 783.548, + "exists_engine_med_us": 724.291, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_correlated_5", + "threads": 1, + "count": 4900007, + "exists": true, + "count_cold_us": 30566.568, + "count_warm_med_us": 31018.661, + "count_warm_p10_us": 28904.343, + "count_warm_p90_us": 37355.472, + "count_engine_med_us": 32148.319, + "exists_cold_us": 2982.513, + "exists_warm_med_us": 782.315, + "exists_warm_p10_us": 698.56, + "exists_warm_p90_us": 1215.937, + "exists_engine_med_us": 860.639, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_contradictory_2", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 1831.854, + "count_warm_med_us": 727.764, + "count_warm_p10_us": 676.574, + "count_warm_p90_us": 817.386, + "count_engine_med_us": 683.205, + "exists_cold_us": 1889.685, + "exists_warm_med_us": 856.112, + "exists_warm_p10_us": 818.926, + "exists_warm_p90_us": 932.513, + "exists_engine_med_us": 823.408, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "adv_contradictory_17", + "threads": 1, + "count": 0, + "exists": false, + "count_cold_us": 3168.312, + "count_warm_med_us": 710.952, + "count_warm_p10_us": 650.282, + "count_warm_p90_us": 1139.29, + "count_engine_med_us": 789.93, + "exists_cold_us": 2443.762, + "exists_warm_med_us": 821.251, + "exists_warm_p10_us": 753.121, + "exists_warm_p90_us": 1070.011, + "exists_engine_med_us": 834.81, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "null_and", + "threads": 1, + "count": 999196, + "exists": true, + "count_cold_us": 35657.177, + "count_warm_med_us": 36063.316, + "count_warm_p10_us": 30961.02, + "count_warm_p90_us": 45946.56, + "count_engine_med_us": 36621.35, + "exists_cold_us": 2789.272, + "exists_warm_med_us": 1035.524, + "exists_warm_p10_us": 1000.516, + "exists_warm_p90_us": 1102.593, + "exists_engine_med_us": 734.41, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "null_not", + "threads": 1, + "count": 4499990, + "exists": true, + "count_cold_us": 21289.359, + "count_warm_med_us": 20619.505, + "count_warm_p10_us": 19062.566, + "count_warm_p90_us": 27337.407, + "count_engine_med_us": 20156.17, + "exists_cold_us": 1931.649, + "exists_warm_med_us": 775.507, + "exists_warm_p10_us": 671.172, + "exists_warm_p90_us": 1011.106, + "exists_engine_med_us": 918.7, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "null_or", + "threads": 1, + "count": 1900011, + "exists": true, + "count_cold_us": 91765.326, + "count_warm_med_us": 99873.386, + "count_warm_p10_us": 92502.283, + "count_warm_p90_us": 125110.66, + "count_engine_med_us": 132234.732, + "exists_cold_us": 2787.508, + "exists_warm_med_us": 1117.043, + "exists_warm_p10_us": 1064.47, + "exists_warm_p90_us": 1181.74, + "exists_engine_med_us": 1165.213, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "null_not_and", + "threads": 1, + "count": 8500703, + "exists": true, + "count_cold_us": 268779.912, + "count_warm_med_us": 268063.025, + "count_warm_p10_us": 253638.211, + "count_warm_p90_us": 292741.012, + "count_engine_med_us": 316992.886, + "exists_cold_us": 2140.296, + "exists_warm_med_us": 787.313, + "exists_warm_p10_us": 763.485, + "exists_warm_p90_us": 855.888, + "exists_engine_med_us": 883.385, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "null_and_5", + "threads": 1, + "count": 2674492, + "exists": true, + "count_cold_us": 60103.157, + "count_warm_med_us": 70334.551, + "count_warm_p10_us": 59095.509, + "count_warm_p90_us": 88203.946, + "count_engine_med_us": 73451.034, + "exists_cold_us": 2260.056, + "exists_warm_med_us": 814.59, + "exists_warm_p10_us": 788.315, + "exists_warm_p90_us": 887.763, + "exists_engine_med_us": 947.001, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 139.161 + }, + { + "id": "k1_tiny_single", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 1871.647, + "count_warm_med_us": 749.223, + "count_warm_p10_us": 678.621, + "count_warm_p90_us": 873.985, + "count_engine_med_us": 608.702, + "exists_cold_us": 1680.336, + "exists_warm_med_us": 740.263, + "exists_warm_p10_us": 646.151, + "exists_warm_p90_us": 856.733, + "exists_engine_med_us": 851.195, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k1_medium_single", + "threads": 4, + "count": 100002, + "exists": true, + "count_cold_us": 6434.684, + "count_warm_med_us": 4115.561, + "count_warm_p10_us": 3877.721, + "count_warm_p90_us": 5311.699, + "count_engine_med_us": 4174.612, + "exists_cold_us": 1729.577, + "exists_warm_med_us": 878.051, + "exists_warm_p10_us": 793.444, + "exists_warm_p90_us": 1077.537, + "exists_engine_med_us": 963.92, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k1_large_single", + "threads": 4, + "count": 5000008, + "exists": true, + "count_cold_us": 5776.252, + "count_warm_med_us": 4483.299, + "count_warm_p10_us": 4219.737, + "count_warm_p90_us": 4782.79, + "count_engine_med_us": 4355.837, + "exists_cold_us": 1907.953, + "exists_warm_med_us": 913.845, + "exists_warm_p10_us": 820.975, + "exists_warm_p90_us": 961.249, + "exists_engine_med_us": 957.333, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_tiny_and", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 15528.342, + "count_warm_med_us": 10953.751, + "count_warm_p10_us": 10139.613, + "count_warm_p90_us": 11809.298, + "count_engine_med_us": 10635.067, + "exists_cold_us": 11377.072, + "exists_warm_med_us": 10196.956, + "exists_warm_p10_us": 9703.267, + "exists_warm_p90_us": 11510.52, + "exists_engine_med_us": 10711.576, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_medium_and", + "threads": 4, + "count": 101386, + "exists": true, + "count_cold_us": 11744.137, + "count_warm_med_us": 9979.637, + "count_warm_p10_us": 9089.253, + "count_warm_p90_us": 11851.182, + "count_engine_med_us": 10728.556, + "exists_cold_us": 2050.705, + "exists_warm_med_us": 1034.455, + "exists_warm_p10_us": 964.839, + "exists_warm_p90_us": 1126.23, + "exists_engine_med_us": 1122.253, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_large_and", + "threads": 4, + "count": 4996187, + "exists": true, + "count_cold_us": 14624.606, + "count_warm_med_us": 12053.086, + "count_warm_p10_us": 11507.726, + "count_warm_p90_us": 13913.602, + "count_engine_med_us": 12181.618, + "exists_cold_us": 1895.561, + "exists_warm_med_us": 1018.205, + "exists_warm_p10_us": 965.207, + "exists_warm_p90_us": 1089.137, + "exists_engine_med_us": 1195.977, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_tiny_or", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 1611.062, + "count_warm_med_us": 648.233, + "count_warm_p10_us": 607.604, + "count_warm_p90_us": 687.717, + "count_engine_med_us": 678.099, + "exists_cold_us": 1741.133, + "exists_warm_med_us": 750.087, + "exists_warm_p10_us": 691.034, + "exists_warm_p90_us": 861.979, + "exists_engine_med_us": 785.754, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_medium_or", + "threads": 4, + "count": 100001, + "exists": true, + "count_cold_us": 21176.712, + "count_warm_med_us": 18505.289, + "count_warm_p10_us": 17818.317, + "count_warm_p90_us": 20038.204, + "count_engine_med_us": 18795.085, + "exists_cold_us": 2297.622, + "exists_warm_med_us": 1011.684, + "exists_warm_p10_us": 958.979, + "exists_warm_p90_us": 1105.431, + "exists_engine_med_us": 1167.361, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_large_or", + "threads": 4, + "count": 5006214, + "exists": true, + "count_cold_us": 56874.199, + "count_warm_med_us": 50145.192, + "count_warm_p10_us": 48939.839, + "count_warm_p90_us": 53301.9, + "count_engine_med_us": 54685.31, + "exists_cold_us": 2441.51, + "exists_warm_med_us": 1035.585, + "exists_warm_p10_us": 925.192, + "exists_warm_p90_us": 1156.646, + "exists_engine_med_us": 1064.823, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_tiny_mixed", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 12750.734, + "count_warm_med_us": 10858.104, + "count_warm_p10_us": 10216.734, + "count_warm_p90_us": 12540.32, + "count_engine_med_us": 10898.165, + "exists_cold_us": 13297.504, + "exists_warm_med_us": 11380.755, + "exists_warm_p10_us": 9960.307, + "exists_warm_p90_us": 12350.923, + "exists_engine_med_us": 12286.24, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_medium_mixed", + "threads": 4, + "count": 98184, + "exists": true, + "count_cold_us": 15832.473, + "count_warm_med_us": 13830.31, + "count_warm_p10_us": 13214.573, + "count_warm_p90_us": 14880.945, + "count_engine_med_us": 12542.499, + "exists_cold_us": 1980.489, + "exists_warm_med_us": 976.191, + "exists_warm_p10_us": 909.123, + "exists_warm_p90_us": 1121.732, + "exists_engine_med_us": 1084.871, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k3_large_mixed", + "threads": 4, + "count": 4994319, + "exists": true, + "count_cold_us": 38519.307, + "count_warm_med_us": 37466.714, + "count_warm_p10_us": 36130.718, + "count_warm_p90_us": 41631.505, + "count_engine_med_us": 40296.914, + "exists_cold_us": 2164.565, + "exists_warm_med_us": 1052.128, + "exists_warm_p10_us": 979.32, + "exists_warm_p90_us": 1187.505, + "exists_engine_med_us": 1219.486, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_tiny_and", + "threads": 4, + "count": 470, + "exists": true, + "count_cold_us": 20922.166, + "count_warm_med_us": 16602.223, + "count_warm_p10_us": 15278.63, + "count_warm_p90_us": 17679.785, + "count_engine_med_us": 19904.764, + "exists_cold_us": 4028.688, + "exists_warm_med_us": 1921.746, + "exists_warm_p10_us": 1721.622, + "exists_warm_p90_us": 2180.01, + "exists_engine_med_us": 1959.764, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_medium_and", + "threads": 4, + "count": 100924, + "exists": true, + "count_cold_us": 26853.624, + "count_warm_med_us": 26988.835, + "count_warm_p10_us": 24780.696, + "count_warm_p90_us": 33097.631, + "count_engine_med_us": 24283.361, + "exists_cold_us": 2554.211, + "exists_warm_med_us": 1249.654, + "exists_warm_p10_us": 1203.72, + "exists_warm_p90_us": 1349.364, + "exists_engine_med_us": 1425.402, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_large_and", + "threads": 4, + "count": 4981051, + "exists": true, + "count_cold_us": 31066.578, + "count_warm_med_us": 30166.363, + "count_warm_p10_us": 27901.775, + "count_warm_p90_us": 32135.999, + "count_engine_med_us": 29397.203, + "exists_cold_us": 5246.5, + "exists_warm_med_us": 1241.485, + "exists_warm_p10_us": 1156.362, + "exists_warm_p90_us": 1304.74, + "exists_engine_med_us": 1292.917, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_tiny_or", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 1965.874, + "count_warm_med_us": 798.097, + "count_warm_p10_us": 739.319, + "count_warm_p90_us": 842.183, + "count_engine_med_us": 851.762, + "exists_cold_us": 1904.567, + "exists_warm_med_us": 1022.548, + "exists_warm_p10_us": 887.954, + "exists_warm_p90_us": 1334.444, + "exists_engine_med_us": 1231.076, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_medium_or", + "threads": 4, + "count": 99996, + "exists": true, + "count_cold_us": 52176.701, + "count_warm_med_us": 51723.336, + "count_warm_p10_us": 45960.011, + "count_warm_p90_us": 58742.962, + "count_engine_med_us": 46572.988, + "exists_cold_us": 3721.637, + "exists_warm_med_us": 1226.379, + "exists_warm_p10_us": 1157.127, + "exists_warm_p90_us": 1306.21, + "exists_engine_med_us": 1403.546, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_large_or", + "threads": 4, + "count": 4988280, + "exists": true, + "count_cold_us": 77316.18, + "count_warm_med_us": 84262.814, + "count_warm_p10_us": 78170.756, + "count_warm_p90_us": 93063.477, + "count_engine_med_us": 89431.826, + "exists_cold_us": 3065.98, + "exists_warm_med_us": 1399.589, + "exists_warm_p10_us": 1296.596, + "exists_warm_p90_us": 1530.809, + "exists_engine_med_us": 1558.938, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_tiny_mixed", + "threads": 4, + "count": 935, + "exists": true, + "count_cold_us": 44939.493, + "count_warm_med_us": 43857.059, + "count_warm_p10_us": 38495.913, + "count_warm_p90_us": 48788.968, + "count_engine_med_us": 43639.95, + "exists_cold_us": 12641.156, + "exists_warm_med_us": 2757.178, + "exists_warm_p10_us": 2507.268, + "exists_warm_p90_us": 3815.503, + "exists_engine_med_us": 3252.194, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_medium_mixed", + "threads": 4, + "count": 99047, + "exists": true, + "count_cold_us": 74151.891, + "count_warm_med_us": 78663.745, + "count_warm_p10_us": 72928.343, + "count_warm_p90_us": 84975.83, + "count_engine_med_us": 87577.482, + "exists_cold_us": 3970.425, + "exists_warm_med_us": 1337.456, + "exists_warm_p10_us": 1244.012, + "exists_warm_p90_us": 1622.865, + "exists_engine_med_us": 1461.696, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k8_large_mixed", + "threads": 4, + "count": 5001665, + "exists": true, + "count_cold_us": 186987.292, + "count_warm_med_us": 187067.914, + "count_warm_p10_us": 179365.609, + "count_warm_p90_us": 203567.056, + "count_engine_med_us": 192926.021, + "exists_cold_us": 2976.847, + "exists_warm_med_us": 1470.576, + "exists_warm_p10_us": 1337.175, + "exists_warm_p90_us": 1620.904, + "exists_engine_med_us": 1572.57, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_tiny_and", + "threads": 4, + "count": 467, + "exists": true, + "count_cold_us": 46080.731, + "count_warm_med_us": 41400.91, + "count_warm_p10_us": 37611.117, + "count_warm_p90_us": 44760.749, + "count_engine_med_us": 37266.567, + "exists_cold_us": 4689.946, + "exists_warm_med_us": 2457.756, + "exists_warm_p10_us": 2359.79, + "exists_warm_p90_us": 2885.134, + "exists_engine_med_us": 2901.454, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_medium_and", + "threads": 4, + "count": 97561, + "exists": true, + "count_cold_us": 46896.638, + "count_warm_med_us": 43895.281, + "count_warm_p10_us": 41964.84, + "count_warm_p90_us": 47762.963, + "count_engine_med_us": 45147.555, + "exists_cold_us": 3833.062, + "exists_warm_med_us": 1537.961, + "exists_warm_p10_us": 1459.985, + "exists_warm_p90_us": 1911.187, + "exists_engine_med_us": 1864.88, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_large_and", + "threads": 4, + "count": 4998174, + "exists": true, + "count_cold_us": 66718.405, + "count_warm_med_us": 57312.287, + "count_warm_p10_us": 54038.012, + "count_warm_p90_us": 65407.923, + "count_engine_med_us": 55350.143, + "exists_cold_us": 3548.841, + "exists_warm_med_us": 1651.631, + "exists_warm_p10_us": 1558.949, + "exists_warm_p90_us": 1980.82, + "exists_engine_med_us": 1882.948, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_tiny_or", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 3615.768, + "count_warm_med_us": 1239.057, + "count_warm_p10_us": 969.255, + "count_warm_p90_us": 1518.573, + "count_engine_med_us": 1011.02, + "exists_cold_us": 6553.592, + "exists_warm_med_us": 1299.219, + "exists_warm_p10_us": 1053.059, + "exists_warm_p90_us": 1496.654, + "exists_engine_med_us": 1162.551, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_medium_or", + "threads": 4, + "count": 100002, + "exists": true, + "count_cold_us": 85288.456, + "count_warm_med_us": 70731.677, + "count_warm_p10_us": 60546.573, + "count_warm_p90_us": 77508.222, + "count_engine_med_us": 71276.998, + "exists_cold_us": 3576.821, + "exists_warm_med_us": 1534.538, + "exists_warm_p10_us": 1477.204, + "exists_warm_p90_us": 1702.162, + "exists_engine_med_us": 1700.985, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_large_or", + "threads": 4, + "count": 5051202, + "exists": true, + "count_cold_us": 134673.595, + "count_warm_med_us": 132258.515, + "count_warm_p10_us": 121620.182, + "count_warm_p90_us": 144933.423, + "count_engine_med_us": 128086.91, + "exists_cold_us": 4738.333, + "exists_warm_med_us": 1600.48, + "exists_warm_p10_us": 1472.364, + "exists_warm_p90_us": 1886.283, + "exists_engine_med_us": 1739.859, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_tiny_mixed", + "threads": 4, + "count": 467, + "exists": true, + "count_cold_us": 46142.743, + "count_warm_med_us": 37984.382, + "count_warm_p10_us": 36448.702, + "count_warm_p90_us": 42364.04, + "count_engine_med_us": 42628.101, + "exists_cold_us": 5223.436, + "exists_warm_med_us": 3366.925, + "exists_warm_p10_us": 2872.097, + "exists_warm_p90_us": 3782.413, + "exists_engine_med_us": 3183.765, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_medium_mixed", + "threads": 4, + "count": 100925, + "exists": true, + "count_cold_us": 102069.82, + "count_warm_med_us": 82346.786, + "count_warm_p10_us": 76204.43, + "count_warm_p90_us": 96357.157, + "count_engine_med_us": 85098.49, + "exists_cold_us": 4511.697, + "exists_warm_med_us": 1813.522, + "exists_warm_p10_us": 1659.229, + "exists_warm_p90_us": 2054.266, + "exists_engine_med_us": 1811.839, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k17_large_mixed", + "threads": 4, + "count": 4982809, + "exists": true, + "count_cold_us": 386468.494, + "count_warm_med_us": 363912.099, + "count_warm_p10_us": 346427.768, + "count_warm_p90_us": 395204.582, + "count_engine_med_us": 367205.728, + "exists_cold_us": 4495.797, + "exists_warm_med_us": 2557.799, + "exists_warm_p10_us": 2317.096, + "exists_warm_p90_us": 2794.218, + "exists_engine_med_us": 2730.663, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_tiny_and", + "threads": 4, + "count": 472, + "exists": true, + "count_cold_us": 44860.351, + "count_warm_med_us": 42430.727, + "count_warm_p10_us": 37389.26, + "count_warm_p90_us": 52364.82, + "count_engine_med_us": 53442.469, + "exists_cold_us": 5692.541, + "exists_warm_med_us": 2717.197, + "exists_warm_p10_us": 2406.995, + "exists_warm_p90_us": 3022.516, + "exists_engine_med_us": 3438.811, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_medium_and", + "threads": 4, + "count": 99057, + "exists": true, + "count_cold_us": 88182.938, + "count_warm_med_us": 55181.249, + "count_warm_p10_us": 49571.319, + "count_warm_p90_us": 61915.714, + "count_engine_med_us": 65205.926, + "exists_cold_us": 6411.247, + "exists_warm_med_us": 2579.024, + "exists_warm_p10_us": 2428.74, + "exists_warm_p90_us": 2775.042, + "exists_engine_med_us": 2760.369, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_large_and", + "threads": 4, + "count": 5020727, + "exists": true, + "count_cold_us": 77131.727, + "count_warm_med_us": 68975.016, + "count_warm_p10_us": 62146.114, + "count_warm_p90_us": 76479.141, + "count_engine_med_us": 69978.948, + "exists_cold_us": 7802.982, + "exists_warm_med_us": 2407.785, + "exists_warm_p10_us": 2222.749, + "exists_warm_p90_us": 2882.511, + "exists_engine_med_us": 2813.396, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_tiny_or", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 4190.414, + "count_warm_med_us": 1637.844, + "count_warm_p10_us": 1510.91, + "count_warm_p90_us": 1732.511, + "count_engine_med_us": 1171.044, + "exists_cold_us": 4118.304, + "exists_warm_med_us": 1724.177, + "exists_warm_p10_us": 1652.152, + "exists_warm_p90_us": 1876.765, + "exists_engine_med_us": 1826.982, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_medium_or", + "threads": 4, + "count": 99996, + "exists": true, + "count_cold_us": 80694.631, + "count_warm_med_us": 88748.34, + "count_warm_p10_us": 68572.613, + "count_warm_p90_us": 110115.158, + "count_engine_med_us": 104740.6, + "exists_cold_us": 5958.114, + "exists_warm_med_us": 3027.837, + "exists_warm_p10_us": 2210.423, + "exists_warm_p90_us": 3368.555, + "exists_engine_med_us": 3568.398, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_large_or", + "threads": 4, + "count": 4956413, + "exists": true, + "count_cold_us": 228291.138, + "count_warm_med_us": 215605.73, + "count_warm_p10_us": 197897.459, + "count_warm_p90_us": 253296.758, + "count_engine_med_us": 212426.936, + "exists_cold_us": 7624.735, + "exists_warm_med_us": 3283.849, + "exists_warm_p10_us": 3100.935, + "exists_warm_p90_us": 3719.634, + "exists_engine_med_us": 4198.876, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_tiny_mixed", + "threads": 4, + "count": 470, + "exists": true, + "count_cold_us": 311491.482, + "count_warm_med_us": 183991.036, + "count_warm_p10_us": 170701.073, + "count_warm_p90_us": 263677.072, + "count_engine_med_us": 179896.046, + "exists_cold_us": 11045.631, + "exists_warm_med_us": 7625.615, + "exists_warm_p10_us": 7096.427, + "exists_warm_p90_us": 8584.633, + "exists_engine_med_us": 7770.666, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_medium_mixed", + "threads": 4, + "count": 99512, + "exists": true, + "count_cold_us": 280559.084, + "count_warm_med_us": 268751.004, + "count_warm_p10_us": 257072.619, + "count_warm_p90_us": 294069.621, + "count_engine_med_us": 291474.061, + "exists_cold_us": 4823.269, + "exists_warm_med_us": 2620.977, + "exists_warm_p10_us": 2231.001, + "exists_warm_p90_us": 2968.209, + "exists_engine_med_us": 2362.137, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "k24_large_mixed", + "threads": 4, + "count": 5004671, + "exists": true, + "count_cold_us": 524591.464, + "count_warm_med_us": 556772.81, + "count_warm_p10_us": 515385.017, + "count_warm_p90_us": 590382.956, + "count_engine_med_us": 516854.479, + "exists_cold_us": 5390.823, + "exists_warm_med_us": 2286.858, + "exists_warm_p10_us": 2102.162, + "exists_warm_p90_us": 2884.733, + "exists_engine_med_us": 3014.98, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_one_everything", + "threads": 4, + "count": 100002, + "exists": true, + "count_cold_us": 15176.351, + "count_warm_med_us": 3725.42, + "count_warm_p10_us": 3511.534, + "count_warm_p90_us": 6466.661, + "count_engine_med_us": 4034.868, + "exists_cold_us": 2410.407, + "exists_warm_med_us": 901.794, + "exists_warm_p10_us": 849.491, + "exists_warm_p90_us": 1008.182, + "exists_engine_med_us": 990.213, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_one_nothing", + "threads": 4, + "count": 10002, + "exists": true, + "count_cold_us": 9038.928, + "count_warm_med_us": 7062.048, + "count_warm_p10_us": 6572.049, + "count_warm_p90_us": 7702.46, + "count_engine_med_us": 7261.472, + "exists_cold_us": 1954.767, + "exists_warm_med_us": 1009.68, + "exists_warm_p10_us": 903.306, + "exists_warm_p90_us": 1102.241, + "exists_engine_med_us": 1020.187, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_or_one_everything", + "threads": 4, + "count": 10000000, + "exists": true, + "count_cold_us": 1629.553, + "count_warm_med_us": 633.246, + "count_warm_p10_us": 580.365, + "count_warm_p90_us": 685.163, + "count_engine_med_us": null, + "exists_cold_us": 1640.778, + "exists_warm_med_us": 771.384, + "exists_warm_p10_us": 732.822, + "exists_warm_p90_us": 828.935, + "exists_engine_med_us": 911.268, + "count_stats_folded": true, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_or_one_nothing", + "threads": 4, + "count": 10000, + "exists": true, + "count_cold_us": 7254.88, + "count_warm_med_us": 5286.979, + "count_warm_p10_us": 4705.961, + "count_warm_p90_us": 6077.722, + "count_engine_med_us": 5569.257, + "exists_cold_us": 1851.471, + "exists_warm_med_us": 916.422, + "exists_warm_p10_us": 868.081, + "exists_warm_p90_us": 992.307, + "exists_engine_med_us": 1063.324, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_16_nonselective", + "threads": 4, + "count": 8271472, + "exists": true, + "count_cold_us": 59025.753, + "count_warm_med_us": 57095.387, + "count_warm_p10_us": 52851.272, + "count_warm_p90_us": 69444.507, + "count_engine_med_us": 59265.863, + "exists_cold_us": 3625.008, + "exists_warm_med_us": 1649.145, + "exists_warm_p10_us": 1525.951, + "exists_warm_p90_us": 1932.595, + "exists_engine_med_us": 1759.583, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_16_collapse_one", + "threads": 4, + "count": 472, + "exists": true, + "count_cold_us": 21144.68, + "count_warm_med_us": 18712.334, + "count_warm_p10_us": 17691.2, + "count_warm_p90_us": 21910.028, + "count_engine_med_us": 19949.109, + "exists_cold_us": 5055.78, + "exists_warm_med_us": 2643.064, + "exists_warm_p10_us": 2473.053, + "exists_warm_p90_us": 2803.595, + "exists_engine_med_us": 2925.082, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_correlated_2", + "threads": 4, + "count": 5000004, + "exists": true, + "count_cold_us": 10956.248, + "count_warm_med_us": 7181.093, + "count_warm_p10_us": 6705.352, + "count_warm_p90_us": 8425.329, + "count_engine_med_us": 6992.324, + "exists_cold_us": 1765.145, + "exists_warm_med_us": 920.959, + "exists_warm_p10_us": 822.843, + "exists_warm_p90_us": 1029.708, + "exists_engine_med_us": 1059.528, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_correlated_5", + "threads": 4, + "count": 4900007, + "exists": true, + "count_cold_us": 9535.014, + "count_warm_med_us": 6878.649, + "count_warm_p10_us": 6244.281, + "count_warm_p90_us": 8467.805, + "count_engine_med_us": 6917.489, + "exists_cold_us": 1933.827, + "exists_warm_med_us": 949.248, + "exists_warm_p10_us": 848.192, + "exists_warm_p90_us": 1042.185, + "exists_engine_med_us": 1051.395, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_contradictory_2", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 1436.248, + "count_warm_med_us": 656.882, + "count_warm_p10_us": 536.658, + "count_warm_p90_us": 823.092, + "count_engine_med_us": 676.598, + "exists_cold_us": 1816.518, + "exists_warm_med_us": 947.912, + "exists_warm_p10_us": 762.45, + "exists_warm_p90_us": 1025.736, + "exists_engine_med_us": 757.721, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "adv_contradictory_17", + "threads": 4, + "count": 0, + "exists": false, + "count_cold_us": 2477.712, + "count_warm_med_us": 790.048, + "count_warm_p10_us": 726.603, + "count_warm_p90_us": 927.14, + "count_engine_med_us": 882.155, + "exists_cold_us": 2475.481, + "exists_warm_med_us": 949.547, + "exists_warm_p10_us": 874.23, + "exists_warm_p90_us": 1082.403, + "exists_engine_med_us": 1007.687, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "null_and", + "threads": 4, + "count": 999196, + "exists": true, + "count_cold_us": 10667.413, + "count_warm_med_us": 8346.251, + "count_warm_p10_us": 7985.069, + "count_warm_p90_us": 9333.508, + "count_engine_med_us": 8109.684, + "exists_cold_us": 2396.618, + "exists_warm_med_us": 961.518, + "exists_warm_p10_us": 883.122, + "exists_warm_p90_us": 1171.194, + "exists_engine_med_us": 1039.501, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "null_not", + "threads": 4, + "count": 4499990, + "exists": true, + "count_cold_us": 6682.983, + "count_warm_med_us": 5210.289, + "count_warm_p10_us": 4729.813, + "count_warm_p90_us": 5772.391, + "count_engine_med_us": 5399.063, + "exists_cold_us": 2232.762, + "exists_warm_med_us": 1018.497, + "exists_warm_p10_us": 897.245, + "exists_warm_p90_us": 1078.882, + "exists_engine_med_us": 1009.994, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "null_or", + "threads": 4, + "count": 1900011, + "exists": true, + "count_cold_us": 27056.836, + "count_warm_med_us": 26963.58, + "count_warm_p10_us": 25184.204, + "count_warm_p90_us": 29545.113, + "count_engine_med_us": 27898.874, + "exists_cold_us": 2313.22, + "exists_warm_med_us": 1347.176, + "exists_warm_p10_us": 1012.047, + "exists_warm_p90_us": 1676.492, + "exists_engine_med_us": 1075.276, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "null_not_and", + "threads": 4, + "count": 8500703, + "exists": true, + "count_cold_us": 79255.859, + "count_warm_med_us": 74116.916, + "count_warm_p10_us": 67114.128, + "count_warm_p90_us": 82435.064, + "count_engine_med_us": 74124.0, + "exists_cold_us": 2337.567, + "exists_warm_med_us": 1188.54, + "exists_warm_p10_us": 1019.509, + "exists_warm_p90_us": 1511.73, + "exists_engine_med_us": 1406.812, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + }, + { + "id": "null_and_5", + "threads": 4, + "count": 2674492, + "exists": true, + "count_cold_us": 21277.003, + "count_warm_med_us": 17936.419, + "count_warm_p10_us": 17015.846, + "count_warm_p90_us": 19324.412, + "count_engine_med_us": 17825.636, + "exists_cold_us": 2237.576, + "exists_warm_med_us": 1060.461, + "exists_warm_p10_us": 978.708, + "exists_warm_p90_us": 1140.16, + "exists_engine_med_us": 1192.2, + "count_stats_folded": false, + "exists_stats_folded": false, + "trivial_query_wall_us": 241.87 + } + ] +} \ No newline at end of file From 16d887e83976fbb7d7f41b399d0ea235b1d0b129 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 21:42:51 +0000 Subject: [PATCH 12/23] D-GLOBAL-WHERE P2: engineering-parity matrix (literature-first) + in-memory corrections probe (lab) ENGINEERING-PARITY.md: four DuckDB publications (research prototype vs shipped marked) mapped onto DR/DT64/ClassView/Quack/mask-risc/ndarray/Lance 13, plus the WHEN-vs-WHETHER recall comparison. EXISTS no-early-exit verified in code (mask-risc exec.rs:1633,1793-1794); production change not made. corrections.rs: route-once vs per-query, ndarray words vs hand-written packed compares (ordered u8-on-u32 = NO-EXISTING-KERNEL), borrowed vs gather_lane. Compiles; not yet run. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../ENGINEERING-PARITY.md | 168 +++++ .../probe/src/bin/corrections.rs | 609 ++++++++++++++++++ 2 files changed, 777 insertions(+) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs diff --git a/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md b/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md new file mode 100644 index 000000000..cfae6ada0 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md @@ -0,0 +1,168 @@ +# Engineering parity: DuckDB literature against DR / Quack / mask-risc / Lance 13 + +Date: 2026-11-03. Lab research, READ-ONLY. This replaces the earlier draft (scope change: literature first). + +Grades: +- **VERIFIED-IN-CODE:** I read the file:line myself. +- **CROSSWALK:** taken from the #1788 crosswalk, `.claude/plans/duckdb-dr-quack-machine-room-reuse-v1.md` Appendix A, and not re-read. +- **CLAIMED:** a publication says so; not checked in source. +- **UNVERIFIED:** I could not check it. + +DuckDB C++ source is **not on disk** (`selection_vector.hpp` not found). DuckDB symbols are therefore CROSSWALK at @1641475. + +## Sources actually read + +| # | publication | status | what I read | +|---|---|---|---| +| P1 | DuckDB docs, "Vector" internals (`/internals/vector` redirects to `docs/2.0/internals/vector.html`) | **SHIPPED-FEATURE** (2.0 docs) | the page | +| P2 | "Optimizers: The Low-Key MVP" (blog, 2024-11-14) | **SHIPPED-FEATURE** (blog about the shipped optimizer) | the page | +| P3 | Liu et al., *Selective Late Materialization*, PVLDB 18(11):4616–4628 | **PUBLISHED-RESEARCH-PROTOTYPE** | the PDF, §1–§2.3 and §4.4–§5.1 (pp. 4616–4621) | +| P4 | Qiao & Zhang, *Data Chunk Compaction*, SIGMOD 2025 | **PUBLISHED-RESEARCH-PROTOTYPE** (shipping version UNVERIFIED) | library-page abstract only | + +Notes on P3 and P4: +- P3's implementation is the fork `github.com/yhliu918/duckdb@latest` on DuckDB v1.1.0 (p. 4616, §5.1.2). +- Shipped DuckDB does have a *different* late-materialization rule, `optimizer/late_materialization.cpp:159` `TryLateMaterialization` (CROSSWALK A.2 #15). It must not stand in for P3. +- P4's PDF returned 403 from ACM and from the authors' site. Its mechanism details are UNVERIFIED. + +## Engineering-assimilation matrix (one row per principle) + +### 1. Reusable selection (P1; P3 §2.2) + +- **(a) Problem.** Avoid copying survivors after a filter. +- **(b) DuckDB mechanism and lifetime.** DuckDB keeps a selection vector or dictionary over a child vector. P3 §2.2 says the selection vector holds "DataChunk-local row IDs", shared by columns. Its lifetime is **one chunk** (2,048 rows, `STANDARD_VECTOR_SIZE`, P1). P1 does not state ownership; that part is UNVERIFIED. +- **(c) Our equivalent.** + - Packed `u64` masks plus the sealed `u16` map (CROSSWALK A.2 #1/#2). + - The DRF lease, lifetime **one version × scope × seal** (CROSSWALK A.1). + - mask-risc tiles, `TILE_WORDS = 256` (`mask-risc/src/exec.rs:110`). +- **(d) Status.** ALREADY WORKS, and lives longer: it is reused across queries, not rebuilt per chunk. There is no `Vec` by design (CROSSWALK #1). +- **(e) Falsifier.** D-DR-FOLD part B (`REPORT-BENCH.md`, "B: amortization"): + - the split policy reaches near-hot cost at Q≈256 queries per generation; + - witnessing a generation costs 502–758 µs. + - If generations churn faster than about 1/Q, the reuse advantage disappears. + +### 2. Late materialization (P3) + +- **(a) Problem.** Avoid copying a payload through joins and filters when few rows survive. P3 §2.2–2.3: in modern engines the only remaining cost is replacing virtual IDs with values. Plain late materialization (LM) is no longer a win on average (§1). +- **(b) DuckDB mechanism and lifetime.** P3 makes the choice **per attribute, per query, at plan time**. For each attribute it picks one point between the scan and first use (Alg. 1, §3), using a trained cost model of fetch cost plus memory-copy cost. It carries row IDs and `disable_column` until that point. It fetches in batches at row-group granularity (120K rows) (§4.5). +- **(c) Our equivalent.** + - Lance projection plus `with_row_addr_prefilter` (CROSSWALK A.3). + - DRF MAP / BORROW / GATHER (CROSSWALK A.4). + - There is no hash join carrying a row payload (CROSSWALK #14). +- **(d) Status.** INTENTIONALLY DIFFERENT. P3's biggest win, a smaller hash-join payload (§2.2, Fig. 2), has no target here. What remains missing is the **cost-based choice** between BORROW and GATHER and the masked Lance fetch. That choice is today a measured crossover (2 folds, DRF-P2), not a planner decision. +- **(e) Falsifier.** + - H14c: a uniform 1 % mask reads 1.00× the bytes; a clustered one reads 0.24× (CROSSWALK A.3). This is P3's "out-of-order probing" in storage form. + - P3 §5: LM wins only at high selectivity or with long payloads. + +### 3. Evaluation direction / join order (P2) + +- **(a) Problem.** Avoid huge intermediate results. + - P2: an unoptimized join produced about 5·10¹² intermediate rows; the optimized one ran in 0.769 s. + - P2: join filter pushdown, i.e. pushing the build side's min/max into the probe scan, gave about 10×. +- **(b) DuckDB mechanism and lifetime.** Join order is chosen **per query** from table statistics. P2 does not describe the build-side rule (UNVERIFIED). +- **(c) Our equivalent.** + - Frontier masks vs CSR vs a d-anchored gather, all as lab arms (P0 `REPORT.md:115,122`; D-DR-FOLD). + - There is no chooser in Quack (D-DR-FOLD Recommendation 1: "a lowering that chooses evaluation direction … from presence density"). +- **(d) Status.** **MISSING CAPABILITY (strategy, not kernel).** DR does have presence density as a versioned, popcount-cheap fact. That is a better input than a sampled estimate. +- **(e) Falsifiers.** + - P0, `multi_skewed` W4: DuckDB produced 3,726,779 join rows for an answer of 1,164 (`REPORT.md:99`). + - D-DR-FOLD: top-down frontier won 54/54 sweep cells against the anchored gather. + - P0: `csr` loses 2–14× on dense data (`REPORT.md:115,122`). Picking the wrong direction is the cost. + +### 4. Short-circuit for EXISTS (P2 filter pushdown and LIMIT; the P2-probe evidence) + +- **(a) Problem.** Stop as soon as the answer is known. +- **(b) DuckDB mechanism and lifetime.** EXISTS ran in about 0.9–2.7 ms, flat in K (`results/cw.log:25-51`). This suggests a scan that stops at the first qualifying chunk. **Lifetime: per query.** The mechanism is CLAIMED-from-timing; I did not read the operator. +- **(c) Our equivalent.** + - `Terminal::Any` (`mask-risc/src/ir.rs:292`). + - The executor loops over every tile (`exec.rs:1632`) and does `any |= mask_any(..)` with **no break** (`exec.rs:1793-1794`). VERIFIED-IN-CODE: the loop and the OR; I did not trace every Any path. + - ndarray `mask_any` has no early exit (local `ndarray/src/simd_masking_ops.rs:4864-4870`; this is gap G8, CROSSWALK). +- **(d) Status.** **MISSING WIRING.** It is one break per tile, after the first tile with a set bit. No new capability is needed. +- **(e) Falsifier.** P2 probe, `cw.log`: + - At K ≥ 8 our `any` costs about the same as our `count` (1.4–3.9 ms), while DuckDB EXISTS costs 0.88–2.7 ms. + - 17 LOSS rows, e.g. `k24_large_and` at a ratio of 0.36. + - After the break, `any` should fall with the position of the first hit, not with N. + +### 5. Physical-read avoidance (P2 filter pushdown and statistics propagation; CROSSWALK #12; Lance 13) + +- **(a) Problem.** Avoid reading blocks or rows that cannot qualify. +- **(b) DuckDB mechanism and lifetime.** + - Filters move into the scan. DuckDB's own count plan shows `"Projections": ""` with 8 pushed filters (P2-probe `results/where/n1000000/explain/k8_medium_and.txt`). + - Zone maps are **per row group, persisted** (`RowGroup::CheckZonemap`, CROSSWALK #12). + - Statistics folding answers `c0<1000 OR c3<5` with no operator at all (`duckdb/bench_where.py:98-101`). + - P2 never mentions zone maps. +- **(c) Our equivalent.** + - Lance prunes storage, at a chunk of ≤4,096 values (mini-block) (CROSSWALK A.3). + - `with_row_addr_prefilter` applies a DR mask to the read. + - Resident data needs no pruning: it is already in memory. +- **(d) Status.** ALREADY WORKS (storage), with **MISSING WIRING**: + - one coordinate→`_rowid` authority, plus bulk word→`RowAddrTreeMap` (CROSSWALK A.5; S-INGRESS OPEN); + - statistics folding for tautologies or contradictions: the case `adv_contradictory_17` lands at PARITY rather than a win (`cw.log:61`). +- **(e) Falsifier.** + - H14d: an empty R reads 0 B; clustered 1 % reads 0.19×; uniform 1 % reads 1.00× (CROSSWALK A.3). + - The integrated DR64→Lance→Quack path is **unmeasured**. + +### 6. Chunk compaction (P4) + +- **(a) Problem.** After a selection or a join, chunks become sparse and vector loops run underfull. +- **(b) DuckDB mechanism and lifetime.** Compaction is triggered per chunk, with a threshold learned at run time. "Logical compaction" in hash joins minimizes data movement (abstract only). The article reports up to 63 % speedup. +- **(c) Our equivalent.** + - A mask fold costs per word, not per surviving row, so a sparse mask does not run underfull. It costs N/64 words regardless of density. + - `materialize_rows` is egress only (CROSSWALK #16). +- **(d) Status.** INTENTIONALLY DIFFERENT: the representation removes the problem. The open question is the sparse end. With very few survivors, whole-word passes are wasted: D-DR-FOLD found "A's per-row lane term" and that C wins when "the chain dies early". That remedy is item 3, not compaction. +- **(e) Falsifier.** At very low survivor density, a fold of K predicates costs K·N/64 words while survivors≪N/64. The `tiny` rows in `cw.log` show our count flat in population (e.g. k24 tiny 3.8 ms vs large 4.2 ms). Prediction: compaction would not help that; switching direction (item 3) would. + +### Routing (P2-probe composition) + +- **Evidence.** The `route` column dominates: for example, 35,914 µs out of a 50,178 µs total at sel=50,000, D=1 (`results/comp_both.log`, N=1M table). +- **DuckDB.** It builds a per-query hash table, which it does not reuse across queries (UNVERIFIED for shipped DuckDB). +- **Ours.** + - Arm C, the derived sorted `(global, coord)` index with a `StaleIndex` refusal (SPEC.md:38-49). + - Status: **MISSING WIRING**, not MISSING CAPABILITY. + - Its reuse lifetime is the frame (one generation), which is longer than DuckDB's single query. + +## WHEN vs WHETHER + +DuckDB, both shipped and in P3, optimizes **when** a property is recalled. It already avoids **whether** in one case: COUNT on pushed filters projects nothing (`"Projections": ""`). It still has to read every *filter* column on every query. + +We can skip the recall entirely where the answer is a fact about presence, not about values: + +1. **COUNT / EXISTS / ALL over an already-bound DR mask.** For a predicate that is already a versioned plane, there is no value read at all. `Terminal::Count`/`Any` read a mask only (`ir.rs:290-292`). DRF's MAP-only path holds no value (CROSSWALK A.4, path 1). DuckDB re-scans the filter columns every query (`rows_scanned: 1000000` in the k8 EXPLAIN). The gain lasts for as long as the plane's generation does. +2. **Field-presence questions.** `FieldMask`/`WideFieldMask` are "pure presence bits" (`contract/src/class_view.rs:60-70`, `:243`), so the question "has property p" never touches p's value. +3. **Empty or contradictory demand.** An empty R reads 0 B from Lance (H14d). If an empty mask skipped `with_row_addr_prefilter` (G8), we would never open the storage at all. +4. **DISTINCT over a sealed map.** DISTINCT is the population of the distinct ordinals in the domain mask (CROSSWALK A.1, `membership.rs:103-125`); no value is needed. + +We **cannot** skip it: + +- **The first evaluation of a value predicate.** The plane has to be computed once; that is the P2 `discover` scan, N-bound by design (`comp_both.log`). +- **SUM / MIN / GROUP BY on a payload.** These need BORROW or GATHER. +- **Any non-resident source.** It needs a Lance masked read with projection, so the cost is bytes per chunk touched (H14c), not density. +- **After a generation change.** Witness or rebuild: 502–758 µs per generation (D-DR-FOLD B). + +**Falsifier for WHETHER.** Re-run the 17+ K-group `count` cases with the K predicate planes pre-bound at the same version (a resident plane per criterion). The cost should drop to K·N/64 word ANDs plus a popcount, with no lane reads, and stay flat across repeated queries. DuckDB's cost should stay per query: `rows_scanned` equals N each time. If ours does not stay flat across repeats, the "versioned fact" claim fails. + +## Ranked assimilation candidates (producer → missing edge → consumer → test → owner gate) + +1. `Terminal::Any` → per-tile early break (`exec.rs:1793`) → Quack EXISTS → `cw.log` K≥8 EXISTS cases, plus a can-stay-silent test on an empty mask → mask-risc owner. +2. Presence density (popcount of resident planes) → choice of evaluation direction in the lowering → Quack multi-hop / W4 → P0 `multi_skewed`/`multi_dense` W4 + the D-DR-FOLD sweep → Quack owner (D-DR-FOLD D1 ruling). +3. P1 Arm C derived index → a frame-scoped binding reused across queries → composition / route stage → `comp_both.log` route column at sel 50k → DRF/D-GLOBAL-WHERE owner. +4. DR mask → one coordinate→`_rowid` authority plus bulk `RowAddrTreeMap` → Lance masked fetch → H14d cells + the integrated path (unmeasured) → Lance-seam owner, gated on the S-INGRESS ruling. +5. Plane statistics (empty/full per tile) → constant-fold of tautologies and contradictions at bind time → Quack → `adv_contradictory_17` (PARITY today) → Quack owner. Rejected as a resident zone map (CROSSWALK #12). + +## Draft verdict + +**Engineering parity is reached by representation on selection reuse and on compaction.** A versioned DR mask outlives DuckDB's per-chunk selection vector, and word folds remove the problem of underfull chunks. + +**It is not reached on strategy.** DuckDB's per-query optimizer chooses join order, pushes filters into scans, folds statistics and short-circuits EXISTS. Every P2 benchmark loss maps to one of these, never to a kernel: +- EXISTS at K≥8 (no break, `exec.rs:1793`); +- W4 wrong-direction arms; +- the route stage. + +The assimilation is to feed DR's *already-versioned* facts (presence density, an empty mask, a bound plane) into decisions the lowering does not yet make. DuckDB's representations are not to be copied. P3's per-attribute late materialization is a research prototype on a v1.1.0 fork. Its main payoff, a smaller hash-join payload, has no target here. + +## Not verified + +- P4's mechanism beyond the abstract. +- The build-side rule and EXISTS operator in DuckDB (no source on disk). +- Whether shipped DuckDB includes P4. +- Every `Terminal::Any` code path, beyond the loop I read. +- The integrated DR→Lance read. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs new file mode 100644 index 000000000..d990bb105 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs @@ -0,0 +1,609 @@ +//! LAB: D-GLOBAL-WHERE P1, three paired corrections (A/B over the SAME data and +//! the SAME answer). Every row is labelled `in-memory`. +//! +//! Lab only. Nothing here is a compiled or run result until the orchestrator +//! builds and runs it. The original probes (falsify_p1, project, compose, +//! where_k) and their timings are the baseline and are unchanged; no operand +//! here replaces an established physical representation. +//! +//! 1. ROUTE ONCE VS PER QUERY: Q in {1, 16, 256} queries over one selection. +//! `per_query` runs `Binding::prepare` (WorkingSet already built; routing + +//! CSR + lanes + masks) for every query. `reuse` prepares once, then per +//! query: `Binding::guard`, the virtual WHERE for A and B, the fold. +//! Reports amortized per-query cost, the break-even Q, and exercises a +//! stale reuse after `replace_tile` that `guard` must refuse. +//! 2. NDARRAY KERNELS VS HAND-WRITTEN LOOPS for the ordered u8 compare over a +//! packed u32 lane (4 x u8 per lane, project.rs layout, unchanged). +//! `handwritten` = project.rs `fill_lane` shift + mask + compare, copied +//! verbatim. `kernel_ternary_or` = existing `ndarray::simd` +//! `ternary_match_u32_to_mask` / `mask_or_assign` / `mask_not` composed +//! (value < c is the OR of at most 8 prefix matches). A DIRECT ordered +//! compare over a packed lane has NO-EXISTING-KERNEL (see main()). +//! 3. BORROWED LANE READS VS gather_lane COPIES: `copy` = `gather_lane` into a +//! Vec then `virtual_where`; `borrowed` = the fold reads the corpus lane in +//! place through the working set's own coordinate -> global pointer table +//! (`MapTable::map(..).globals()`), no new Vec of values. +//! +//! ORACLE: scalar loops over the LOGICAL formula; never timed; they read no +//! layout and no working set. Every A/B pair must give equal answers or the +//! binary exits 1. +//! +//! GATES: a warm in-fold value >= 1000 us prints FAILED-GATE (counted, +//! reported, exit code unchanged). Preparation values print COLD. +//! +//! NOT CLAIMED: absolute speed outside this host; that the generated graph or +//! lanes resemble a real corpus; that hand-written vs kernel ranking holds for +//! other shapes; anything on-disk or DuckDB. Preparation and per-query-route +//! costs are COLD (reported, not gates). +//! +//! Usage: `corrections [--n 1000000|10000000]... [--sel 20000]` +//! Writes `/corrections/n/corrections.json`. + +use std::collections::HashSet; +use std::time::Instant; + +use d_global_where_p1_probe::*; + +#[global_allocator] +static ALLOC: CountingAlloc = CountingAlloc; + +const LABEL: &str = "in-memory"; + +// --------------------------------------------------------------------------- +// deterministic data +// --------------------------------------------------------------------------- + +fn h(id: u64, j: u64) -> u64 { + let mut z = id.wrapping_mul(0x9E37_79B9_7F4A_7C15) ^ j.wrapping_mul(0xD6E8_FEB8_6659_FD93); + z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); + z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); + z ^ (z >> 31) +} + +/// Logical value of the corpus lanes (0..1000). +fn lane_val(id: u64, salt: u64) -> i32 { + (h(id, salt) % 1000) as i32 +} + +/// Logical u8 property `k` (0..4) of row `id`. +fn u8_val(id: u64, k: u32) -> u32 { + ((h(id, 200 + u64::from(k)) >> 8) % 256) as u32 +} + +struct Fixture { + n: usize, + ids: Vec, + edges: Vec<(u64, u64)>, + corpus_a: Vec, + corpus_b: Vec, +} + +fn build_fixture(n: usize, sel: usize) -> Fixture { + let sel = sel.min(MAX_TILES * 256).min(n); + let stride = (n / sel).max(1) as u64; + let ids: Vec = (0..sel as u64).map(|i| i * stride + h(i, 7) % stride).collect(); + let corpus_a: Vec = (0..n as u64).map(|g| lane_val(g, 100)).collect(); + let corpus_b: Vec = (0..n as u64).map(|g| lane_val(g, 101)).collect(); + let mut rng = Rng::new(SEED); + let mut edges: Vec<(u64, u64)> = Vec::with_capacity(sel * 8); + for i in 0..sel { + let deg = 4 + rng.below(9) as usize; + for _ in 0..deg { + let t = if rng.below(8) == 0 { + rng.below(n as u64) + } else { + ids[(i + rng.below(1024) as usize) % sel] + }; + edges.push((ids[i], t)); + } + } + Fixture { + n, + ids, + edges, + corpus_a, + corpus_b, + } +} + +// --------------------------------------------------------------------------- +// reporting +// --------------------------------------------------------------------------- + +#[derive(Default)] +struct Report { + rows: Vec, + failed_gates: usize, + ok: bool, +} + +impl Report { + fn new() -> Report { + Report { + ok: true, + ..Report::default() + } + } + + fn check(&mut self, what: &str, cond: bool) { + if cond { + println!(" [oracle ok ] {what}"); + } else { + println!(" [ORACLE FAIL] {what}"); + self.ok = false; + } + } + + /// One timed row. `cold` rows are labelled, never gated. + fn row(&mut self, group: &str, name: &str, samples: &[f64], cold: bool, alloc: (usize, usize), extra: &str) { + let (med, p10, p90) = stats(samples); + if med >= 1000.0 && !cold { + self.failed_gates += 1; + } + println!( + " [{LABEL}] {group:<14} {name:<30} med {} p10 {p10:.3}us p90 {p90:.3}us alloc {}B/{}calls {extra}", + fmt_us(med, cold), + alloc.0, + alloc.1 + ); + self.rows.push(format!( + "{{\"label\":\"{LABEL}\",\"group\":\"{group}\",\"name\":\"{name}\",\"median_us\":{med:.3},\ +\"p10_us\":{p10:.3},\"p90_us\":{p90:.3},\"cold\":{cold},\"failed_gate\":{},\"alloc_bytes\":{},\"alloc_calls\":{}{}}}", + med >= 1000.0 && !cold, + alloc.0, + alloc.1, + if extra.is_empty() { String::new() } else { format!(",\"note\":\"{extra}\"") } + )); + } + + fn note(&mut self, key: &str, value: String) { + println!(" [{LABEL}] {key} = {value}"); + self.rows.push(format!("{{\"label\":\"{LABEL}\",\"note\":\"{key}\",\"value\":\"{value}\"}}")); + } +} + +/// Bytes and calls allocated by `f` (one execution). +fn measure(f: impl FnOnce() -> R) -> ((usize, usize), R) { + let (b0, c0) = (alloc_bytes(), alloc_calls()); + let r = f(); + ((alloc_bytes() - b0, alloc_calls() - c0), r) +} + +// --------------------------------------------------------------------------- +// correction 1: route once vs per query +// --------------------------------------------------------------------------- + +fn thresholds(q: usize) -> (i32, i32) { + (100 + ((q * 37) % 800) as i32, 100 + ((q * 53) % 800) as i32) +} + +fn oracle_w2(fx: &Fixture, member: &HashSet, a_lt: i32, b_lt: i32) -> i64 { + let mut hits: HashSet = HashSet::new(); + for &(x, y) in &fx.edges { + if member.contains(&x) + && member.contains(&y) + && fx.corpus_a[x as usize] < a_lt + && fx.corpus_b[y as usize] < b_lt + { + hits.insert(x); + } + } + hits.len() as i64 +} + +fn correction_1(rep: &mut Report, fx: &Fixture) { + println!("correction 1: route once vs per query (sel {})", fx.ids.len()); + let ws = WorkingSet::build(&fx.ids, 1).expect("working set builds"); + let sizes = [ws.n_coords()]; + let a_of = |g: u64| fx.corpus_a[g as usize]; + let b_of = |g: u64| fx.corpus_b[g as usize]; + let member: HashSet = fx.ids.iter().copied().collect(); + let mut sc = FoldScratch::new(&sizes); + + // Component costs: P (prepare, cold), w (guard + two wheres), f (fold). + let (a0, b0) = thresholds(0); + let prep_samples = time_runs(5, || { + let b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, a0, b0).expect("prepare"); + std::hint::black_box(&b); + }); + let (prep_alloc, _) = measure(|| { + let b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, a0, b0).expect("prepare"); + std::hint::black_box(&b); + }); + rep.row("route1/part", "prepare (P)", &prep_samples, true, prep_alloc, "COLD"); + let p_us = stats(&prep_samples).0; + + let mut bind = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, a0, b0).expect("prepare"); + let (qa, qb) = thresholds(5); + let w_samples = time_runs(31, || { + bind.guard(&[&ws], true).expect("fresh binding is current"); + virtual_where(&bind.lane_a[0], qa, &bind.valid[0], &mut bind.a[0]); + bind.rewhere_b(qb); + }); + let (w_alloc, _) = measure(|| { + bind.guard(&[&ws], true).expect("fresh binding is current"); + virtual_where(&bind.lane_a[0], qa, &bind.valid[0], &mut bind.a[0]); + bind.rewhere_b(qb); + }); + rep.row("route1/part", "guard+where A+where B (w)", &w_samples, false, w_alloc, ""); + let w_us = stats(&w_samples).0; + + let f_samples = time_runs(31, || { + std::hint::black_box(w2_and(&bind.graphs, &bind.a, &bind.b, &mut sc)); + }); + let (f_alloc, _) = measure(|| std::hint::black_box(w2_and(&bind.graphs, &bind.a, &bind.b, &mut sc))); + rep.row("route1/part", "fold w2_and (f)", &f_samples, false, f_alloc, ""); + + // Break-even: reuse(Q) = P + Q (w + f), per_query(Q) = Q (P + f) + // => reuse <= per_query once Q >= P / (P - w). + let breakeven = if p_us > w_us { + format!("{:.3} (Q >= {})", p_us / (p_us - w_us), (p_us / (p_us - w_us)).ceil() as u64) + } else { + "never (P <= w)".to_string() + }; + rep.note("route1_break_even_Q", breakeven); + + for &q_count in &[1usize, 16, 256] { + let runs = match q_count { + 1 => 7, + 16 => 3, + _ => 1, + }; + let th: Vec<(i32, i32)> = (0..q_count).map(thresholds).collect(); + let mut ans_pq = vec![0i64; q_count]; + let mut ans_re = vec![0i64; q_count]; + + let pq_samples = time_runs(runs, || { + for (q, &(al, bl)) in th.iter().enumerate() { + let b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, al, bl).expect("prepare"); + ans_pq[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); + } + }); + let re_samples = time_runs(runs, || { + let (al0, bl0) = th[0]; + let mut b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, al0, bl0).expect("prepare"); + for (q, &(al, bl)) in th.iter().enumerate() { + b.guard(&[&ws], true).expect("reuse is legal while the frame is current"); + virtual_where(&b.lane_a[0], al, &b.valid[0], &mut b.a[0]); + b.rewhere_b(bl); + ans_re[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); + } + }); + // Reuse per-query warm part only (prepare excluded): guard + where + fold. + let mut b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, th[0].0, th[0].1).expect("prepare"); + let mut ans_warm = vec![0i64; q_count]; + let warm_samples = time_runs(runs.max(3), || { + for (q, &(al, bl)) in th.iter().enumerate() { + b.guard(&[&ws], true).expect("current"); + virtual_where(&b.lane_a[0], al, &b.valid[0], &mut b.a[0]); + b.rewhere_b(bl); + ans_warm[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); + } + }); + let (warm_alloc, _) = measure(|| { + for (q, &(al, bl)) in th.iter().enumerate() { + b.guard(&[&ws], true).expect("current"); + virtual_where(&b.lane_a[0], al, &b.valid[0], &mut b.a[0]); + b.rewhere_b(bl); + ans_warm[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); + } + }); + + let per_q = |s: &[f64]| s.iter().map(|v| v / q_count as f64).collect::>(); + // Per-query route includes preparation: COLD. Reuse total includes one + // preparation: COLD. Reuse warm part is the in-fold figure: gated. + rep.row("route1", &format!("per_query Q={q_count} (per query)"), &per_q(&pq_samples), true, (0, 0), "includes prepare"); + rep.row("route1", &format!("reuse Q={q_count} (per query)"), &per_q(&re_samples), true, (0, 0), "includes 1 prepare"); + rep.row("route1", &format!("reuse warm Q={q_count} (per query)"), &per_q(&warm_samples), false, (warm_alloc.0 / q_count, warm_alloc.1 / q_count), "no prepare"); + + // Oracle on every query (or a stride for Q=256 to bound the oracle time). + let step = if q_count > 16 { 16 } else { 1 }; + let mut all = ans_pq == ans_re && ans_pq == ans_warm; + for q in (0..q_count).step_by(step) { + all &= oracle_w2(fx, &member, th[q].0, th[q].1) == ans_pq[q]; + } + rep.check(&format!("route1 Q={q_count}: per_query == reuse == oracle (oracle every {step}th query)"), all); + } + + // Stale reuse must be refused by Binding::guard after replace_tile. + let small: Vec = fx.ids.iter().copied().take(2048).collect(); + let small_set: HashSet = small.iter().copied().collect(); + let small_edges: Vec<(u64, u64)> = fx + .edges + .iter() + .copied() + .filter(|(x, y)| small_set.contains(x) && small_set.contains(y)) + .collect(); + let mut sws = WorkingSet::build(&small, 9).expect("small set builds"); + let sb = Binding::prepare(&[&sws], &small_edges, Arm::B, &a_of, &b_of, 500, 500).expect("prepare small"); + let mut ssc = FoldScratch::new(&[sws.n_coords()]); + let before = w2_and(&sb.graphs, &sb.a, &sb.b, &mut ssc); + rep.check("route1 stale: guard accepts the fresh binding", sb.guard(&[&sws], true).is_ok()); + let frame = sws.seal(); + let mut t0: Vec = sws.table.map(&frame, 0).expect("tile 0").globals().to_vec(); + t0.reverse(); + sws.replace_tile(0, &t0).expect("replace_tile"); + let refused = matches!(sb.guard(&[&sws], true), Err(BindError::Stale(0))); + rep.check("route1 stale: guard REFUSES the binding after replace_tile", refused); + rep.check("route1 stale: disabled guard would NOT refuse (guard is load-bearing)", sb.guard(&[&sws], false).is_ok()); + let fresh = Binding::prepare(&[&sws], &small_edges, Arm::B, &a_of, &b_of, 500, 500).expect("re-prepare"); + let mut fsc = FoldScratch::new(&[sws.n_coords()]); + let after_fresh = w2_and(&fresh.graphs, &fresh.a, &fresh.b, &mut fsc); + rep.check("route1 stale: a fresh prepare after replace gives the oracle answer", { + let m: HashSet = small.iter().copied().collect(); + let mut hits: HashSet = HashSet::new(); + for &(x, y) in &small_edges { + if m.contains(&x) && m.contains(&y) && fx.corpus_a[x as usize] < 500 && fx.corpus_b[y as usize] < 500 { + hits.insert(x); + } + } + hits.len() as i64 == after_fresh && before == after_fresh + }); + // Informational only: the stale binding's own fold still reads its old coordinates. + let stale_answer = w2_and(&sb.graphs, &sb.a, &sb.b, &mut ssc); + rep.note("route1_stale_fold_answer_unguarded", format!("{stale_answer} (reported, equals fresh {after_fresh}: {})", stale_answer == after_fresh)); +} + +// --------------------------------------------------------------------------- +// correction 2: ndarray kernels vs hand-written packed u8 compare +// --------------------------------------------------------------------------- + +#[derive(Clone, Copy)] +enum Op { + Lt, + Ge, +} + +/// project.rs:513-522 `fill_lane`, verbatim: one output word per 64 rows; +/// shift + mask + compare. +fn fill_lane(buf: &mut [u64], lane: &[u32], shift: u32, wmask: u32, test: impl Fn(u32) -> bool) { + for (w, chunk) in lane.chunks(64).enumerate() { + let mut word = 0u64; + for (b, &x) in chunk.iter().enumerate() { + word |= u64::from(test((x >> shift) & wmask)) << b; + } + buf[w] = word; + } +} + +/// The PackU8 arm of project.rs:526-533 (`Op::Lt` / `Op::Ge`). +fn handwritten(p: &[u32], shift: u32, op: Op, c: u32, out: &mut [u64]) { + match op { + Op::Lt => fill_lane(out, p, shift, 0xFF, |e| e < c), + Op::Ge => fill_lane(out, p, shift, 0xFF, |e| e >= c), + } +} + +/// `field < c` as the OR of prefix matches over EXISTING ndarray::simd words: +/// for every set bit `b` of `c`, the field's bits `7..=b` equal `c`'s bits +/// above `b` followed by a 0 at `b`. At most 8 `ternary_match_u32_to_mask` +/// passes (`popcount(c)`); `acc` is fully overwritten. +fn kernel_lt(p: &[u32], shift: u32, c: u32, acc: &mut [u64], tmp: &mut [u64]) { + acc.fill(0); + let mut first = true; + for b in (0..8u32).rev() { + if (c >> b) & 1 == 1 { + let high = (c >> (b + 1)) << (b + 1); + let care8 = 0xFFu32 & !((1u32 << b) - 1); + let (pattern, care) = (high << shift, care8 << shift); + if first { + ndarray::simd::ternary_match_u32_to_mask(p, pattern, care, acc); + first = false; + } else { + ndarray::simd::ternary_match_u32_to_mask(p, pattern, care, tmp); + ndarray::simd::mask_or_assign(acc, tmp); + } + } + } +} + +fn correction_2(rep: &mut Report, fx: &Fixture) { + let n = fx.n; + println!("correction 2: ndarray kernels vs hand-written packed u8 compare (n {n})"); + let mut p = vec![0u32; n]; + for (id, slot) in p.iter_mut().enumerate() { + for k in 0..4u32 { + *slot |= u8_val(id as u64, k) << (8 * k); + } + } + let words = words_for(n); + let mut hand = vec![0u64; words]; + let mut kern = vec![0u64; words]; + let mut acc = vec![0u64; words]; + let mut tmp = vec![0u64; words]; + + // (name, field k, op, constant). Constants chosen by their set-bit count: + // 64 (1 pass), 170 (4 passes), 255 (8 passes). + let cases: [(&str, u32, Op, u32); 4] = [ + ("f0 < 64", 0, Op::Lt, 64), + ("f2 >= 170", 2, Op::Ge, 170), + ("f3 < 255", 3, Op::Lt, 255), + ("f1 >= 64", 1, Op::Ge, 64), + ]; + for &(name, k, op, c) in &cases { + let shift = 8 * k; + let oracle = (0..n as u64) + .filter(|&id| { + let v = u8_val(id, k); + match op { + Op::Lt => v < c, + Op::Ge => v >= c, + } + }) + .count() as u64; + + let hand_s = time_runs(11, || { + handwritten(&p, shift, op, c, &mut hand); + std::hint::black_box(&hand); + }); + let (hand_a, _) = measure(|| handwritten(&p, shift, op, c, &mut hand)); + let run_kernel = |acc: &mut [u64], tmp: &mut [u64], kern: &mut [u64]| match op { + Op::Lt => kernel_lt(&p, shift, c, kern, tmp), + Op::Ge => { + kernel_lt(&p, shift, c, acc, tmp); + ndarray::simd::mask_not(acc, n, kern); + } + }; + let kern_s = time_runs(11, || { + run_kernel(&mut acc, &mut tmp, &mut kern); + std::hint::black_box(&kern); + }); + let (kern_a, _) = measure(|| run_kernel(&mut acc, &mut tmp, &mut kern)); + + let passes = c.count_ones(); + rep.row("kernel2", &format!("handwritten {name}"), &hand_s, false, hand_a, "project.rs fill_lane"); + rep.row( + "kernel2", + &format!("kernel_ternary_or {name}"), + &kern_s, + false, + kern_a, + &format!("{passes} ternary passes"), + ); + // The hand-written tail beyond n is never set (chunks of n); kernels clear it too. + let same = hand == kern; + rep.check( + &format!("kernel2 {name}: masks bit-identical, popcount hand {} kernel {} oracle {oracle}", popcount(&hand), popcount(&kern)), + same && popcount(&hand) == oracle && popcount(&kern) == oracle, + ); + } +} + +// --------------------------------------------------------------------------- +// correction 3: borrowed lane reads vs gather_lane copies +// --------------------------------------------------------------------------- + +/// The fold reads the corpus lane IN PLACE through the working set's own +/// coordinate -> global pointer table (`TileMap::globals`): no Vec of values, +/// the only write is the preallocated coordinate mask. +fn where_borrowed(ws: &WorkingSet, frame: &lance_graph_dt64::dr::Frame, corpus: &[i32], lt: i32, out: &mut [u64]) { + out.fill(0); + let tw = ws.tw(); + for (o, &t) in ws.tile_ids.iter().enumerate() { + if let Ok(view) = ws.table.map(frame, t) { + for (l, &g) in view.globals().iter().enumerate() { + if corpus[g as usize] < lt { + set_bit(out, o * tw + l); + } + } + } + } +} + +fn correction_3(rep: &mut Report, fx: &Fixture) { + println!("correction 3: borrowed lane reads vs gather_lane copies (sel {})", fx.ids.len()); + let ws = WorkingSet::build(&fx.ids, 1).expect("working set builds"); + let frame = ws.seal(); + let n_coords = ws.n_coords(); + let valid = ws.valid_mask(&frame); // preparation constant shared by the copy arm; excluded from its timing + let mut out_copy = vec![0u64; words_for(n_coords)]; + let mut out_borrow = vec![0u64; words_for(n_coords)]; + let corpus = &fx.corpus_a; + + for < in &[100i32, 500, 900] { + let oracle = fx.ids.iter().filter(|&&g| lane_val(g, 100) < lt).count() as u64; + + let copy_s = time_runs(21, || { + let lane = ws.gather_lane(&frame, |g| corpus[g as usize]); + virtual_where(&lane, lt, &valid, &mut out_copy); + std::hint::black_box(&out_copy); + }); + let (copy_alloc, _) = measure(|| { + let lane = ws.gather_lane(&frame, |g| corpus[g as usize]); + virtual_where(&lane, lt, &valid, &mut out_copy); + }); + let borrow_s = time_runs(21, || { + where_borrowed(&ws, &frame, corpus, lt, &mut out_borrow); + std::hint::black_box(&out_borrow); + }); + let (borrow_alloc, _) = measure(|| where_borrowed(&ws, &frame, corpus, lt, &mut out_borrow)); + + rep.row( + "borrow3", + &format!("copy gather_lane lt={lt}"), + ©_s, + false, + copy_alloc, + &format!("bytes_copied={}", n_coords * 4), + ); + rep.row("borrow3", &format!("borrowed in-place lt={lt}"), &borrow_s, false, borrow_alloc, "bytes_copied=0"); + rep.check( + &format!("borrow3 lt={lt}: masks identical, popcount copy {} borrowed {} oracle {oracle}", popcount(&out_copy), popcount(&out_borrow)), + out_copy == out_borrow && popcount(&out_copy) == oracle, + ); + } +} + +// --------------------------------------------------------------------------- +// driver +// --------------------------------------------------------------------------- + +fn run_size(out_dir: &str, n: usize, sel: usize) -> bool { + println!("== n = {n} sel = {sel} ({LABEL}) =="); + let t = Instant::now(); + let fx = build_fixture(n, sel); + println!(" fixture built in {:.3}us (COLD): {} ids, {} edges", t.elapsed().as_nanos() as f64 / 1000.0, fx.ids.len(), fx.edges.len()); + let mut rep = Report::new(); + correction_1(&mut rep, &fx); + correction_2(&mut rep, &fx); + correction_3(&mut rep, &fx); + + let dir = format!("{out_dir}/corrections/n{n}"); + std::fs::create_dir_all(&dir).expect("create output dir"); + let json = format!( + "{{\"lab\":true,\"label\":\"{LABEL}\",\"n\":{n},\"sel\":{},\"ok\":{},\"failed_gates\":{},\ +\"no_existing_kernel\":\"direct ordered u8 compare over a packed u32 lane\",\"rows\":[\n{}\n]}}\n", + fx.ids.len(), + rep.ok, + rep.failed_gates, + rep.rows.join(",\n") + ); + std::fs::write(format!("{dir}/corrections.json"), json).expect("write json"); + println!(" failed gates (reported, not exit code): {}", rep.failed_gates); + rep.ok +} + +fn main() { + let args: Vec = std::env::args().collect(); + if args.len() < 2 || args[1].starts_with("--") { + eprintln!("usage: corrections [--n 1000000|10000000]... [--sel 20000]"); + std::process::exit(2); + } + let out = args[1].clone(); + let mut sizes: Vec = Vec::new(); + let mut sel = 20_000usize; + let mut i = 2; + while i < args.len() { + match args[i].as_str() { + "--n" if i + 1 < args.len() => { + sizes.push(args[i + 1].parse().expect("--n takes an integer")); + i += 2; + } + "--sel" if i + 1 < args.len() => { + sel = args[i + 1].parse().expect("--sel takes an integer"); + i += 2; + } + other => { + eprintln!("unknown argument {other}"); + std::process::exit(2); + } + } + } + if sizes.is_empty() { + sizes = vec![1_000_000, 10_000_000]; + } + println!( + "NO-EXISTING-KERNEL: a DIRECT ordered u8 compare over a packed u32 lane. ndarray::simd lt_u8_to_mask/ge_u8_to_mask \ +read contiguous &[u8] (would compare all 4 fields per lane, interleaved); Quack Cmp has EqU32/NeU32/MatchU32 and \ +signed I32 orderings only. Arm kernel_ternary_or composes existing words (ternary_match_u32_to_mask, mask_or_assign, mask_not); nothing new is implemented." + ); + let mut ok = true; + for n in sizes { + ok &= run_size(&out, n, sel); + } + if !ok { + println!("CORRECTIONS FAILED: answer mismatch"); + std::process::exit(1); + } + println!("CORRECTIONS ALL ANSWERS MATCH THE ORACLE"); +} From 5573c406aaf50e3a3ae1a06084e78c24064a2e36 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:00:17 +0000 Subject: [PATCH 13/23] lab: Lance selective-read arm for D-GLOBAL-WHERE P2 (WIP, not yet compiled) Adds crates/crepe-plan-probe/examples/where_lance_arm.rs, which compares three reads on a permuted 16-property fixture: a full scan, a masked prefilter, and the #1633 attested range read. It also resolves the projection through ClassView, with refusal tests. The example now uses the addressed-read path instead of private copies. To allow that, addressed.rs makes `ranges` and `range_mask` public and adds `range_tree` (used to measure ingress bytes) and `check_fresh`, which `current_lane` now calls. Attest checks that `_rowid` equals `_rowaddr`. The D4 boundary prints a fixed BLOCKED_D4 message; no DR ordinal is composed with `_rowid`. This commit has not been compiled. A build is running; fixes follow. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../examples/where_lance_arm.rs | 1248 +++++++++++++++++ crates/crepe-plan-probe/src/addressed.rs | 53 +- 2 files changed, 1283 insertions(+), 18 deletions(-) create mode 100644 crates/crepe-plan-probe/examples/where_lance_arm.rs diff --git a/crates/crepe-plan-probe/examples/where_lance_arm.rs b/crates/crepe-plan-probe/examples/where_lance_arm.rs new file mode 100644 index 000000000..6cfa75cdb --- /dev/null +++ b/crates/crepe-plan-probe/examples/where_lance_arm.rs @@ -0,0 +1,1248 @@ +//! LAB. One integration test of the chain +//! +//! ```text +//! ClassView -> WideFieldMask (demanded property positions) +//! -> WHERE (logical predicate) / DR selection (identities) +//! -> Lance row-address mask (physical row eligibility) +//! -> Scanner::with_row_addr_prefilter -> Scanner::project (resolved columns only) +//! -> fold +//! ``` +//! +//! Run in release from this crate's directory: +//! +//! ```text +//! cargo run --release --example where_lance_arm -- [--n 1000000] [--reps 5] +//! ``` +//! +//! Four masks, kept distinct in type, name and output: +//! - `demanded: WideFieldMask` which PROPERTIES (logical positions of the class); +//! - `where_bits: Vec` which ROWS satisfy the logical predicate (arm A, B); +//! - `dr_ids: Vec` the DR-side identities (arm C; given, not derived); +//! - `RowAddrMask` which PHYSICAL rows Lance may read. +//! +//! Arms (every row labelled "Lance-backed"): +//! - A FULL: one scan of where-columns + resolved demanded columns, WHERE in Rust. +//! - B MASKED PREFILTER: scan the where-columns with `_rowaddr`, WHERE -> row list, +//! build `RowAddrMask` (MASK INGRESS: this COPIES the addresses into Lance's +//! `RowAddrTreeMap`, it is not zero-copy), re-scan with `with_row_addr_prefilter` +//! projecting the resolved demanded columns only. ALLOW always; BLOCK as well at 50%. +//! - C ATTESTED ADDRESSED: `SealedFacetLane::attest_sorted` once per version (cold), +//! ids -> lane ranges with `seek_from`, `addressed::plan_read` under `EXACT` and +//! `DEFAULT`, a range `RowAddrMask`, prefilter scan, fold. +//! +//! WHAT IS CLAIMED: only what the printed table and the oracle checks show on this +//! fixture, on this machine, in this run. The answers of all arms equal a scalar +//! oracle over the generator formula and a full-projection read. +//! +//! WHAT IS NOT CLAIMED: no speed-up in general; no zero-copy for the mask ingress; +//! no DR -> Lance coordinate authority (arm C's ids are GIVEN); no claim that the +//! ClassView resolution covers a production ontology (a 16-field lab class). +//! +//! OWNER GATES, both open: +//! - S-INGRESS (#1788): the mask ingress copies; which coordinate space is the +//! authority for a row address is an operator decision, not made here. +//! - D4 / the joint coordinate witness: no witness binds a DR Frame to a Lance +//! dataset version (see `d4_boundary`, printed as BLOCKED_D4). Nothing here +//! composes DR ordinals with `_rowid` in a stored table. +//! +//! No-ms rule: a warm in-fold value >= 1000 us (WHERE eval, ClassView resolution, +//! DR lane lookup, fold) prints FAILED-GATE (reported). Lance I/O, mask ingress and +//! cold phases print COLD/IO (reported, not gated). +//! +//! Drafted without being compiled; the orchestrator compiles centrally. + +use std::collections::HashMap; +use std::sync::{Arc, Mutex}; +use std::time::Instant; + +use arrow_array::{Int32Array, RecordBatch, RecordBatchIterator, UInt32Array, UInt64Array}; +use arrow_schema::{DataType, Field, Schema}; +use crepe_plan_probe::addressed::{ + AddressedRelation, Read, ReadPolicy, check_fresh, key, leading, plan_read, range_mask, + range_tree, ranges, +}; +use crepe_plan_probe::logic::RelId; +use lance::dataset::scanner::{ExecutionStatsCallback, RowAddrMask}; +use lance::dataset::{Dataset, WriteParams}; +use lance_graph_contract::class_view::{ClassId, ClassView, FieldMask, WideFieldMask}; +use lance_graph_contract::ontology::{DisplayTemplate, FieldRef}; +use lance_graph_contract::ordered_lane::{OrderedLaneWitness, SealedFacetLane}; +use mork_pathmap_probe::join::for_each_set; + +const SEED: u64 = 0x9E37_79B9_7F4A_7C15; +const NPROPS: usize = 16; +const CLASS: ClassId = 1; +const IRI_KEY: &str = "predicate_iri"; + +// ---------------------------------------------------------------- generator + +struct SplitMix64(u64); +impl SplitMix64 { + fn next(&mut self) -> u64 { + self.0 = self.0.wrapping_add(0x9E37_79B9_7F4A_7C15); + let mut z = self.0; + z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); + z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); + z ^ (z >> 31) + } +} + +/// The value of property `j` on row `id`; the oracle's only source of truth. +fn gen_val(id: u32, j: usize) -> i32 { + let x = (u64::from(id) * 2_654_435_761 + (j as u64) * 40_503) % 2_147_483_648; + ((x * 1_103_515_245 % 2_147_483_648) % 1000) as i32 +} + +// ------------------------------------------------------------------ fixture + +/// Physical ordinal (0-based, after `id`) of logical property `j`: a permutation. +fn phys_ordinal(j: usize) -> usize { + (j * 5 + 3) % NPROPS +} +/// Logical property stored at physical ordinal `ord` (inverse: 5 * 13 = 65 = 1 mod 16). +fn logical_at(ord: usize) -> usize { + ((ord + 13) * 13) % NPROPS +} +/// Physical column name: deliberately unlike `p{j}` and "Property {j}". +fn phys_name(ord: usize) -> String { + format!("m{:03}", 417 + ord * 37) +} + +#[derive(Clone, Copy, PartialEq, Eq)] +enum Layout { + Permuted, + /// Permuted plus `p_dup`, a second column carrying the iri of `p15`. + Ambiguous, +} + +fn fixture_schema(layout: Layout) -> Arc { + let mut fields = vec![Field::new("id", DataType::UInt32, false)]; + for ord in 0..NPROPS { + let j = logical_at(ord); + let md = HashMap::from([(IRI_KEY.to_string(), format!("lab:prop/p{j}"))]); + fields.push(Field::new(phys_name(ord), DataType::Int32, false).with_metadata(md)); + } + if layout == Layout::Ambiguous { + let md = HashMap::from([(IRI_KEY.to_string(), "lab:prop/p15".to_string())]); + fields.push(Field::new("p_dup", DataType::Int32, false).with_metadata(md)); + } + Arc::new(Schema::new(fields)) +} + +fn make_batch(layout: Layout, ids: std::ops::Range) -> RecordBatch { + let schema = fixture_schema(layout); + let mut cols: Vec = + vec![Arc::new(UInt32Array::from_iter_values(ids.clone()))]; + for ord in 0..NPROPS { + let j = logical_at(ord); + cols.push(Arc::new(Int32Array::from_iter_values( + ids.clone().map(|id| gen_val(id, j)), + ))); + } + if layout == Layout::Ambiguous { + cols.push(Arc::new(Int32Array::from_iter_values( + ids.clone().map(|id| gen_val(id, 15)), + ))); + } + RecordBatch::try_new(schema, cols).expect("fixture batch") +} + +fn reader( + layout: Layout, + range: std::ops::Range, +) -> RecordBatchIterator>> { + const CHUNK: u32 = 1_000_000; + let (lo, hi) = (range.start, range.end); + let chunks = (hi - lo).div_ceil(CHUNK); + let it = (0..chunks).map(move |c| { + let a = lo + c * CHUNK; + let b = (a + CHUNK).min(hi); + Ok(make_batch(layout, a..b)) + }); + RecordBatchIterator::new(it, fixture_schema(layout)) +} + +/// Written in ascending id order as ONE fragment (`max_rows_per_file` lifted). +async fn write_fixture(uri: &str, layout: Layout, n: u32) -> Result { + let params = WriteParams { + max_rows_per_file: 1 << 40, + ..Default::default() + }; + Dataset::write(reader(layout, 0..n), uri, Some(params)) + .await + .map_err(|e| e.to_string()) +} + +// ----------------------------------------------------------------- ClassView + +struct LabClass { + fields: Vec, +} +impl LabClass { + fn with_fields(n: usize) -> Self { + Self { + fields: (0..n) + .map(|j| FieldRef::new(format!("lab:prop/p{j}"), format!("Property {j}"))) + .collect(), + } + } +} +impl ClassView for LabClass { + fn fields(&self, _class: ClassId) -> &[FieldRef] { + &self.fields + } + fn template(&self, _class: ClassId) -> DisplayTemplate { + DisplayTemplate::Detail + } + fn dolce_category_id(&self, _class: ClassId) -> u8 { + 0 + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +enum Refusal { + AbsentField { pos: u8 }, + Unauthorized { pos: u8 }, + UnknownProperty { pos: u8, iri: String }, + AmbiguousProperty { pos: u8, iri: String, columns: Vec }, + StaleSchema { resolved: u64, current: u64 }, +} + +/// The only path from demanded positions to a column list. On any refusal there +/// is no column list at all: the caller cannot widen to "all columns". +struct Resolution { + version: u64, + positions: Vec, + columns: Vec, +} + +impl Resolution { + fn check_current(&self, latest: u64) -> Result<(), Refusal> { + if latest != self.version { + return Err(Refusal::StaleSchema { + resolved: self.version, + current: latest, + }); + } + Ok(()) + } +} + +/// position -> `FieldRef.predicate_iri` -> exactly one schema field whose +/// metadata `predicate_iri` matches. `at` is the handle pinned at the attested +/// version; its schema is the one read. +fn resolve( + view: &dyn ClassView, + class: ClassId, + demanded: &WideFieldMask, + presence: FieldMask, + permit: &WideFieldMask, + at: &Dataset, +) -> Result { + let fields = view.fields(class); + let schema = at.schema(); + let mut out = Resolution { + version: at.version().version, + positions: Vec::new(), + columns: Vec::new(), + }; + for p in 0..=255u8 { + if !demanded.has(p) { + continue; + } + if usize::from(p) >= fields.len() || !presence.has(p) { + return Err(Refusal::AbsentField { pos: p }); + } + if !permit.has(p) { + return Err(Refusal::Unauthorized { pos: p }); + } + let iri = &fields[usize::from(p)].predicate_iri; + let hits: Vec<&str> = schema + .fields + .iter() + .filter(|f| f.metadata.get(IRI_KEY).map(String::as_str) == Some(iri.as_str())) + .map(|f| f.name.as_str()) + .collect(); + match hits.len() { + 0 => { + return Err(Refusal::UnknownProperty { + pos: p, + iri: iri.clone(), + }); + } + 1 => { + out.positions.push(p); + out.columns.push(hits[0].to_string()); + } + _ => { + return Err(Refusal::AmbiguousProperty { + pos: p, + iri: iri.clone(), + columns: hits.iter().map(|s| s.to_string()).collect(), + }); + } + } + } + Ok(out) +} + +// ----------------------------------------------------------------- scanning + +#[derive(Debug, Clone, Copy, Default)] +struct Io { + rows_scanned: usize, + bytes_read: usize, +} + +/// Same callback pattern as `lance_store.rs:162-175`. +fn stats_sink() -> (Arc>, ExecutionStatsCallback) { + let stats: Arc> = Arc::default(); + let sink = stats.clone(); + let cb: ExecutionStatsCallback = Arc::new(move |c| { + let mut io = sink.lock().expect("stats lock"); + io.bytes_read = c.bytes_read; + io.rows_scanned = c.all_counts.get("rows_scanned").copied().unwrap_or(0); + }); + (stats, cb) +} + +async fn scan( + ds: &Dataset, + cols: &[String], + with_addr: bool, + mask: Option, +) -> Result<(RecordBatch, Io), String> { + let (stats, cb) = stats_sink(); + let mut s = ds.scan(); + s.project(cols).map_err(|e| e.to_string())?; + if with_addr { + s.with_row_address(); + } + if let Some(m) = mask { + s.with_row_addr_prefilter(m); + } + s.scan_stats_callback(cb); + let b = s.try_into_batch().await.map_err(|e| e.to_string())?; + let io = *stats.lock().expect("stats lock"); + Ok((b, io)) +} + +fn i32col<'a>(b: &'a RecordBatch, name: &str) -> &'a [i32] { + let a = b + .column_by_name(name) + .and_then(|c| c.as_any().downcast_ref::()) + .unwrap_or_else(|| panic!("i32 column {name}")); + &a.values()[..] +} +fn u32col<'a>(b: &'a RecordBatch, name: &str) -> &'a [u32] { + let a = b + .column_by_name(name) + .and_then(|c| c.as_any().downcast_ref::()) + .unwrap_or_else(|| panic!("u32 column {name}")); + &a.values()[..] +} +fn addrcol(b: &RecordBatch) -> &[u64] { + let a = b + .column_by_name("_rowaddr") + .and_then(|c| c.as_any().downcast_ref::()) + .expect("_rowaddr"); + &a.values()[..] +} + +fn push_unique(v: &mut Vec, s: &str) { + if !v.iter().any(|x| x == s) { + v.push(s.to_string()); + } +} + +// -------------------------------------------------------------------- WHERE + +#[derive(Clone, Copy)] +enum Where { + /// `p0 < t AND p1 < u` (scattered). + Scatter { t: i32, u: i32 }, + /// `id in [lo, hi)` (clustered). + Range { lo: u32, hi: u32 }, +} +impl Where { + fn positions(&self) -> WideFieldMask { + match self { + Where::Scatter { .. } => WideFieldMask::from_positions(&[0, 1]), + Where::Range { .. } => WideFieldMask::EMPTY, + } + } +} + +fn eval_scatter(p0: &[i32], p1: &[i32], t: i32, u: i32) -> Vec { + let mut out = vec![0u64; p0.len().div_ceil(64)]; + for (wi, (a, b)) in p0.chunks(64).zip(p1.chunks(64)).enumerate() { + let mut word = 0u64; + for (bit, (&x, &y)) in a.iter().zip(b).enumerate() { + word |= u64::from((x < t) & (y < u)) << bit; + } + out[wi] = word; + } + out +} +fn eval_range(id: &[u32], lo: u32, hi: u32) -> Vec { + let mut out = vec![0u64; id.len().div_ceil(64)]; + for (wi, a) in id.chunks(64).enumerate() { + let mut word = 0u64; + for (bit, &x) in a.iter().enumerate() { + word |= u64::from((x >= lo) & (x < hi)) << bit; + } + out[wi] = word; + } + out +} +fn eval_where(w: &Where, b: &RecordBatch, res_w: &Resolution) -> Vec { + match *w { + Where::Scatter { t, u } => eval_scatter( + i32col(b, &res_w.columns[0]), + i32col(b, &res_w.columns[1]), + t, + u, + ), + Where::Range { lo, hi } => eval_range(u32col(b, "id"), lo, hi), + } +} +fn where_cols(w: &Where, res_w: &Resolution) -> Vec { + match w { + Where::Scatter { .. } => res_w.columns.clone(), + Where::Range { .. } => vec!["id".to_string()], + } +} + +// --------------------------------------------------------------------- fold + +fn fold_mask(bits: &[u64], n: usize, cols: &[&[i32]]) -> (u64, Vec) { + let count = bits.iter().map(|w| u64::from(w.count_ones())).sum(); + let sums = cols + .iter() + .map(|c| { + let mut s = 0i64; + for_each_set(bits, n, |i| s += i64::from(c[i])); + s + }) + .collect(); + (count, sums) +} +fn fold_all(cols: &[&[i32]]) -> Vec { + cols.iter() + .map(|c| c.iter().map(|&x| i64::from(x)).sum()) + .collect() +} + +// ------------------------------------------------------------------- oracle + +struct Oracle { + bits: Vec, + count: u64, + sums: Vec, + ids: Vec, +} + +/// Scalar loop over the generator formula; never reads Lance. +fn oracle(n: u32, w: &Where, dem: &[u8]) -> Oracle { + let mut bits = vec![0u64; (n as usize).div_ceil(64)]; + let mut count = 0u64; + let mut sums = vec![0i64; dem.len()]; + for id in 0..n { + let sel = match *w { + Where::Scatter { t, u } => gen_val(id, 0) < t && gen_val(id, 1) < u, + Where::Range { lo, hi } => id >= lo && id < hi, + }; + if sel { + bits[(id / 64) as usize] |= 1u64 << (id % 64); + count += 1; + for (s, &j) in sums.iter_mut().zip(dem) { + *s += i64::from(gen_val(id, usize::from(j))); + } + } + } + let mut ids = Vec::with_capacity(count as usize); + for_each_set(&bits, n as usize, |i| ids.push(i as u32)); + Oracle { bits, count, sums, ids } +} + +/// Smallest-error `T` (with `U = T`) per target fraction, from the exact 2-D +/// histogram of (p0, p1) over all rows. +fn calibrate(n: u32, targets: &[f64]) -> Vec<(i32, f64)> { + const W: usize = 1001; + let mut pre = vec![0u64; W * W]; + for id in 0..n { + let (a, b) = (gen_val(id, 0) as usize, gen_val(id, 1) as usize); + pre[(a + 1) * W + (b + 1)] += 1; + } + for a in 1..W { + for b in 1..W { + pre[a * W + b] += pre[(a - 1) * W + b] + pre[a * W + b - 1] - pre[(a - 1) * W + b - 1]; + } + } + targets + .iter() + .map(|&f| { + let best = (1..=1000usize) + .min_by(|&x, &y| { + let ex = (pre[x * W + x] as f64 / f64::from(n) - f).abs(); + let ey = (pre[y * W + y] as f64 / f64::from(n) - f).abs(); + ex.partial_cmp(&ey).expect("finite") + }) + .expect("range"); + (best as i32, pre[best * W + best] as f64 / f64::from(n)) + }) + .collect() +} + +// ------------------------------------------------------------ attested lane + +/// Reads the keys once (the cold cost) and attests their order, as +/// `addressed::attest` does (`addressed.rs:101-143`), over the `id` column. +async fn attest(ds: &Dataset) -> Result<(SealedFacetLane, OrderedLaneWitness), String> { + let (b, _) = scan(ds, &["id".to_string()], true, None).await?; + let id = u32col(&b, "id"); + let addr = addrcol(&b); + if !(0..b.num_rows()).all(|i| addr[i] == i as u64) { + return Err("NotContiguous: table is not one contiguous fragment".into()); + } + // The prefilter is keyed in `_rowid` space; the lane positions are + // `_rowaddr`. They coincide only without stable row ids. Assert it. + let mut sc = ds.scan(); + sc.project::<&str>(&[]).map_err(|e| e.to_string())?; + sc.with_row_id(); + sc.with_row_address(); + let rb = sc.try_into_batch().await.map_err(|e| e.to_string())?; + let rid = rb + .column_by_name("_rowid") + .and_then(|c| c.as_any().downcast_ref::()) + .ok_or("no _rowid column")?; + let rad = rb + .column_by_name("_rowaddr") + .and_then(|c| c.as_any().downcast_ref::()) + .ok_or("no _rowaddr column")?; + if rid.values() != rad.values() { + return Err("RowIdSpace: _rowid != _rowaddr (stable row ids?); the lane cannot key the prefilter".into()); + } + let keys = id.iter().map(|&v| key(v, 0)).collect(); + let lane = SealedFacetLane::attest_sorted(keys, ds.version().version) + .map_err(|e| format!("Witness({e:?})"))?; + let w = lane.witness(); + Ok((lane, w)) +} + +/// Bits over the returned rows (by position) whose address lies in `exact`. +fn keep_by_ranges(addr: &[u64], exact: &[(u32, u32)]) -> Result, String> { + let mut bits = vec![0u64; addr.len().div_ceil(64)]; + let mut r = 0usize; + let mut prev = 0u64; + for (i, &a) in addr.iter().enumerate() { + if i > 0 && a < prev { + return Err("returned rows are not in ascending address order".into()); + } + prev = a; + while r < exact.len() && u64::from(exact[r].1) <= a { + r += 1; + } + if r < exact.len() && a >= u64::from(exact[r].0) { + bits[i / 64] |= 1u64 << (i % 64); + } + } + Ok(bits) +} + +// --------------------------------------------------------------------- arms + +#[derive(Clone, Copy, PartialEq, Eq)] +enum Arm { + A, + BAllow, + BBlock, + CExact, + CDefault, +} +impl Arm { + fn name(self) -> &'static str { + match self { + Arm::A => "A-full", + Arm::BAllow => "B-allow", + Arm::BBlock => "B-block", + Arm::CExact => "C-exact", + Arm::CDefault => "C-default", + } + } +} + +// indices into the timing array (microseconds) +const T_WHERE: usize = 0; +const T_RESOLVE: usize = 1; +const T_ROUTE: usize = 2; +const T_INGRESS: usize = 3; +const T_LANCE: usize = 4; +const T_FOLD: usize = 5; +const T_TOTAL: usize = 6; + +struct Out { + t: [f64; 7], + io: Io, + count: u64, + sums: Vec, + mask_bytes: usize, + read: String, +} + +struct Env { + n: u32, + ds: Dataset, + /// The #1633 addressed relation: dataset uri + attested lane + witness. + rel: AddressedRelation, + attest_cold_us: f64, + view: LabClass, + presence: FieldMask, + permit_all: WideFieldMask, + /// Every column, every row, read once: the projection oracle. + full: RecordBatch, +} + +struct Case { + layout: &'static str, + frac_target: f64, + w: Where, + /// The DR-side identities (sorted): GIVEN, taken from the scalar oracle. + ids: Vec, + demanded: WideFieldMask, +} + +fn us(t: Instant) -> f64 { + t.elapsed().as_secs_f64() * 1e6 +} + +async fn run_once(env: &Env, c: &Case, arm: Arm) -> Result { + let t_all = Instant::now(); + let mut t = [0f64; 7]; + + // ClassView resolution (where positions, then demanded positions). + let s = Instant::now(); + let res_w = resolve( + &env.view, + CLASS, + &c.w.positions(), + env.presence, + &env.permit_all, + &env.ds, + ) + .map_err(|e| format!("{e:?}"))?; + let res_d = resolve( + &env.view, + CLASS, + &c.demanded, + env.presence, + &env.permit_all, + &env.ds, + ) + .map_err(|e| format!("{e:?}"))?; + t[T_RESOLVE] = us(s); + + // The attested version must still be the current one (an I/O call). + let s = Instant::now(); + let latest = env.ds.latest_version_id().await.map_err(|e| e.to_string())?; + res_w.check_current(latest).map_err(|e| format!("{e:?}"))?; + res_d.check_current(latest).map_err(|e| format!("{e:?}"))?; + t[T_LANCE] += us(s); + + let mut io = Io::default(); + let add_io = |io: &mut Io, x: Io| { + io.rows_scanned += x.rows_scanned; + io.bytes_read += x.bytes_read; + }; + let mut mask_bytes = 0usize; + let mut read = String::from("-"); + let (count, sums); + + match arm { + Arm::A => { + let mut cols = where_cols(&c.w, &res_w); + for d in &res_d.columns { + push_unique(&mut cols, d); + } + let s = Instant::now(); + let (b, x) = scan(&env.ds, &cols, false, None).await?; + t[T_LANCE] += us(s); + add_io(&mut io, x); + let s = Instant::now(); + let where_bits = eval_where(&c.w, &b, &res_w); + t[T_WHERE] = us(s); + let s = Instant::now(); + let dcols: Vec<&[i32]> = res_d.columns.iter().map(|d| i32col(&b, d)).collect(); + let (cn, sm) = fold_mask(&where_bits, b.num_rows(), &dcols); + t[T_FOLD] = us(s); + count = cn; + sums = sm; + read = "full".into(); + } + Arm::BAllow | Arm::BBlock => { + // Phase 1: the where-columns with their addresses. + let wc = where_cols(&c.w, &res_w); + let s = Instant::now(); + let (b1, x1) = scan(&env.ds, &wc, true, None).await?; + t[T_LANCE] += us(s); + add_io(&mut io, x1); + let s = Instant::now(); + let where_bits = eval_where(&c.w, &b1, &res_w); + t[T_WHERE] = us(s); + + // Phase 2a: MASK INGRESS (copies addresses into RowAddrTreeMap). + let s = Instant::now(); + let addr = addrcol(&b1); + let mask = if arm == Arm::BAllow { + let mut list = Vec::new(); + for_each_set(&where_bits, b1.num_rows(), |i| list.push(addr[i])); + let tree = RowAddrTreeMap::from_iter(list); + mask_bytes = tree.serialized_size(); + read = "allow".into(); + RowAddrMask::from_allowed(tree) + } else { + let mut inv: Vec = where_bits.iter().map(|w| !w).collect(); + if let Some(last) = inv.last_mut() { + let rem = b1.num_rows() % 64; + if rem != 0 { + *last &= (1u64 << rem) - 1; + } + } + let mut list = Vec::new(); + for_each_set(&inv, b1.num_rows(), |i| list.push(addr[i])); + let tree = RowAddrTreeMap::from_iter(list); + mask_bytes = tree.serialized_size(); + read = "block".into(); + RowAddrMask::from_block(tree) + }; + t[T_INGRESS] = us(s); + + // Phase 2b: prefilter scan, resolved demanded columns only. + let s = Instant::now(); + let (b2, x2) = scan(&env.ds, &res_d.columns, false, Some(mask)).await?; + t[T_LANCE] += us(s); + add_io(&mut io, x2); + let s = Instant::now(); + let dcols: Vec<&[i32]> = res_d.columns.iter().map(|d| i32col(&b2, d)).collect(); + sums = fold_all(&dcols); + count = b2.num_rows() as u64; + t[T_FOLD] = us(s); + } + Arm::CExact | Arm::CDefault => { + let policy = if arm == Arm::CExact { + ReadPolicy::EXACT + } else { + ReadPolicy::DEFAULT + }; + // The ids are GIVEN (DR -> Lance witness BLOCKED_D4): the oracle's + // identities, sorted, standing in for the DR selection. + let ids = &c.ids; + check_fresh(&env.rel, env.ds.uri(), latest).map_err(|e| format!("{e:?}"))?; + let s = Instant::now(); + let (exact, _rows) = ranges(&env.rel, ids).map_err(|e| format!("{e:?}"))?; + let (how, planned) = plan_read(&exact, env.rel.lane.n_rows(), policy); + t[T_ROUTE] = us(s); + + let s = Instant::now(); + let mask = match how { + Read::Full => None, + Read::Ranges | Read::Coalesced => { + // Bytes measured on the same tree `range_mask` builds. + mask_bytes = range_tree(&planned).serialized_size(); + Some(range_mask(&planned)) + } + }; + t[T_INGRESS] = us(s); + read = format!("{how:?}/{}r", planned.len()); + + let need_addr = how != Read::Ranges; + let s = Instant::now(); + let (b, x) = scan(&env.ds, &res_d.columns, need_addr, mask).await?; + t[T_LANCE] += us(s); + add_io(&mut io, x); + + let s = Instant::now(); + let dcols: Vec<&[i32]> = res_d.columns.iter().map(|d| i32col(&b, d)).collect(); + if need_addr { + let keep = keep_by_ranges(addrcol(&b), &exact)?; + let (cn, sm) = fold_mask(&keep, b.num_rows(), &dcols); + count = cn; + sums = sm; + } else { + sums = fold_all(&dcols); + count = b.num_rows() as u64; + } + t[T_FOLD] = us(s); + } + } + t[T_TOTAL] = us(t_all); + Ok(Out { t, io, count, sums, mask_bytes, read }) +} + +fn median(mut v: Vec) -> f64 { + v.sort_by(|a, b| a.partial_cmp(b).expect("finite")); + v[v.len() / 2] +} + +fn gate(t: &[f64; 7]) -> String { + let mut bad = Vec::new(); + for (i, nm) in [ + (T_WHERE, "where"), + (T_RESOLVE, "resolve"), + (T_ROUTE, "route"), + (T_FOLD, "fold"), + ] { + if t[i] >= 1000.0 { + bad.push(nm); + } + } + if bad.is_empty() { + "in-fold<1000us; lance/ingress/cold=COLD/IO(reported)".into() + } else { + format!( + "FAILED-GATE(reported):{}; lance/ingress/cold=COLD/IO(reported)", + bad.join(",") + ) + } +} + +struct Row { + arm: &'static str, + layout: &'static str, + frac_target: f64, + frac_actual: f64, + k: usize, + t: [f64; 7], + cold_total: f64, + io: Io, + selected: u64, + bytes_vs_a: f64, + mask_bytes: usize, + read: String, + gate: String, +} + +// ------------------------------------------------------ refusals & traps + +fn check(name: &str, ok: bool, fails: &mut usize) { + println!(" [{}] {name}", if ok { "ok " } else { "FAIL" }); + if !ok { + *fails += 1; + } +} + +/// Every refusal paired with a success control; no refusal yields a column list. +async fn refusal_tests( + small: &Dataset, + amb: &Dataset, + small_uri: &str, + fails: &mut usize, +) -> Result<(), String> { + println!("\n== ClassView refusals (each with a paired success control) =="); + let view = LabClass::with_fields(NPROPS); + let presence = (0..NPROPS as u8).fold(FieldMask::EMPTY, |m, p| m.with(p)); + let all = WideFieldMask::full_for(NPROPS); + let dem = WideFieldMask::from_positions(&[2, 15]); + let width = small.schema().fields.len(); + + // Control: the success path projects exactly the demanded columns, not all. + let ok = resolve(&view, CLASS, &dem, presence, &all, small); + let ok_cols = ok.as_ref().map(|r| r.columns.clone()).unwrap_or_default(); + check( + "control: resolve -> exactly the 2 demanded columns (schema has more)", + ok.is_ok() && ok_cols.len() == 2 && ok_cols.len() < width, + fails, + ); + check( + "control: resolved names equal the fixture truth (not label, not ordinal)", + ok_cols == vec![phys_name(phys_ordinal(2)), phys_name(phys_ordinal(15))], + fails, + ); + + // AbsentField: position not in the class's presence mask. + let no5 = (0..NPROPS as u8) + .filter(|&p| p != 5) + .fold(FieldMask::EMPTY, |m, p| m.with(p)); + let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[5]), no5, &all, small); + check( + "AbsentField refused, no column list", + matches!(r, Err(Refusal::AbsentField { pos: 5 })), + fails, + ); + let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[5]), presence, &all, small); + check("AbsentField control: present position resolves", r.is_ok(), fails); + + // Unauthorized: position not in the caller's permit mask. + let permit_no7 = WideFieldMask::from_positions(&[0, 1, 2, 3, 4, 5, 6, 8, 9]); + let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[7]), presence, &permit_no7, small); + check( + "Unauthorized refused, no column list", + matches!(r, Err(Refusal::Unauthorized { pos: 7 })), + fails, + ); + let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[6]), presence, &permit_no7, small); + check("Unauthorized control: permitted position resolves", r.is_ok(), fails); + + // UnknownProperty: the class names p16, no column carries its iri. + let view17 = LabClass::with_fields(NPROPS + 1); + let presence17 = (0..=NPROPS as u8).fold(FieldMask::EMPTY, |m, p| m.with(p)); + let all17 = WideFieldMask::full_for(NPROPS + 1); + let r = resolve(&view17, CLASS, &WideFieldMask::from_positions(&[16]), presence17, &all17, small); + check( + "UnknownProperty refused, no column list", + matches!(&r, Err(Refusal::UnknownProperty { pos: 16, .. })), + fails, + ); + let r = resolve(&view17, CLASS, &WideFieldMask::from_positions(&[15]), presence17, &all17, small); + check("UnknownProperty control: known position resolves", r.is_ok(), fails); + + // AmbiguousProperty: the second dataset carries p_dup with p15's iri. + let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[15]), presence, &all, amb); + check( + "AmbiguousProperty refused (2 columns), no column list", + matches!(&r, Err(Refusal::AmbiguousProperty { columns, .. }) if columns.len() == 2), + fails, + ); + let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[14]), presence, &all, amb); + check("AmbiguousProperty control: unambiguous position resolves", r.is_ok(), fails); + + // The trap check: ordinal / label mapping gives a DIFFERENT answer. + println!("\n== Mapping traps (the test would catch a positional or label mapping) =="); + let names: Vec = small.schema().fields.iter().map(|f| f.name.clone()).collect(); + let (b, _) = scan(small, &names, false, None).await?; + let n_small = b.num_rows() as u32; + let mut ordinal_wrong = 0usize; + let mut label_misses = 0usize; + for j in 0..NPROPS { + let truth: i64 = (0..n_small).map(|id| i64::from(gen_val(id, j))).sum(); + // position == physical column ordinal (after id): the forbidden shortcut. + let by_ordinal: i64 = i32col(&b, &names[1 + j]).iter().map(|&x| i64::from(x)).sum(); + if by_ordinal != truth { + ordinal_wrong += 1; + } + // label == column name: the other forbidden shortcut. + let label = view.field_label(CLASS, j as u8).expect("label"); + if !names.iter().any(|nm| nm == label) { + label_misses += 1; + } + // the resolver's answer + let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[j as u8]), presence, &all, small) + .map_err(|e| format!("{e:?}"))?; + let via: i64 = i32col(&b, &r.columns[0]).iter().map(|&x| i64::from(x)).sum(); + if via != truth { + return Err(format!("resolver answer differs from the generator at p{j}")); + } + } + println!(" ordinal mapping wrong on {ordinal_wrong}/{NPROPS} positions; label mapping finds no column on {label_misses}/{NPROPS}"); + check("ordinal mapping gives a different answer (trap is live)", ordinal_wrong > 0, fails); + check("label mapping finds no physical column", label_misses == NPROPS, fails); + + // StaleSchema and the stale lane, on the small dataset (mutated last). + println!("\n== Staleness (dataset appended after resolution / attest) =="); + let res = resolve(&view, CLASS, &dem, presence, &all, small).map_err(|e| format!("{e:?}"))?; + let (lane, w) = attest(small).await?; + let rel = AddressedRelation { rel: RelId(0), uri: small.uri().to_string(), lane, witness: w }; + let (lane, w) = (&rel.lane, &rel.witness); + let latest = small.latest_version_id().await.map_err(|e| e.to_string())?; + check("control: schema resolution current before append", res.check_current(latest).is_ok(), fails); + check("control: lane fresh before append", check_fresh(&rel, small.uri(), latest).is_ok(), fails); + check( + "control: seek under the real witness runs", + lane.seek_from(w, 0, &leading(3).lo_key()).is_ok(), + fails, + ); + let mut grown = small.clone(); + grown + .append(reader_range_fixture(n_small, n_small + 16), None) + .await + .map_err(|e| e.to_string())?; + let latest2 = grown.latest_version_id().await.map_err(|e| e.to_string())?; + let r = res.check_current(latest2); + check( + "StaleSchema refused after append", + matches!(r, Err(Refusal::StaleSchema { resolved, current }) if current == resolved + 1), + fails, + ); + check("stale lane refused after append", check_fresh(&rel, grown.uri(), latest2).is_err(), fails); + check("other dataset refused", check_fresh(&rel, "memory://elsewhere", latest).is_err(), fails); + let forged = OrderedLaneWitness::forged(latest2, lane.n_rows(), w.digest()); + check( + "forged (newer-version) witness refused by seek_from", + lane.seek_from(&forged, 0, &leading(3).lo_key()).is_err(), + fails, + ); + let _ = small_uri; + Ok(()) +} + +fn reader_range_fixture( + lo: u32, + hi: u32, +) -> RecordBatchIterator>> { + reader(Layout::Permuted, lo..hi) +} + +/// D4: no type binds a DR `Frame` to a Lance dataset version. Source-backed +/// trace (P2 Lance trace, `results/.../REPORT.md`): `lance-graph-dt64` carries +/// no `OrderedLaneWitness`/`SealedFacetLane`/Lance version, and the #1788 +/// single-authority decision (S-INGRESS) is still open. So arm C stops at the +/// boundary: its ids are GIVEN, never composed from a DR ordinal. +fn d4_boundary() { + println!( + "BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / single authority open, #1788); \ + arm C's ids are given directly; no DR ordinal is composed with _rowid" + ); +} + +// --------------------------------------------------------------------- main + +#[tokio::main(flavor = "multi_thread")] +async fn main() { + let args: Vec = std::env::args().collect(); + if args.len() < 2 { + eprintln!("usage: where_lance_arm [--n N] [--reps R]"); + std::process::exit(2); + } + let out_dir = args[1].clone(); + let mut n: u32 = 1_000_000; + let mut reps: usize = 5; + let mut i = 2; + while i < args.len() { + match args[i].as_str() { + "--n" => { + n = args[i + 1].replace('_', "").parse().expect("--n"); + i += 2; + } + "--reps" => { + reps = args[i + 1].parse().expect("--reps"); + i += 2; + } + other => { + eprintln!("unknown arg {other}"); + std::process::exit(2); + } + } + } + if let Err(e) = real_main(&out_dir, n, reps.max(1)).await { + eprintln!("ERROR: {e}"); + std::process::exit(1); + } +} + +async fn real_main(out_dir: &str, n: u32, reps: usize) -> Result<(), String> { + println!("# where_lance_arm LAB, Lance-backed, n={n}, warm reps={reps}, seed={SEED:#x}"); + println!("# mask ingress COPIES addresses into RowAddrTreeMap (S-INGRESS open, not zero-copy)"); + d4_boundary(); + + let tmp = tempfile::tempdir().map_err(|e| e.to_string())?; + let uri = |nm: &str| tmp.path().join(nm).to_str().expect("utf8 path").to_string(); + + // Fixtures. + let main_uri = uri("main.lance"); + let small_uri = uri("small.lance"); + let amb_uri = uri("amb.lance"); + write_fixture(&main_uri, Layout::Permuted, n).await?; + write_fixture(&small_uri, Layout::Permuted, 4096).await?; + write_fixture(&amb_uri, Layout::Ambiguous, 4096).await?; + let ds = Dataset::open(&main_uri).await.map_err(|e| e.to_string())?; + let small = Dataset::open(&small_uri).await.map_err(|e| e.to_string())?; + let amb = Dataset::open(&amb_uri).await.map_err(|e| e.to_string())?; + + // Refusals first: they mutate only the small dataset. + let mut fails = 0usize; + refusal_tests(&small, &amb, &small_uri, &mut fails).await?; + + // Attest the main dataset (cold) and read the projection oracle once. + let s = Instant::now(); + let (lane, witness) = attest(&ds).await?; + let attest_cold_us = us(s); + println!("\n# attest (cold, once per version): {attest_cold_us:.1} us [COLD/IO, reported]"); + let names: Vec = ds.schema().fields.iter().map(|f| f.name.clone()).collect(); + let (full, _) = scan(&ds, &names, false, None).await?; + let presence = (0..NPROPS as u8).fold(FieldMask::EMPTY, |m, p| m.with(p)); + let uri_main = ds.uri().to_string(); + let env = Env { + n, + ds, + rel: AddressedRelation { rel: RelId(0), uri: uri_main, lane, witness }, + attest_cold_us, + view: LabClass::with_fields(NPROPS), + presence, + permit_all: WideFieldMask::full_for(NPROPS), + full, + }; + + // Cases. + let fracs = [0.001, 0.01, 0.1, 0.5]; + let cal = calibrate(n, &fracs); + let mut sm = SplitMix64(SEED); + let ks: [(usize, &[u8]); 3] = [ + (1, &[7u8][..]), + (4, &[0u8, 5, 10, 15][..]), + (16, &[0u8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15][..]), + ]; + let mut rows: Vec = Vec::new(); + println!("\n== Measurements (us, median of {reps} warm runs; cold = first run) =="); + for (fi, &f) in fracs.iter().enumerate() { + let (t_thr, _) = cal[fi]; + let len = ((f * f64::from(n)).round() as u32).max(1); + let lo = (sm.next() % u64::from(n - len + 1)) as u32; + for (layout, w) in [ + ("scattered", Where::Scatter { t: t_thr, u: t_thr }), + ("clustered", Where::Range { lo, hi: lo + len }), + ] { + for &(k, dem) in &ks { + let orc = oracle(n, &w, dem); + if orc.count == 0 { + println!("skip {layout} f={f}: empty selection"); + continue; + } + let case = Case { + layout, + frac_target: f, + w, + ids: orc.ids.clone(), + demanded: WideFieldMask::from_positions(dem), + }; + let frac_actual = orc.count as f64 / f64::from(n); + + // Projection oracle: full read of all columns, fixture-truth names. + let proj_sums: Vec = dem + .iter() + .map(|&j| { + let col = i32col(&env.full, &phys_name(phys_ordinal(usize::from(j)))); + let mut s = 0i64; + for_each_set(&orc.bits, n as usize, |i| s += i64::from(col[i])); + s + }) + .collect(); + if proj_sums != orc.sums { + return Err(format!( + "projection oracle != generator oracle ({layout} f={f} k={k})" + )); + } + + let mut arms = vec![Arm::A, Arm::BAllow]; + if (f - 0.5).abs() < 1e-9 { + arms.push(Arm::BBlock); + } + arms.push(Arm::CExact); + arms.push(Arm::CDefault); + + let mut a_bytes = 0usize; + let mut first_line = true; + for arm in arms { + let cold = run_once(&env, &case, arm).await?; + let mut runs: Vec<[f64; 7]> = Vec::new(); + let mut last = cold; + let cold_total = last.t[T_TOTAL]; + for _ in 0..reps { + last = run_once(&env, &case, arm).await?; + runs.push(last.t); + } + // Oracle checks on the last warm run. + if last.count != orc.count || last.sums != orc.sums { + eprintln!( + "MISMATCH {} {layout} f={f} k={k}: count {} vs {}, sums {:?} vs {:?}", + arm.name(), + last.count, + orc.count, + last.sums, + orc.sums + ); + fails += 1; + } + let mut t = [0f64; 7]; + for (idx, slot) in t.iter_mut().enumerate() { + *slot = median(runs.iter().map(|r| r[idx]).collect()); + } + if arm == Arm::A { + a_bytes = last.io.bytes_read; + } + let bytes_vs_a = if a_bytes == 0 { + 0.0 + } else { + 100.0 * last.io.bytes_read as f64 / a_bytes as f64 + }; + if first_line { + println!( + "-- {layout} target {:.1}% actual {:.3}% k={k} | demanded(WideFieldMask)={} where_bits(popcount)={} dr_ids={} (ids given, BLOCKED_D4)", + f * 100.0, + frac_actual * 100.0, + case.demanded.count(), + orc.count, + orc.ids.len() + ); + first_line = false; + } + let g = gate(&t); + println!( + " {:<9} Lance-backed | where {:>9.1} resolve {:>7.1} route {:>9.1} ingress {:>10.1} lance {:>10.1} fold {:>9.1} total {:>10.1} cold {:>10.1} | scanned {:>9} sel {:>8} bytes {:>10} ({:>5.1}% of A) row_addr_mask {:>9}B read {} | {}", + arm.name(), + t[T_WHERE], + t[T_RESOLVE], + t[T_ROUTE], + t[T_INGRESS], + t[T_LANCE], + t[T_FOLD], + t[T_TOTAL], + cold_total, + last.io.rows_scanned, + last.count, + last.io.bytes_read, + bytes_vs_a, + last.mask_bytes, + last.read, + g + ); + rows.push(Row { + arm: arm.name(), + layout: case.layout, + frac_target: case.frac_target, + frac_actual, + k, + t, + cold_total, + io: last.io, + selected: last.count, + bytes_vs_a, + mask_bytes: last.mask_bytes, + read: last.read.clone(), + gate: g, + }); + } + } + } + } + + // JSON. + let dir = std::path::Path::new(out_dir) + .join("lance_arm") + .join(format!("n{n}")); + std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?; + let mut js = String::new(); + js.push_str(&format!( + "{{\n \"label\": \"Lance-backed LAB\", \"n\": {n}, \"reps\": {reps}, \"attest_cold_us\": {:.1},\n \"owner_gates\": [\"S-INGRESS\", \"D4\"],\n \"rows\": [\n", + env.attest_cold_us + )); + for (i, r) in rows.iter().enumerate() { + js.push_str(&format!( + " {{\"arm\":\"{}\",\"layout\":\"{}\",\"frac_target\":{},\"frac_actual\":{:.6},\"k\":{},\"us\":{{\"where\":{:.1},\"resolve\":{:.1},\"route\":{:.1},\"ingress\":{:.1},\"lance\":{:.1},\"fold\":{:.1},\"total\":{:.1},\"cold_total\":{:.1}}},\"rows_scanned\":{},\"rows_selected\":{},\"bytes_read\":{},\"bytes_vs_A_pct\":{:.1},\"row_addr_mask_serialized_bytes\":{},\"read\":\"{}\",\"gate\":\"{}\"}}{}\n", + r.arm, r.layout, r.frac_target, r.frac_actual, r.k, + r.t[T_WHERE], r.t[T_RESOLVE], r.t[T_ROUTE], r.t[T_INGRESS], r.t[T_LANCE], r.t[T_FOLD], r.t[T_TOTAL], r.cold_total, + r.io.rows_scanned, r.selected, r.io.bytes_read, r.bytes_vs_a, r.mask_bytes, r.read, r.gate, + if i + 1 == rows.len() { "" } else { "," } + )); + } + js.push_str(" ]\n}\n"); + let path = dir.join("lance_arm.json"); + std::fs::write(&path, js).map_err(|e| e.to_string())?; + println!("\n# wrote {}", path.display()); + + if fails > 0 { + eprintln!("FAILED: {fails} check(s)/oracle mismatch(es)"); + std::process::exit(1); + } + println!("# all oracle and refusal checks passed"); + Ok(()) +} diff --git a/crates/crepe-plan-probe/src/addressed.rs b/crates/crepe-plan-probe/src/addressed.rs index 595f656c0..b90ebaa16 100644 --- a/crates/crepe-plan-probe/src/addressed.rs +++ b/crates/crepe-plan-probe/src/addressed.rs @@ -234,7 +234,7 @@ pub fn plan_read(ranges: &[(u32, u32)], n_rows: u32, p: ReadPolicy) -> (Read, Ve /// The rows of every leading value in `wanted` (sorted, deduplicated) as lane /// ranges, found with galloping seeks from the previous range's end. -fn ranges( +pub fn ranges( a: &AddressedRelation, wanted: &[u32], ) -> Result<(Vec<(u32, u32)>, usize), AddressedRefusal> { @@ -262,12 +262,43 @@ fn ranges( Ok((out, rows)) } -fn range_mask(ranges: &[(u32, u32)]) -> RowAddrMask { +/// The lane ranges as Lance's row-address tree, one `insert_range` per range. +/// Lance owns the result: building it copies the ranges (seam S-INGRESS). +pub fn range_tree(ranges: &[(u32, u32)]) -> RowAddrTreeMap { let mut m = RowAddrTreeMap::new(); for &(lo, hi) in ranges { m.insert_range(u64::from(lo)..u64::from(hi)); } - RowAddrMask::from_allowed(m) + m +} + +/// [`range_tree`] as an ALLOW mask for `with_row_addr_prefilter`. +pub fn range_mask(ranges: &[(u32, u32)]) -> RowAddrMask { + RowAddrMask::from_allowed(range_tree(ranges)) +} + +/// Refuses a lane read against another dataset or a dataset that moved on +/// since the lane was attested. +pub fn check_fresh( + a: &AddressedRelation, + uri: &str, + current: u64, +) -> Result<(), AddressedRefusal> { + if uri != a.uri { + return Err(AddressedRefusal::OtherDataset { + rel: a.rel, + attested: a.uri.clone(), + current: uri.to_string(), + }); + } + if current != a.lane.version() { + return Err(AddressedRefusal::Stale { + rel: a.rel, + attested: a.lane.version(), + current, + }); + } + Ok(()) } fn lane_for( @@ -290,21 +321,7 @@ async fn current_lane<'a>( let rel = plan.sides[i].key.rel; let a = lane_for(lanes, rel)?; let ds = store.dataset(rel).await?; - if ds.uri() != a.uri { - return Err(AddressedRefusal::OtherDataset { - rel, - attested: a.uri.clone(), - current: ds.uri().to_string(), - }); - } - let current = ds.version().version; - if current != a.lane.version() { - return Err(AddressedRefusal::Stale { - rel, - attested: a.lane.version(), - current, - }); - } + check_fresh(a, ds.uri(), ds.version().version)?; Ok((a, ds)) } From c80f061305095146b9ce94ef3da5229aaabc96e1 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:13:52 +0000 Subject: [PATCH 14/23] lab: D-GLOBAL-WHERE P2 Lance arm runs green at 1M; corrections; report where_lance_arm now builds and runs at 1M. Every oracle check and every refusal check passes. Two fixes: - Restore the RowAddrTreeMap import, which the B arms need. - Write the fixture with max_rows_per_file = u32::MAX. Lance 13 compares that limit as `as u32` (write.rs:1077), so 1 << 40 truncated to 0. The 10M table then had one fragment per batch, and attest refused it as NotContiguous. That log is kept. The in-memory corrections (route once, ndarray kernels, borrowed reads) match the oracle at 1M and 10M. Results and logs are committed. Adds REPORT.md (three parity verdicts, the cost columns, the verdict list) and LANCE-TRACE.md (the source-backed trace). The 10M Lance rows are pending. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../LANCE-TRACE.md | 110 +++++ .../2026-11-03-d-global-where-p1/REPORT.md | 399 ++++++++++++++++++ .../results/corrections/corrections.log | 98 +++++ .../corrections/n1000000/corrections.json | 30 ++ .../corrections/n10000000/corrections.json | 30 ++ .../results/lance_arm/n1000000/lance_arm.json | 108 +++++ .../results/lance_arm/n1000000/lance_arm.log | 162 +++++++ .../lance_arm/n10000000/notcontiguous.log | 31 ++ .../examples/where_lance_arm.rs | 10 +- 9 files changed, 976 insertions(+), 2 deletions(-) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/REPORT.md create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log diff --git a/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md b/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md new file mode 100644 index 000000000..af7cd6f12 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md @@ -0,0 +1,110 @@ +# Lance 13 selective-read trace — D-GLOBAL-WHERE vs established contracts + +Repo `/home/user/lg-p1`, branch `ccr-85acaff0-oszq40-global-where-p1` (HEAD `3fb41149d`). Read-only. No cargo run. Labels: **VERIFIED-IN-CODE** (read first-hand, file:line), **VERIFIED-IN-DOC** (read in a committed plan/entry/PR body), **HYPOTHESIS**, **OPEN**. + +## Step 1 — established contracts + +| PR | established | evidence | +|---|---|---| +| #1489 (D-TELEPORT-2) | Lance 13's own scanner/index paths prune source reads; "No new primitive is needed"; remaining seam = "a cost choice between full scan and index take". Shuffled 50 % B-tree is ~9× slower than full scan (scattered take). Index-only COUNT reads no data columns. | PR body (MCP); `crates/lance-graph-benches/examples/lance_source_probe.rs:1-41` | +| #1573 (D-HOLO H14c) | `with_row_addr_prefilter` reads; `CoordMap` (coord→`_rowid` at one version) + `ReadError::StaleMapping`. Uniform 1 %: bytes 1.00×, rows scanned 692/65,536; clustered 1 %: 0.24×; MaterializationStyle changed bytes in 0/120 cells. Stale map → silent omission; stable ids survive update+compaction, not overwrite. | PR body; `crates/holo-lance-masked-io-probe/src/main.rs:146-218`; `.claude/board/entries/2026-10-15-d-holo-h14c-thought-first.md:17-19` | +| #1575 (D-HOLO H14d) | `logic → address mask R (mask-risc) → with_row_addr_prefilter(R) → terminal`. Rows scanned == \|R\| in every cell. Bytes: uniform 1 % 1.00, clustered 1 % 0.19, clustered 10 % 0.99, apertures 0.01–0.12. "Bytes are page-bound, so the saving needs survivors that are page-local." | PR body; `crates/holo-h14d-probe/src/main.rs:449-533,752-770` | +| #1633 (D-SRAM-2) | Stage 3 `lance_store` reads each side under a relalg-built mask; Arm B `addressed` = version-attested ordered lane (`SealedFacetLane::attest_sorted`), ranges via `seek_from`, `insert_range` masks, refusals `Stale`/`OtherDataset`/`NotSorted`/`NotContiguous`/`NotLeadingColumn`. Arm B reads exactly `3k` rows; 2.5–12× faster ≤1 % centers; full scan wins from 10 %. | PR body; `crates/crepe-plan-probe/src/lance_store.rs`; `crates/crepe-plan-probe/src/addressed.rs:1-330` | +| #1788 (D-DQM crosswalk, local `10291a8cc`) | Coordinate domains are four spaces; exactly one version-checked coord→`_rowid` authority required; S-INGRESS open. | `.claude/plans/duckdb-dr-quack-machine-room-reuse-v1.md:146-330` | +| #1789 (D-DQM P1, local `ab1f3a83f`) | Chunk-touched predictor FAILS (8.8 % / 16.4 % cells > 0.10; clustered 1 % predicted 0.44 vs 0.24/0.19 measured; over-predicts 59/73). No estimator proposed. | PR body (MCP) | + +### Verbatim decisions (#1788, plan file) + +- **S-INGRESS** (plan `:256-260`): "**Copy status of the handoff (seam S-INGRESS, OPEN, operator decision).** The words → `RowAddrTreeMap` step re-encodes an elected `Keep` set into a container Lance owns, and Lance copies it twice more. The waben ruling (`waben-fold-execution-loop-v1.md:1967-1979`, "where a set IS elected … the container is a free choice") covers our own carriers; whether it covers a foreign-owned ingress container is not ruled. Until the operator names the seam (as D-DRF-1 did for its cache), nothing on this path is called zero-copy or a fold." +- **A.0-1 correction** (plan `:158-162`): "Building a Lance `RowAddrMask` is an **ingress copy outside the fold** … Nothing on that path may be called zero-copy or a fold (see A.3, seam S-INGRESS)." +- **Single authority** (plan `:182-186`): "`DR ordinal ≠ _rowid ≠ _rowaddr ≠ output position.` No code today composes `ord` with any `_rowid` table (closed search space `crates/**/*.rs`). There must be exactly one version-checked coordinate→`_rowid` authority; today there are two lab ones with different witnesses (`holo-lance-masked-io-probe/src/main.rs:148-156` `CoordMap{version}` + `ReadError::StaleMapping`; DRF `check_seal` on `index_seal`), and the crepe handoff has none (`crepe-plan-probe/src/lance_store.rs:264`, keyed on `_rowaddr`)." +- **Register rows** (plan `:318-320`): ONE coordinate→`_rowid` authority = ADAPT (wiring), duplication risk HIGH ("a third map"); DR ordinal → `_rowid` composition = "look up through both maps (never store `row_ids∘ord` as a third table)", ADAPT gated on S-INGRESS; bulk words → `RowAddrTreeMap` = `insert_fragment` / `from_lsb0_bytes` / `insert_range`, ADAPT gated on S-INGRESS. +- **A.3 headline** (`:254`): "**Logical DR64 density does not predict Lance I/O; chunk locality of the selected `_rowid`s does.**" +- **A.3 "do not rebuild"** (`:228-232`): the API set `with_row_addr_prefilter`, `RowAddrMask::{from_allowed,from_block}`, projection, `filter` refine, `MaterializationStyle`, `scan_stats_callback` is "Already implemented and measured; do **not** rebuild". +- **Timing rule** (`:262-264`): storage results reported as bytes, ranges, requests, rows scanned, not wall time. +- A.4 end-to-end map (`:280-289`): nonresident path = `C_map ord→_rowid via ONE version-checked map [INTEGRATION GAP]` → `C_mask words→RowAddrTreeMap — S-INGRESS [OPEN]` → `C_io with_row_addr_prefilter + projection of demanded columns only (Lance owns)` → re-attach by stored coordinate column. `:311`: "**the integrated DR64 → Lance → Quack query is unmeasured**". + +## Step 2 — the caller path, hop by hop + +| hop | symbol / location | status | +|---|---|---| +| ClassView → WideFieldMask | `lance-graph-contract/src/class_view.rs:243` `WideFieldMask` (contract type exists) | EXISTS (contract) | +| WideFieldMask → required Lance columns | none found. Closed search: `rg '\.project\('` over `crates/**/*.rs` excluding the five lab probes: every hit is `ClassView::project`/`SubstrateView::project`/math `project` (class_view.rs:1122, causal_witness.rs:685, …), not `Scanner::project`. Production Lance scans hard-code column names: `lance-graph/src/graph/cycle_sink.rs:440,608,1079,1162,1211`, `graph/versioned.rs:443`. | **MISSING EDGE** (VERIFIED by closed grep + read of candidate lines; whole-file reads of cycle_sink/versioned NOT done → PARTIAL for those files) | +| WHERE / DR selection → mask words | Quack `lower` + mask-risc `execute_into` (probe `lib.rs:63-64`); relalg `run_with_program` in `crepe-plan-probe/src/lance_store.rs:233-250` | EXISTS (resident) | +| mask words → version-attested row ids | three different lab authorities: (1) H14c `CoordMap{version, id_of}` + `StaleMapping` (`holo-lance-masked-io-probe/src/main.rs:146-218`); (2) H14d `row_ids` positional `Vec`, **no version** (`holo-h14d-probe/src/main.rs:448-471`); (3) crepe Arm A `_rowaddr` column read at the same `Arc`, **no explicit witness** (`lance_store.rs:184-205,264-269`); (4) crepe Arm B `SealedFacetLane` attested at `ds.version()` + `uri`, refuses `Stale`/`OtherDataset`/`NotContiguous` (`addressed.rs:101-116,284-309`). DR side: dt64 `RouteVersion`/`Frame` (`lance-graph-dt64/src/dr.rs:153-176`) — a DR route-log witness, not a Lance dataset version; dt64 has no Lance dependency (`lance-graph-dt64/Cargo.toml:10`). | **COORDINATE GAP**: no code composes DR ordinal → `_rowid` (confirms plan `:182`) | +| → Lance `RowAddrMask` (AllowList) | `RowAddrMask::from_allowed` at `lance_store.rs:268`, `addressed.rs:270`, H14c `main.rs:216`, H14d `main.rs:532`, `lance_source_probe.rs:357`. **BlockList (`from_block`) is called nowhere** in `crates/**/*.rs` (closed grep `from_block`, 0 hits). | EXISTS (lab only) | +| → `Scanner::with_row_addr_prefilter` | `lance_store.rs:217`, H14c `main.rs:234`, H14d `main.rs:490`, `lance_source_probe.rs:379` | EXISTS (lab only) | +| → `Scanner::project` (required values only) | `lance_store.rs:191,215` (`c0`/`c1` literal); H14c `main.rs:231` (`coord` + lane names); H14d `main.rs:488`; `lance_source_probe.rs:373-392`. Columns are literal names, never derived from a FieldMask. | EXISTS, but FIELD selection is hard-coded, not ClassView-driven | + +Closed search space for the Lance calls: `rg 'with_row_addr_prefilter|RowAddrMask|RowAddrTreeMap|from_allowed|from_block|take_rows|with_fragments|scan_stats_callback'` over `crates/**/*.rs` → hits only in the 5 files above (+ `crepe-plan-probe/src/lib.rs:23` doc). All are lab: `crepe-plan-probe`, `holo-lance-masked-io-probe`, `holo-h14d-probe` are in the root `exclude` list (`Cargo.toml:51` onward, entries at `:55,:137,:206`); `lance-graph-benches` is a member but the hit is an example. `take_rows` / `with_fragments`: 0 hits. + +### Field-mask vs row-mask confusion check +- No site passes a WideFieldMask/FieldMask where a row mask is expected, or vice versa (VERIFIED in the files read). In the D-GLOBAL-WHERE P1 probe, `WideFieldMask` appears only as `MethodBinding.on/reads` (field positions) in `falsify_p1.rs:199-201` — correctly field-side. +- **Naming hazard (VERIFIED):** `project.rs:1-62` calls property-layout matching a "projection probe", but it projects nothing through Lance or ClassView; it measures packing 64 logical properties into 32 resident i32/u32 lanes. That is a third meaning of "projection" next to `Scanner::project` and `ClassView::project`. +- crepe `lance_store.rs:282-307`: builds the row mask from a full one-column read (`read_column`, no prefilter) — i.e. a full column scan per side per query to produce the row mask, then a second masked scan. Rows→mask is correct domain use (`_rowaddr`), but the mask's input read is unpruned. + +## Step 3 — answers + +**a) Paths that invoke Lance masked reads (prefilter + projection)** — VERIFIED-IN-CODE, all lab: +1. `crepe-plan-probe::lance_store::read_rows` (`lance_store.rs:209-229`), called from `prepare_lance` (`:274-364`), Arm A. +2. `crepe-plan-probe::addressed::read_side` (`addressed.rs:316-330`) → `read_rows`, Arm B (version-attested, range masks). +3. `holo-lance-masked-io-probe::read_with` / `masked_read` (`main.rs:201-253`). +4. `holo-h14d-probe::read` (`main.rs:482-520`). +5. `lance-graph-benches/examples/lance_source_probe.rs::run` Arm C (`:375-381`). +No production (workspace `src/`) caller of `with_row_addr_prefilter` exists in `crates/**/*.rs`. + +**b) Bypasses** +- **The D-GLOBAL-WHERE probes never touch Lance.** Both `Cargo.toml`s depend only on contract, dt64, quack, mask-risc, ndarray (+ `dr-math-binding-probe` in P0) — `.claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml:10-15`, `.../d-global-where/probe/Cargo.toml:10-16`. Closed grep for `lance::|Scanner|RowAddr|_rowid|take_rows|Dataset` over both probe trees: 0 hits. Both SPEC.md files: no `drf|SealedMap|Focus|CoordMap|RowAddr|_rowid|lance::|Dataset` hit. Data is generated in memory: P0 REPORT `:18` ("datasets are deterministic (SplitMix64) and are regenerated by `bench`, not committed"); compose.rs `:92-134` (`where_val`, `a_of`, `b_of`, `Graph::edges_of` closures); `fetch` is "edges … from the generator, standing in for a global relation index" (`compose.rs:38-40`) and its doc disclaims "that `fetch` equals a real relation-index read" (`:57-58`). Lane values reach folds via `WorkingSet::gather_lane(frame, source: Fn(u64)->i32)` (`lib.rs:405-416`) — a copy into a new coordinate-ordered `Vec`, i.e. a GATHER over a closure, not a storage read. +- Inside those probes, shapes the workspace already rules against (VERIFIED-IN-CODE): `discover` extracts mask → `Vec` ids (`compose.rs:175-179`); `fetch_edges` returns `Vec<(u64,u64)>` tuples (`compose.rs:128-134`); `partition` builds `Vec>` (`:206-213`). Per CLAUDE.md these are the tuple/row-id-list shapes; A.2 row 1 marks SelectionVector-style row-id lists INTENTIONALLY ELIMINATED. +- crepe Arm A: full unmasked column scan to build each mask (`lance_store.rs:184-205`, called at `:292,:336`). Unmasked full reads also at `:347-348` when no centers. +- `project.rs:33-41`: packed ordered compares done with a hand-written Rust "extraction loop" because "Quack has no ordered compare over an unsigned lane". The plan's register (`:322`) already names the fix: ndarray `*_u8_to_mask` / `*_u64_to_mask` exist (`simd_masking_ops.rs:3569-3724,3787-3936`, cited by the plan, not re-read here) but have no `Pred` variant — ADAPT (wiring). The probe re-derives the kernel instead. +- No `take`/`take_rows` loops anywhere (0 hits). + +**c) DR → Lance coordinate mapping + version witness: MISSING (not reused, not re-derived)**. The DR side (dt64 `MapTable`/`Frame`/`RouteVersion`) and the Lance side (H14c `CoordMap{version}`, crepe `AddressedRelation{uri, lane.version()}`) never meet. dt64 has no Lance dependency. D-GLOBAL-WHERE adds its own `WorkingSet` + `CoordIndex` (arm C "derived index … built FROM `MapTable` views under one frame", `lib.rs:4-9,34-36`) — derived under the DR frame, but with no Lance version, so it is neither of the existing Lance witnesses. HYPOTHESIS: if this `CoordIndex` were later keyed to `_rowid`s it would be exactly the "third map" the register forbids (plan `:318`). + +**d) Mask construction frequency** (VERIFIED-IN-CODE): +- crepe Arm A: `row_addr_mask` (`lance_store.rs:264-269`, per-bit `for_each_set` → `Vec` → `from_iter`) once per side **per `prepare_lance` call** (per query), after a full column read. +- crepe Arm B: `range_mask` (`addressed.rs:265-271`, `insert_range` per run) once per side per query; `attest` once per table (cold, reused while `ds.version()` matches, `:284-309`). +- H14c: `CoordMap` built once per dataset (`main.rs:338`); `masked_read` rebuilds the `RowAddrMask` from a coord list on every call (`:215-216`), called 5× per cell and once per lane in the independent strategy (`:366-393`). +- H14d: `row_ids` once per dataset (`main.rs:643`); `row_mask` once per (pattern,d,width,k) cell (`:755`), per-bit enumeration (`:523-533`). +- D-GLOBAL-WHERE: no Lance mask at all. + +**e) Bytes attributed to physical layout, not missing filtering** — yes, consistently: +- H14d PR #1575: "Bytes are page-bound, so the saving needs survivors that are page-local." +- Plan A.3 `:251-254`: uniform mask touches a 4,096-row chunk with prob `1 − (1 − d)^4096` (≈1 at 1 %) → "chunk locality of the selected `_rowid`s does" predict I/O. +- `.claude/probes/2026-11-03-d-dr-fold/D-DR-FOLD-MAP.md:47`: "Lance 13 `with_row_addr_prefilter`: a scattered mask cuts rows decoded, not bytes fetched; a page-local mask cuts both (1 % uniform 1.00×, 1 % clustered 0.24×, 0.1 % uniform 0.77×)." — LAB, H14c-4. +- `.claude/probes/2026-11-03-d-dr-fold/REPORT-BENCH.md:129`: "The H14c result stands: a scattered mask cuts rows decoded, not bytes; a clustered one cuts both." (this is the #1945 / D-DR-FOLD quote's source). +- `.claude/board/entries/2026-11-03-d-dr-fold-map.md:5`: "A mask cuts bytes fetched only when presence is page-local. Every recorded `bytes_read` was served from the page cache, not read from disk. The physical read-planning contract is missing and has no owner." +- Rows scanned == |R| in every H14d cell, so filtering is not missing; bytes are layout-bound. +- #1789: chunk-count predictor fails; lance-io merges at 4 KiB on local temp dirs vs 64 KiB cloud default. + +**f) Where time goes** +- Storage: not timed by rule (A.3 `:262-264`); bytes from page cache only (dr-fold-map `:5`). #1633: full read 9.81–30.71 ms, Arm B warm 0.37–38.98 ms, attest 6.7–9.8 ms (ms figures, quoted from PR body, not gated). +- DR routing: P0 REPORT `:112` — cold losses on every `multi_*` dataset come from "**addressing**: … `MapTable::locate` per edge endpoint … O(tiles) per id"; P0 entry `:18`: "Routing once and reusing costs 5 µs against 650–970 µs." P1 `comp_both.log:18-28` (N=1M): `route` 480.6 µs → 282,447.8 µs, `fetch` (in-memory generator) 68–14,086 µs, `fold/set` 60–4,358 µs, `discover` 209–641 µs; FAILED-GATE on 6 of 10 rows. Route dominates every case and grows with scatter (route +7,397.6 µs/set scatter vs +215.2 contig, `:42-43`). +- Mask ingress: never timed on the Lance side except `lance_source_probe` `mask_ms` (`:376-378`); A.4 lists `C_mask` as an OPEN seam. +- Fold: ns/word scale in H14d (2–10 ns/word stage 2, ~6 ns/lane load); in P1 compose, fold/set reaches ms only because sets are 50k–200k ids (`comp_both.log:20-28`). + +## Step 4 — classification + +1. **NOT APPLICABLE (primary)** for the D-GLOBAL-WHERE probes: they never touch Lance (manifests + closed grep, step 3b). They cannot regress or reuse a Lance read path; their numbers say nothing about Lance selective reads. Their costs are DR routing + in-memory generator "fetch". +2. **MISSING WIRING**: (i) DR ordinal → `_rowid` composition (no code; plan `:182`, re-confirmed by dt64's dependency set); (ii) WideFieldMask → `Scanner::project` column set (no caller; all projections literal); (iii) one version-checked authority — still four lab witnesses (H14c `CoordMap`, H14d none, crepe A none, crepe B `SealedFacetLane`). All gated on S-INGRESS / owner decisions D4 (dr-fold-map `:14`). +3. **COORDINATE MISMATCH (latent)**: H14d `row_ids` and crepe Arm A carry no Lance version; the D-GLOBAL-WHERE `CoordIndex` carries a DR frame only. Not an active bug (each is used within one dataset handle), but none can be composed safely across versions. +4. **GENUINE PHYSICAL-I/O LIMITATION**: scattered masks cut rows, not bytes (H14c/H14d, A.3, dr-fold REPORT-BENCH:129). Not a filtering defect; chunk locality decides. +5. **CALLER REGRESSION**: none found. No production caller ever used `with_row_addr_prefilter`, so none regressed. The lab callers from #1573/#1575/#1633 are present and unchanged in this tree. +6. **Re-derivation inside the probe (not Lance)**: `project.rs` extraction loops re-derive ndarray u8/u64 compare kernels (register row `:322`); `gather_lane` re-derives the DRF GATHER (path 3) without DRF's `FocusKey`/`check_seal`; `discover`/`fetch_edges`/`partition` materialize ids and tuples that A.2 row 1 eliminates. + +## Step 5 — minimal corrective proposal (prose only, no edits) + +1. If D-GLOBAL-WHERE is meant to say anything about storage, it must read through an existing Lance path rather than a generator. The reusable one is crepe-plan-probe Arm B: `addressed::attest` (`addressed.rs:101-116`) once per table, then `ranges`+`plan_read`+`read_side` (`:213-330`), which already carries `ReadPolicy` (the #1489 "cost choice") and the `Stale`/`OtherDataset` refusals. Its mask is `insert_range` per run, the register's bulk path. Use it, do not copy it. +2. The missing edge is DR ordinal → Lance row position: H14d's positional `row_ids` (`holo-h14d-probe/src/main.rs:448-471`) shows the lookup shape, but the authority must be ONE witness that records both the DR `Frame`/`RouteVersion` and the Lance `ds.version()` (+uri) — the register's ADAPT row `:318`, looked up through both maps, never stored as a composed table (`:319`). This is gated on S-INGRESS and owner decision D4; it should not be built by a probe. +3. Field side: map the ClassView/WideFieldMask positions a query demands to the column list passed to `Scanner::project` (today literal at `lance_store.rs:215`). That edge is absent everywhere. +4. Inside the probe: replace `project.rs` extraction loops by adding mask-risc `Pred` variants that call the existing ndarray u8/u64 compare kernels (plan `:322`, ADAPT when a consumer asks — this probe is the consumer); stop measuring `route` per query (P0 REPORT already shows route-once costs 5 µs). +5. Report any Lance arm in bytes / rows scanned / ranges, not wall time (A.3 `:262-264`), and state that page-cache bytes are not disk reads. + +## Could not access / not done +- Lance 13 crate source (`scanner.rs:1663`, `mask.rs`, `filtered_read.rs`, `miniblock.rs`): not read; cited from the plan. +- ndarray `simd_masking_ops.rs` lines: cited from the plan, not re-read. +- PR file lists (`get_files`) not fetched; local files read instead. +- PR #1945 not fetched; quote located in local `REPORT-BENCH.md:129` and `D-DR-FOLD-MAP.md:47`. +- Whole-file reads not done for `cycle_sink.rs`, `versioned.rs`, `lance_cache.rs`, `audit.rs`, `lance_vector_search.rs`, `addressed.rs:330-514`, `holo-*` beyond the cited ranges, `where_k.rs`, the P1 `lib.rs` beyond `1-200` and `405-430`. Claims about those files are PARTIAL. +- `drf-focus-probe` source not read; its `SealedMap`/`check_seal` cited from the plan. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md new file mode 100644 index 000000000..663c674ca --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md @@ -0,0 +1,399 @@ +# D-GLOBAL-WHERE P2 — report + +Date: 2026-11-03. LAB ONLY. No production crate changed. Nothing here is +authorized as a design; S-INGRESS and D4 stay open. + +Labels used on every number: + +- **in-memory**: the P2 probe (`probe/`), data generated in memory, no storage. +- **Lance-backed**: `crates/crepe-plan-probe/examples/where_lance_arm.rs`, a + real Lance 13 dataset on local disk. Bytes are Lance's `bytes_read`, served + from the page cache, not from disk. +- **partial integration**: a stage joined to the next one by a given input + instead of the real producer (the DR→Lance step, see D4). +- **FAILED-GATE**: a warm in-fold number ≥ 1000 µs. Reported, never hidden. +- **COLD/IO (reported)**: prepare, attest, storage reads. Reported, not gated + (operator ruling 2026-10-22, CLAUDE.md scoped exception). + +Answer parity is checked separately from timing: every arm's count and +per-column sums are compared to an oracle before any timing is printed. + +## 1. Frozen evidence, independent of Lance + +Frozen at `49f02414d`; re-checked this pass. + +| probe | what it checks | result | +|---|---|---| +| `falsify_p1` | 37 falsifiers (refusals, composition laws) | 37/37 | +| `where_k` 1M / 10M | WHERE over K criteria, K distribution 34/46/14/6 | every answer equals the oracle; 353 / 648 FAILED-GATE values reported | +| DuckDB 2.0.0 parity (`duckdb/compare_where.py`) | count + EXISTS vs DuckDB, threads 1 and 4 | every DuckDB answer equals the oracle; coverage is enforced in both directions | +| `project` 1M / 10M | 64 logical properties over 32 lanes, layouts U/P/S | all answers match; refusals R1–R3 fire; 23 / 41 FAILED-GATE | +| `compose` 1M / 10M | repeated DR composition beyond 64K | all composed answers equal the oracle; all refusals fire | + +Known gap: the k4/k16 sparse and mixed AND cases in `project` have oracle +count 0, so they cannot catch a wrong non-zero answer. + +DuckDB timing, regular grid (39 cases), weighted by the K distribution: + +| N | threads | count (ours vs DuckDB wall) | EXISTS (ours vs DuckDB wall) | +|---|---|---|---| +| 1M | 1 | 14.17× WIN | 1.27× WIN | +| 1M | 4 | 5.81× WIN | 1.73× WIN | +| 10M | 1 | 7.00× WIN | 0.43× LOSS | +| 10M | 4 | 1.96× WIN | 0.16× LOSS | + +These are answer-parity runs with timings attached. They are not an +engineering-parity verdict; see §6. + +The EXISTS loss at 10M has one cause, verified in code: `Terminal::Any` scans +every tile with no early exit (`mask-risc/src/exec.rs:1633`, `:1793-1794`). +DuckDB stops at the first match. + +## 2. In-memory corrections (`probe/src/bin/corrections.rs`) + +The original timings stay as baselines. Each correction is a separate arm on +the same fixture (`--sel 20000`); every arm matches the oracle. + +**C1 — route once vs per query.** Prepare (routing) is COLD: +162,177 µs at 1M and 164,813 µs at 10M (independent of N, it depends on the +selection). After prepare, a query costs: + +| Q queries | per query, re-routing each time | per query, routing once | +|---|---|---| +| 1 | 163,962 µs | 158,198 µs | +| 16 | 168,809 µs | 10,421 µs | +| 256 | 172,018 µs | 1,012 µs | +| warm, no prepare | — | 381–494 µs | + +Routing once pays off at Q ≥ 2. The stale guard refuses a binding after +`replace_tile`. With the guard disabled the stale binding would be accepted, +so the guard is load-bearing. + +**C2 — existing ndarray kernels vs the hand-written packed u8 compare.** There +is no ordered u8 compare over a packed u32 lane (NO-EXISTING-KERNEL): + +- `lt_u8_to_mask` reads a contiguous `&[u8]`. +- Quack `Cmp` has only `EqU32` / `NeU32` / `MatchU32` and signed `I32` + orderings. + +The kernel arm composes existing words (`ternary_match_u32_to_mask`, +`mask_or_assign`, `mask_not`). It runs one ternary pass for each 2-bit prefix +the threshold needs: + +| predicate | passes | 1M: hand / kernel | 10M: hand / kernel | +|---|---|---|---| +| f0 < 64 | 1 | 289 / 172 µs | 3,219 / 1,949 µs | +| f1 ≥ 64 | 1 | 312 / 161 µs | 3,257 / 2,096 µs | +| f2 ≥ 170 | 4 | 291 / 649 µs | 3,230 / 8,424 µs | +| f3 < 255 | 8 | 336 / 1,300 µs | 3,214 / 16,384 µs | + +The existing kernels win when the threshold needs one pass. They lose by up to +5× when it needs several, because the cost scales with the pass count. Every +10M row is FAILED-GATE: a full 10M-row lane scan is over the µs budget on +either path. The real fix is an ordered `u8`-in-`u32` compare word. That is a +missing kernel, not missing wiring, so it is filed for the mask-risc / ndarray +owner. It was not built here. + +**C3 — borrowed lane reads vs `gather_lane` copies** (sel 20,000; 80,896 B per +copy): + +| threshold | 1M: copy / borrowed | 10M: copy / borrowed | +|---|---|---| +| lt=100 | 43.1 / 43.2 µs | 122.5 / 120.5 µs | +| lt=500 | 60.7 / 148.9 µs | 111.3 / 261.1 µs | +| lt=900 | 44.7 / 59.1 µs | 111.3 / 110.0 µs | + +Borrowing removes the copy and its 80,896 B allocation with no loss at +selectivity 10% and 90%. At 50% the borrowed path is 2.3–2.5× slower. One +possible cause is unpredictable branches in the in-place compare; that is not +yet verified. This is filed open rather than explained. + +## 3. Lance selective-read arm (`where_lance_arm`, Lance-backed) + +The arm reuses the #1633 addressed read; no new read API was added. The edit +to the lab crate `crepe-plan-probe/src/addressed.rs`: + +- makes the existing `ranges` / `range_mask` public; +- adds `range_tree`, so ingress bytes are measured on the tree Lance receives; +- adds `check_fresh`; `current_lane` now calls it, so there is one freshness + rule. + +The example constructs an `AddressedRelation` and calls these directly. + +Fixture: `id` plus `p0..p15` as i32, written as one fragment. Each column +carries a `predicate_iri`. The physical order is permuted (`(5j+3) mod 16`) +and the physical names are not the labels. Attest asserts `_rowid == _rowaddr` +row for row: the prefilter is keyed in `_rowid` space and the lane holds +`_rowaddr`. With stable row ids that assertion would fail, and the arm would +refuse. + +Arms: + +| arm | what it does | +|---|---| +| A-full | full scan of WHERE + demanded columns, fold over the WHERE mask | +| B-allow / B-block | scan the WHERE columns, build a RowAddrMask from the result, masked scan of the demanded columns | +| C-exact | ids given (BLOCKED_D4) → lane ranges (`ranges`) → `range_mask` → masked scan of demanded columns only | +| C-default | as C, with `ReadPolicy::DEFAULT` (coalesce, or full scan when the ranges cover too much) | + +All four arms give the same count and sums at every cell (oracle checked). + +### 1M results (median of 5 warm runs, µs; bytes = Lance `bytes_read`) + +Selected cells (full table: `results/lance_arm/n1000000/lance_arm.log`): + +| layout | sel | k | arm | rows scanned | bytes (% of A) | mask bytes | route | ingress | Lance read | +|---|---|---|---|---:|---:|---:|---:|---:|---:| +| clustered | 0.1% | 1 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 18,367 | +| clustered | 0.1% | 1 | C-exact | 1,000 | 0.1% | 27 | 92 | 1.9 | 1,176 | +| clustered | 10% | 4 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 27,222 | +| clustered | 10% | 4 | C-exact | 100,000 | 6.8% | 47 | 6,908 | 2.7 | 2,558 | +| scattered | 0.1% | 1 | C-exact | 988 | 33.3% | 2,124 | 440 | 109 | 2,440 | +| scattered | 0.1% | 16 | C-exact | 988 | 99.8% | 2,124 | 644 | 157 | 19,219 | +| scattered | 10% | 4 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 28,052 | +| scattered | 10% | 4 | B-allow | 1,100,164 | 120.0% | 126,420 | 0 | 3,510 | 76,684 | +| scattered | 10% | 4 | C-exact | 100,164 | 80.0% | 126,420 | 9,125 | 9,499 | 55,457 | +| scattered | 10% | 16 | C-exact | 100,164 | 100% | 126,420 | 9,094 | 9,341 | 232,319 | +| scattered | 50% | 16 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 93,010 | +| scattered | 50% | 16 | C-exact | 500,613 | 100% | 377,194 | 44,429 | 19,380 | 925,837 | + +What this shows: + +1. **The mask always cuts rows scanned** to exactly the selection (C) or + n + selection (B, which first scans the WHERE columns). Filtering is not + missing anywhere. +2. **Bytes follow page locality, not selectivity.** Clustered selections read + 0.1–9% of the full scan's bytes. A scattered selection of 0.1% already + reads 33% of the bytes at k=1 and 99.8% at k=16. Every page holding at + least one survivor is read whole. This repeats H14c/H14d (#1573/#1575) on + the #1633 path. It is a physical I/O limit, not a wiring defect. +3. **On scattered selections a masked read is slower than a full scan.** + - At 10% and k=16, C-exact takes 232,319 µs against A's 86,593 µs; B takes + 261,354 µs. + - At 50% and k=16, C-exact takes 925,837 µs against A's 93,010 µs. + - `ReadPolicy::DEFAULT` sees this coming and falls back to a full read on + every scattered 10–50% cell. That is the #1489 "cost choice", already + implemented. It still pays for the route stage before deciding. +4. **Mask ingress is a copy, and its cost scales with the number of ranges, + not rows.** + - One clustered range: 27–144 B of tree, 1.9–9.1 µs. + - 91,527 scattered ranges: 126,420 B, ~9.5 ms. + - 326,222 ranges: 377,194 B, ~19 ms. + + It is never zero-copy: `insert_range` builds a `RowAddrTreeMap` that Lance + owns (S-INGRESS). +5. **Route (ids → lane ranges by galloping seek) is the dominant non-I/O + cost.** It is about 70–90 ns per id: 6.9 ms per 100k ids and 35–44 ms per + 500k. It is FAILED-GATE on every cell ≥ 10k ids. It is linear in the + number of ids because each id is sought separately. + +### 10M + +Rows are appended when the 10M run finishes. + +A defect found on the way. Lance 13 compares the file row limit as +`params.max_rows_per_file as u32` (`lance-13.0.0/src/dataset/write.rs:1077`). +The fixture set `1 << 40`, which truncates to 0. Every input batch therefore +closed a file, and the 10M table came out in many fragments. The attest guard +refused it as `NotContiguous` (log kept: `results/lance_arm/n10000000/notcontiguous.log`). +That is the #1633 refusal working as designed. The fixture now uses +`u32::MAX`. This upstream truncation is recorded here and not patched. + +## 4. ClassView → WideFieldMask → physical columns (Lance-backed) + +`resolve()` maps each demanded field position through: + +1. `ClassView::fields(class)` → `FieldRef::predicate_iri`, then +2. the Lance schema field metadata `predicate_iri`, to the physical column name. + +It never maps position to ordinal or label to column name. Two traps prove a +shortcut would be caught: + +- **Ordinal shortcut:** mapping by ordinal gives the wrong column on 16 of 16 + positions. +- **Label shortcut:** mapping by label finds no physical column on 16 of 16. + +Each refusal below is paired with a success control: + +| refusal | trigger | +|---|---| +| AbsentField | the position is not in the presence `FieldMask` | +| Unauthorized | the position is outside the caller's `WideFieldMask` | +| UnknownProperty | no column carries the IRI | +| AmbiguousProperty | two columns carry the IRI (a separate dataset) | +| StaleSchema | the dataset was appended after resolution | + +A refusal returns no column list, so the column list cannot widen. Projected +bytes follow k exactly at A-full: 3.8 MB (k=1), 6.3 MB (k=4), 20.3 MB (k=16). +C reads only the resolved columns. + +Kept distinct throughout: + +| mask | answers | +|---|---| +| WHERE mask | which rows pass | +| `WideFieldMask` | which fields are demanded or permitted | +| DR mask | which identities are selected | +| Lance `RowAddrMask` | which row addresses to read | + +The code never passes one where another is expected. + +## 5. D4 / S-INGRESS boundary + +`BLOCKED_D4`: no type binds a DR `Frame` to a Lance dataset version. + +- `lance-graph-dt64` has no Lance dependency. +- The #1788 single-authority decision is open. + +So arm C takes its ids as a given input, the oracle's sorted identities. It +never composes a DR ordinal with `_rowid`. No third coordinate map was built. + +The freshness checks that do exist are #1633's own, now one function: + +- a stale lane is refused after an append; +- a lane read against another dataset is refused; +- a forged newer-version witness is refused by `seek_from`. + +RowAddrMask construction is measured, not assumed free; see §3 point 4. + +## 6. Cost columns + +One row per stage for three representative 1M cells, k=4, µs. Labels per +stage: **IM** in-memory, **LB** Lance-backed, **PI** partial integration. + +| cell | WHERE evaluation | ClassView resolution | DR routing | mask ingress | Lance read | projection | FOLD | total | +|---|---|---|---|---|---|---|---|---| +| clustered 10%, C-exact | 0 (ids given, PI) | 10.0 LB | 6,908 IM (lane seek; DR→Lance BLOCKED_D4) | 2.7 LB | 2,558 LB | inside Lance read; 6.8% of A's bytes LB | 57.7 LB | 9,705 PI | +| scattered 10%, C-exact | 0 (PI) | 16.7 LB | 9,125 IM | 9,499 LB | 55,457 LB | inside Lance read; 80% of A's bytes LB | 100.4 LB | 73,703 PI | +| scattered 10%, A-full | 866 LB (over loaded columns) | 14.3 LB | 0 | 0 | 28,052 LB | inside Lance read; 100% LB | 2,067 LB | 31,932 LB | + +Not measured in the same cell, because the DR→Lance edge is BLOCKED_D4: + +- in-memory DR WHERE evaluation over resident planes (`where_k`): 138–1,530 µs + at 1M; +- DR routing per composition (`compose`, route column): 35,914 µs out of a + 50,178 µs total at sel 50k, D=1. + +A full end-to-end row, DR selection → Lance read in one process, does not +exist yet. It is the integrated path the #1788 register already lists as +unmeasured. + +## 7. Three parity verdicts + +**Semantic parity: REACHED.** + +- Every count and EXISTS answer equals the oracle and DuckDB at 1M and 10M. +- Every Lance arm equals the oracle and the full-projection oracle at 1M. +- Three-valued NULL semantics match. +- Refusals fire and are paired with controls. + +**Performance parity: SPLIT.** + +| operation | ours vs DuckDB | status | +|---|---|---| +| count | 14.2× (1M, 1 thread) down to 1.96× (10M, 4 threads) | WIN | +| EXISTS | 0.43× / 0.16× at 10M | LOSS: no early exit | + +On storage, a clustered selective read beats the full scan by 7–16×. A +scattered one loses to the full scan by 2.7–10×, and the existing +`ReadPolicy` already knows to fall back. + +**Engineering parity: NOT REACHED on strategy, reached on representation** +(`ENGINEERING-PARITY.md`; source-backed Lance trace: `LANCE-TRACE.md`): + +- **Selection reuse: ALREADY WORKS.** A versioned DR mask lives longer than + DuckDB's per-chunk selection vector. +- **Chunk compaction: INTENTIONALLY DIFFERENT.** Word folds have no underfull + chunks. +- **Late materialization: INTENTIONALLY DIFFERENT.** +- **Evaluation direction: MISSING CAPABILITY.** +- **EXISTS early exit: MISSING WIRING.** +- **Physical-read avoidance: MISSING** the single `_rowid` authority and + bind-time constant folding. +- **Routing: MISSING WIRING.** Route once, then reuse (C1 shows Q ≥ 2 pays). + +WHEN vs WHETHER: DuckDB optimizes *when* a property is materialized. We can +skip the read entirely for: + +- COUNT / EXISTS / ALL over a bound plane; +- presence questions; +- empty demand; +- DISTINCT over a sealed map. + +We cannot skip: + +- the first evaluation of a value predicate; +- payload aggregates; +- non-resident sources; +- a generation change (502–758 µs). + +## 8. Verdict + +Format per item: producer → missing edge → consumer → test → measured cost → +owner → PR. + +**ALREADY WORKS** + +1. Lance 13 masked read with column projection. + - Path: #1633 `AddressedRelation` → `range_mask` → `with_row_addr_prefilter` + `project` → fold. + - Test: `where_lance_arm`, all oracle checks. + - Cost: clustered 0.1% = 1,176 µs read and 0.1% of the full scan's bytes. + - Owner: lab. PR: this one. +2. `ReadPolicy` cost choice. + - Path: `plan_read` → `Read::Full` on scattered 10–50%. + - Test: C-default cells. + - Cost: avoids the 2.7–10× scattered-read loss. + - Owner: lab #1633. + +**WIRE NOW** (lab only, done here) + +3. ClassView / WideFieldMask → physical Lance columns. + - Path: `ClassView::fields` → `predicate_iri` → schema metadata → `Scanner::project`. + - Test: 5 refusals + 2 traps + projected bytes. + - Cost: resolve 7–40 µs. + - Owner: lab, this PR. Production wiring needs an owner decision; not done. + +**PROBE** + +4. EXISTS early exit. + - Path: `Terminal::Any` → break per tile (`exec.rs:1793`) → Quack EXISTS. + - Test: the 10M EXISTS cells, plus a can-stay-silent test on an empty mask. + - Cost: today 0.16× DuckDB at 10M. + - Owner: mask-risc. PR: separate, not opened. +5. Ordered u8-in-u32 compare word. + - Path: ndarray / mask-risc → `Pred` → the `project` layouts. + - Test: C2. + - Cost: up to 5× slower than the hand loop when composed from existing words. + - Owner: ndarray / mask-risc. Not built. +6. Route once, reuse per frame. + - Path: P1 arm C index → a frame-scoped binding → the compose route stage. + - Test: C1. + - Cost: 158,198 → 1,012 µs per query at Q=256. + - Owner: DRF / D-GLOBAL-WHERE. + +**OWNER DECISION** + +7. One version-checked DR → `_rowid` authority, plus bulk ingress. + - Path: dt64 `Frame` → ONE witness (DR route version + Lance `ds.version()` + uri) → `RowAddrTreeMap`. + - Test: the C arm, with ids from DR instead of given. + - Cost: ingress 2–19,380 µs, measured. + - Owner: S-INGRESS / D4. BLOCKED_D4. + +**PARK** + +8. Scattered selective reads on a row-major page layout. + - Physical limit: bytes follow page locality, not selectivity. + - Not a code change. + - Revisit with a clustered layout or a different page size. + +**SKIP** + +9. A new mask store, trie, hash table or paging engine. Nothing measured here + needs one. + +## Not verified + +- 10M Lance rows: pending at the time of writing; see §3. +- The cause of the 50% slowdown on the borrowed path (C3). +- Disk reads: every Lance byte count came from the page cache. +- DuckDB internals: the source is not on disk (see `ENGINEERING-PARITY.md`). diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log new file mode 100644 index 000000000..ed9670dcd --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log @@ -0,0 +1,98 @@ +NO-EXISTING-KERNEL: a DIRECT ordered u8 compare over a packed u32 lane. ndarray::simd lt_u8_to_mask/ge_u8_to_mask read contiguous &[u8] (would compare all 4 fields per lane, interleaved); Quack Cmp has EqU32/NeU32/MatchU32 and signed I32 orderings only. Arm kernel_ternary_or composes existing words (ternary_match_u32_to_mask, mask_or_assign, mask_not); nothing new is implemented. +== n = 1000000 sel = 20000 (in-memory) == + fixture built in 8419.610us (COLD): 20000 ids, 159944 edges +correction 1: route once vs per query (sel 20000) + [in-memory] route1/part prepare (P) med 162177.266us COLD (reported, not gate) p10 154647.238us p90 178524.931us alloc 10025440B/22calls COLD + [in-memory] route1/part guard+where A+where B (w) med 3.628us p10 3.437us p90 4.107us alloc 0B/0calls + [in-memory] route1/part fold w2_and (f) med 461.059us p10 447.229us p90 485.036us alloc 0B/0calls + [in-memory] route1_break_even_Q = 1.000 (Q >= 2) + [in-memory] route1 per_query Q=1 (per query) med 163961.826us COLD (reported, not gate) p10 161042.026us p90 169573.810us alloc 0B/0calls includes prepare + [in-memory] route1 reuse Q=1 (per query) med 158198.132us COLD (reported, not gate) p10 154608.574us p90 165699.276us alloc 0B/0calls includes 1 prepare + [in-memory] route1 reuse warm Q=1 (per query) med 493.792us p10 488.223us p90 502.973us alloc 0B/0calls no prepare + [oracle ok ] route1 Q=1: per_query == reuse == oracle (oracle every 1th query) + [in-memory] route1 per_query Q=16 (per query) med 168808.956us COLD (reported, not gate) p10 165603.115us p90 170437.212us alloc 0B/0calls includes prepare + [in-memory] route1 reuse Q=16 (per query) med 10420.953us COLD (reported, not gate) p10 10060.888us p90 11776.117us alloc 0B/0calls includes 1 prepare + [in-memory] route1 reuse warm Q=16 (per query) med 385.223us p10 375.793us p90 388.868us alloc 0B/0calls no prepare + [oracle ok ] route1 Q=16: per_query == reuse == oracle (oracle every 1th query) + [in-memory] route1 per_query Q=256 (per query) med 172018.005us COLD (reported, not gate) p10 172018.005us p90 172018.005us alloc 0B/0calls includes prepare + [in-memory] route1 reuse Q=256 (per query) med 1011.869us COLD (reported, not gate) p10 1011.869us p90 1011.869us alloc 0B/0calls includes 1 prepare + [in-memory] route1 reuse warm Q=256 (per query) med 381.206us p10 379.170us p90 394.978us alloc 0B/0calls no prepare + [oracle ok ] route1 Q=256: per_query == reuse == oracle (oracle every 16th query) + [oracle ok ] route1 stale: guard accepts the fresh binding + [oracle ok ] route1 stale: guard REFUSES the binding after replace_tile + [oracle ok ] route1 stale: disabled guard would NOT refuse (guard is load-bearing) + [oracle ok ] route1 stale: a fresh prepare after replace gives the oracle answer + [in-memory] route1_stale_fold_answer_unguarded = 896 (reported, equals fresh 896: true) +correction 2: ndarray kernels vs hand-written packed u8 compare (n 1000000) + [in-memory] kernel2 handwritten f0 < 64 med 289.017us p10 279.143us p90 310.816us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f0 < 64 med 172.174us p10 147.163us p90 261.068us alloc 0B/0calls 1 ternary passes + [oracle ok ] kernel2 f0 < 64: masks bit-identical, popcount hand 250586 kernel 250586 oracle 250586 + [in-memory] kernel2 handwritten f2 >= 170 med 291.321us p10 283.516us p90 326.333us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f2 >= 170 med 649.049us p10 625.306us p90 851.022us alloc 0B/0calls 4 ternary passes + [oracle ok ] kernel2 f2 >= 170: masks bit-identical, popcount hand 335748 kernel 335748 oracle 335748 + [in-memory] kernel2 handwritten f3 < 255 med 335.876us p10 284.102us p90 398.478us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f3 < 255 med 1299.575us FAILED-GATE p10 1263.328us p90 1690.789us alloc 0B/0calls 8 ternary passes + [oracle ok ] kernel2 f3 < 255: masks bit-identical, popcount hand 996074 kernel 996074 oracle 996074 + [in-memory] kernel2 handwritten f1 >= 64 med 311.835us p10 295.437us p90 440.211us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f1 >= 64 med 161.284us p10 154.012us p90 182.514us alloc 0B/0calls 1 ternary passes + [oracle ok ] kernel2 f1 >= 64: masks bit-identical, popcount hand 749508 kernel 749508 oracle 749508 +correction 3: borrowed lane reads vs gather_lane copies (sel 20000) + [in-memory] borrow3 copy gather_lane lt=100 med 43.127us p10 41.025us p90 74.082us alloc 80896B/1calls bytes_copied=80896 + [in-memory] borrow3 borrowed in-place lt=100 med 43.186us p10 35.372us p90 58.332us alloc 0B/0calls bytes_copied=0 + [oracle ok ] borrow3 lt=100: masks identical, popcount copy 2001 borrowed 2001 oracle 2001 + [in-memory] borrow3 copy gather_lane lt=500 med 60.665us p10 40.288us p90 97.912us alloc 80896B/1calls bytes_copied=80896 + [in-memory] borrow3 borrowed in-place lt=500 med 148.899us p10 141.133us p90 177.940us alloc 0B/0calls bytes_copied=0 + [oracle ok ] borrow3 lt=500: masks identical, popcount copy 10054 borrowed 10054 oracle 10054 + [in-memory] borrow3 copy gather_lane lt=900 med 44.736us p10 42.908us p90 66.364us alloc 80896B/1calls bytes_copied=80896 + [in-memory] borrow3 borrowed in-place lt=900 med 59.052us p10 52.939us p90 74.578us alloc 0B/0calls bytes_copied=0 + [oracle ok ] borrow3 lt=900: masks identical, popcount copy 18075 borrowed 18075 oracle 18075 + failed gates (reported, not exit code): 1 +== n = 10000000 sel = 20000 (in-memory) == + fixture built in 69193.310us (COLD): 20000 ids, 159944 edges +correction 1: route once vs per query (sel 20000) + [in-memory] route1/part prepare (P) med 164812.948us COLD (reported, not gate) p10 160257.855us p90 175733.368us alloc 10026116B/22calls COLD + [in-memory] route1/part guard+where A+where B (w) med 4.045us p10 3.668us p90 4.149us alloc 0B/0calls + [in-memory] route1/part fold w2_and (f) med 565.972us p10 467.822us p90 624.414us alloc 0B/0calls + [in-memory] route1_break_even_Q = 1.000 (Q >= 2) + [in-memory] route1 per_query Q=1 (per query) med 165895.533us COLD (reported, not gate) p10 163981.548us p90 172999.743us alloc 0B/0calls includes prepare + [in-memory] route1 reuse Q=1 (per query) med 173032.943us COLD (reported, not gate) p10 166204.320us p90 181124.214us alloc 0B/0calls includes 1 prepare + [in-memory] route1 reuse warm Q=1 (per query) med 487.184us p10 484.915us p90 501.791us alloc 0B/0calls no prepare + [oracle ok ] route1 Q=1: per_query == reuse == oracle (oracle every 1th query) + [in-memory] route1 per_query Q=16 (per query) med 172381.154us COLD (reported, not gate) p10 168887.209us p90 172506.918us alloc 0B/0calls includes prepare + [in-memory] route1 reuse Q=16 (per query) med 10031.140us COLD (reported, not gate) p10 9926.080us p90 12004.005us alloc 0B/0calls includes 1 prepare + [in-memory] route1 reuse warm Q=16 (per query) med 377.603us p10 368.040us p90 407.572us alloc 0B/0calls no prepare + [oracle ok ] route1 Q=16: per_query == reuse == oracle (oracle every 1th query) + [in-memory] route1 per_query Q=256 (per query) med 168183.626us COLD (reported, not gate) p10 168183.626us p90 168183.626us alloc 0B/0calls includes prepare + [in-memory] route1 reuse Q=256 (per query) med 1100.291us COLD (reported, not gate) p10 1100.291us p90 1100.291us alloc 0B/0calls includes 1 prepare + [in-memory] route1 reuse warm Q=256 (per query) med 378.526us p10 371.185us p90 411.039us alloc 0B/0calls no prepare + [oracle ok ] route1 Q=256: per_query == reuse == oracle (oracle every 16th query) + [oracle ok ] route1 stale: guard accepts the fresh binding + [oracle ok ] route1 stale: guard REFUSES the binding after replace_tile + [oracle ok ] route1 stale: disabled guard would NOT refuse (guard is load-bearing) + [oracle ok ] route1 stale: a fresh prepare after replace gives the oracle answer + [in-memory] route1_stale_fold_answer_unguarded = 832 (reported, equals fresh 832: true) +correction 2: ndarray kernels vs hand-written packed u8 compare (n 10000000) + [in-memory] kernel2 handwritten f0 < 64 med 3219.154us FAILED-GATE p10 3188.283us p90 7444.305us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f0 < 64 med 1948.932us FAILED-GATE p10 1916.467us p90 2081.143us alloc 0B/0calls 1 ternary passes + [oracle ok ] kernel2 f0 < 64: masks bit-identical, popcount hand 2500921 kernel 2500921 oracle 2500921 + [in-memory] kernel2 handwritten f2 >= 170 med 3229.769us FAILED-GATE p10 3139.084us p90 3312.597us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f2 >= 170 med 8423.505us FAILED-GATE p10 7987.559us p90 9819.324us alloc 0B/0calls 4 ternary passes + [oracle ok ] kernel2 f2 >= 170: masks bit-identical, popcount hand 3361973 kernel 3361973 oracle 3361973 + [in-memory] kernel2 handwritten f3 < 255 med 3213.734us FAILED-GATE p10 3158.964us p90 3352.926us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f3 < 255 med 16383.946us FAILED-GATE p10 15234.294us p90 17110.579us alloc 0B/0calls 8 ternary passes + [oracle ok ] kernel2 f3 < 255: masks bit-identical, popcount hand 9960816 kernel 9960816 oracle 9960816 + [in-memory] kernel2 handwritten f1 >= 64 med 3256.543us FAILED-GATE p10 3169.027us p90 3434.967us alloc 0B/0calls project.rs fill_lane + [in-memory] kernel2 kernel_ternary_or f1 >= 64 med 2095.654us FAILED-GATE p10 2065.148us p90 2178.108us alloc 0B/0calls 1 ternary passes + [oracle ok ] kernel2 f1 >= 64: masks bit-identical, popcount hand 7499717 kernel 7499717 oracle 7499717 +correction 3: borrowed lane reads vs gather_lane copies (sel 20000) + [in-memory] borrow3 copy gather_lane lt=100 med 122.492us p10 109.253us p90 176.445us alloc 80896B/1calls bytes_copied=80896 + [in-memory] borrow3 borrowed in-place lt=100 med 120.542us p10 108.969us p90 148.768us alloc 0B/0calls bytes_copied=0 + [oracle ok ] borrow3 lt=100: masks identical, popcount copy 2028 borrowed 2028 oracle 2028 + [in-memory] borrow3 copy gather_lane lt=500 med 111.256us p10 109.034us p90 130.695us alloc 80896B/1calls bytes_copied=80896 + [in-memory] borrow3 borrowed in-place lt=500 med 261.073us p10 242.948us p90 303.780us alloc 0B/0calls bytes_copied=0 + [oracle ok ] borrow3 lt=500: masks identical, popcount copy 9986 borrowed 9986 oracle 9986 + [in-memory] borrow3 copy gather_lane lt=900 med 111.261us p10 109.012us p90 127.780us alloc 80896B/1calls bytes_copied=80896 + [in-memory] borrow3 borrowed in-place lt=900 med 110.038us p10 101.207us p90 135.430us alloc 0B/0calls bytes_copied=0 + [oracle ok ] borrow3 lt=900: masks identical, popcount copy 18070 borrowed 18070 oracle 18070 + failed gates (reported, not exit code): 8 +CORRECTIONS ALL ANSWERS MATCH THE ORACLE diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json new file mode 100644 index 000000000..ff5d0a054 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json @@ -0,0 +1,30 @@ +{"lab":true,"label":"in-memory","n":1000000,"sel":20000,"ok":true,"failed_gates":1,"no_existing_kernel":"direct ordered u8 compare over a packed u32 lane","rows":[ +{"label":"in-memory","group":"route1/part","name":"prepare (P)","median_us":162177.266,"p10_us":154647.238,"p90_us":178524.931,"cold":true,"failed_gate":false,"alloc_bytes":10025440,"alloc_calls":22,"note":"COLD"}, +{"label":"in-memory","group":"route1/part","name":"guard+where A+where B (w)","median_us":3.628,"p10_us":3.437,"p90_us":4.107,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, +{"label":"in-memory","group":"route1/part","name":"fold w2_and (f)","median_us":461.059,"p10_us":447.229,"p90_us":485.036,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, +{"label":"in-memory","note":"route1_break_even_Q","value":"1.000 (Q >= 2)"}, +{"label":"in-memory","group":"route1","name":"per_query Q=1 (per query)","median_us":163961.826,"p10_us":161042.026,"p90_us":169573.810,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, +{"label":"in-memory","group":"route1","name":"reuse Q=1 (per query)","median_us":158198.132,"p10_us":154608.574,"p90_us":165699.276,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, +{"label":"in-memory","group":"route1","name":"reuse warm Q=1 (per query)","median_us":493.792,"p10_us":488.223,"p90_us":502.973,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, +{"label":"in-memory","group":"route1","name":"per_query Q=16 (per query)","median_us":168808.956,"p10_us":165603.115,"p90_us":170437.212,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, +{"label":"in-memory","group":"route1","name":"reuse Q=16 (per query)","median_us":10420.953,"p10_us":10060.888,"p90_us":11776.117,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, +{"label":"in-memory","group":"route1","name":"reuse warm Q=16 (per query)","median_us":385.223,"p10_us":375.793,"p90_us":388.868,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, +{"label":"in-memory","group":"route1","name":"per_query Q=256 (per query)","median_us":172018.005,"p10_us":172018.005,"p90_us":172018.005,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, +{"label":"in-memory","group":"route1","name":"reuse Q=256 (per query)","median_us":1011.869,"p10_us":1011.869,"p90_us":1011.869,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, +{"label":"in-memory","group":"route1","name":"reuse warm Q=256 (per query)","median_us":381.206,"p10_us":379.170,"p90_us":394.978,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, +{"label":"in-memory","note":"route1_stale_fold_answer_unguarded","value":"896 (reported, equals fresh 896: true)"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f0 < 64","median_us":289.017,"p10_us":279.143,"p90_us":310.816,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f0 < 64","median_us":172.174,"p10_us":147.163,"p90_us":261.068,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f2 >= 170","median_us":291.321,"p10_us":283.516,"p90_us":326.333,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f2 >= 170","median_us":649.049,"p10_us":625.306,"p90_us":851.022,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"4 ternary passes"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f3 < 255","median_us":335.876,"p10_us":284.102,"p90_us":398.478,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f3 < 255","median_us":1299.575,"p10_us":1263.328,"p90_us":1690.789,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"8 ternary passes"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f1 >= 64","median_us":311.835,"p10_us":295.437,"p90_us":440.211,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f1 >= 64","median_us":161.284,"p10_us":154.012,"p90_us":182.514,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, +{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=100","median_us":43.127,"p10_us":41.025,"p90_us":74.082,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, +{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=100","median_us":43.186,"p10_us":35.372,"p90_us":58.332,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, +{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=500","median_us":60.665,"p10_us":40.288,"p90_us":97.912,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, +{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=500","median_us":148.899,"p10_us":141.133,"p90_us":177.940,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, +{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=900","median_us":44.736,"p10_us":42.908,"p90_us":66.364,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, +{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=900","median_us":59.052,"p10_us":52.939,"p90_us":74.578,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json new file mode 100644 index 000000000..b7ab6e6c9 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json @@ -0,0 +1,30 @@ +{"lab":true,"label":"in-memory","n":10000000,"sel":20000,"ok":true,"failed_gates":8,"no_existing_kernel":"direct ordered u8 compare over a packed u32 lane","rows":[ +{"label":"in-memory","group":"route1/part","name":"prepare (P)","median_us":164812.948,"p10_us":160257.855,"p90_us":175733.368,"cold":true,"failed_gate":false,"alloc_bytes":10026116,"alloc_calls":22,"note":"COLD"}, +{"label":"in-memory","group":"route1/part","name":"guard+where A+where B (w)","median_us":4.045,"p10_us":3.668,"p90_us":4.149,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, +{"label":"in-memory","group":"route1/part","name":"fold w2_and (f)","median_us":565.972,"p10_us":467.822,"p90_us":624.414,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, +{"label":"in-memory","note":"route1_break_even_Q","value":"1.000 (Q >= 2)"}, +{"label":"in-memory","group":"route1","name":"per_query Q=1 (per query)","median_us":165895.533,"p10_us":163981.548,"p90_us":172999.743,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, +{"label":"in-memory","group":"route1","name":"reuse Q=1 (per query)","median_us":173032.943,"p10_us":166204.320,"p90_us":181124.214,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, +{"label":"in-memory","group":"route1","name":"reuse warm Q=1 (per query)","median_us":487.184,"p10_us":484.915,"p90_us":501.791,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, +{"label":"in-memory","group":"route1","name":"per_query Q=16 (per query)","median_us":172381.154,"p10_us":168887.209,"p90_us":172506.918,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, +{"label":"in-memory","group":"route1","name":"reuse Q=16 (per query)","median_us":10031.140,"p10_us":9926.080,"p90_us":12004.005,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, +{"label":"in-memory","group":"route1","name":"reuse warm Q=16 (per query)","median_us":377.603,"p10_us":368.040,"p90_us":407.572,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, +{"label":"in-memory","group":"route1","name":"per_query Q=256 (per query)","median_us":168183.626,"p10_us":168183.626,"p90_us":168183.626,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, +{"label":"in-memory","group":"route1","name":"reuse Q=256 (per query)","median_us":1100.291,"p10_us":1100.291,"p90_us":1100.291,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, +{"label":"in-memory","group":"route1","name":"reuse warm Q=256 (per query)","median_us":378.526,"p10_us":371.185,"p90_us":411.039,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, +{"label":"in-memory","note":"route1_stale_fold_answer_unguarded","value":"832 (reported, equals fresh 832: true)"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f0 < 64","median_us":3219.154,"p10_us":3188.283,"p90_us":7444.305,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f0 < 64","median_us":1948.932,"p10_us":1916.467,"p90_us":2081.143,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f2 >= 170","median_us":3229.769,"p10_us":3139.084,"p90_us":3312.597,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f2 >= 170","median_us":8423.505,"p10_us":7987.559,"p90_us":9819.324,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"4 ternary passes"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f3 < 255","median_us":3213.734,"p10_us":3158.964,"p90_us":3352.926,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f3 < 255","median_us":16383.946,"p10_us":15234.294,"p90_us":17110.579,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"8 ternary passes"}, +{"label":"in-memory","group":"kernel2","name":"handwritten f1 >= 64","median_us":3256.543,"p10_us":3169.027,"p90_us":3434.967,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, +{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f1 >= 64","median_us":2095.654,"p10_us":2065.148,"p90_us":2178.108,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, +{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=100","median_us":122.492,"p10_us":109.253,"p90_us":176.445,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, +{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=100","median_us":120.542,"p10_us":108.969,"p90_us":148.768,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, +{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=500","median_us":111.256,"p10_us":109.034,"p90_us":130.695,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, +{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=500","median_us":261.073,"p10_us":242.948,"p90_us":303.780,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, +{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=900","median_us":111.261,"p10_us":109.012,"p90_us":127.780,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, +{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=900","median_us":110.038,"p10_us":101.207,"p90_us":135.430,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"} +]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json new file mode 100644 index 000000000..b00b54150 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json @@ -0,0 +1,108 @@ +{ + "label": "Lance-backed LAB", "n": 1000000, "reps": 5, "attest_cold_us": 86093.4, + "owner_gates": ["S-INGRESS", "D4"], + "rows": [ + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":1219.4,"resolve":13.1,"route":0.0,"ingress":0.0,"lance":20836.0,"fold":109.8,"total":22878.1,"cold_total":24831.7},"rows_scanned":1000000,"rows_selected":988,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":1191.1,"resolve":10.3,"route":0.0,"ingress":145.2,"lance":29858.0,"fold":1.2,"total":32027.1,"cold_total":42335.0},"rows_scanned":1000988,"rows_selected":988,"bytes_read":3797280,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":9.2,"route":439.9,"ingress":108.7,"lance":2440.4,"fold":1.1,"total":3104.9,"cold_total":4417.5},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":13.6,"route":308.6,"ingress":126.3,"lance":2578.9,"fold":1.2,"total":3085.5,"cold_total":3001.3},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":1476.8,"resolve":25.8,"route":0.0,"ingress":0.0,"lance":45604.3,"fold":573.3,"total":49097.0,"cold_total":45311.1},"rows_scanned":1000000,"rows_selected":988,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":1370.0,"resolve":16.8,"route":0.0,"ingress":173.2,"lance":34452.1,"fold":3.4,"total":36792.4,"cold_total":37605.0},"rows_scanned":1000988,"rows_selected":988,"bytes_read":7591968,"bytes_vs_A_pct":119.9,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":10.4,"route":657.5,"ingress":142.4,"lance":6204.9,"fold":2.6,"total":7089.5,"cold_total":6685.3},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":17.5,"route":510.5,"ingress":200.2,"lance":6245.5,"fold":3.2,"total":7064.6,"cold_total":7279.1},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1356.7,"resolve":40.2,"route":0.0,"ingress":0.0,"lance":129464.8,"fold":1435.5,"total":135461.8,"cold_total":134363.5},"rows_scanned":1000000,"rows_selected":988,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1189.1,"resolve":24.7,"route":0.0,"ingress":159.3,"lance":51347.6,"fold":11.0,"total":53972.0,"cold_total":58533.1},"rows_scanned":1000988,"rows_selected":988,"bytes_read":22770720,"bytes_vs_A_pct":112.2,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":23.2,"route":644.0,"ingress":156.9,"lance":19219.0,"fold":8.6,"total":20052.9,"cold_total":26225.8},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":23.9,"route":602.9,"ingress":151.3,"lance":20015.9,"fold":12.2,"total":21035.8,"cold_total":21614.9},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":1039.3,"resolve":12.4,"route":0.0,"ingress":0.0,"lance":18366.8,"fold":19.7,"total":20010.1,"cold_total":23065.2},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":852.7,"resolve":7.6,"route":0.0,"ingress":72.7,"lance":21267.6,"fold":1.2,"total":22991.9,"cold_total":24342.8},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2388400,"bytes_vs_A_pct":65.4,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":7.5,"route":92.4,"ingress":1.9,"lance":1175.6,"fold":1.4,"total":1286.0,"cold_total":1419.0},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":8.7,"route":74.5,"ingress":1.6,"lance":1011.3,"fold":1.1,"total":1139.4,"cold_total":1299.0},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":993.9,"resolve":19.0,"route":0.0,"ingress":0.0,"lance":42229.3,"fold":50.5,"total":44513.3,"cold_total":38137.0},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":784.9,"resolve":10.0,"route":0.0,"ingress":61.0,"lance":16662.6,"fold":2.6,"total":17971.7,"cold_total":19391.1},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2396176,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.9,"route":80.1,"ingress":1.4,"lance":1401.4,"fold":2.3,"total":1515.9,"cold_total":1427.5},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":12.5,"route":95.0,"ingress":5.1,"lance":1942.9,"fold":2.5,"total":2081.4,"cold_total":1668.8},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":785.2,"resolve":26.9,"route":0.0,"ingress":0.0,"lance":97252.1,"fold":149.1,"total":101192.6,"cold_total":145065.2},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":718.2,"resolve":17.0,"route":0.0,"ingress":58.7,"lance":15428.2,"fold":8.1,"total":16715.7,"cold_total":19496.6},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2427280,"bytes_vs_A_pct":10.7,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.8,"route":73.2,"ingress":1.8,"lance":1708.0,"fold":7.3,"total":1837.2,"cold_total":2051.8},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.8,"route":69.3,"ingress":1.4,"lance":1569.6,"fold":7.2,"total":1672.7,"cold_total":1624.2},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":1001.0,"resolve":10.3,"route":0.0,"ingress":0.0,"lance":16106.2,"fold":180.1,"total":17752.7,"cold_total":18101.0},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":1030.1,"resolve":11.0,"route":0.0,"ingress":622.4,"lance":24411.7,"fold":2.1,"total":27277.6,"cold_total":27906.1},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":9.9,"route":2118.8,"ingress":1715.2,"lance":4579.7,"fold":1.7,"total":8473.6,"cold_total":9828.7},"rows_scanned":10169,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":10.6,"route":1622.1,"ingress":1594.9,"lance":4787.9,"fold":85.0,"total":8055.6,"cold_total":7117.4},"rows_scanned":17101,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":1030.9,"resolve":16.5,"route":0.0,"ingress":0.0,"lance":29686.9,"fold":715.2,"total":32539.7,"cold_total":35804.6},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":983.8,"resolve":13.2,"route":0.0,"ingress":502.9,"lance":30060.3,"fold":5.1,"total":32284.7,"cold_total":37626.2},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":11.4,"route":2265.1,"ingress":1665.9,"lance":11176.8,"fold":4.8,"total":15797.7,"cold_total":15437.0},"rows_scanned":10169,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":11.3,"route":1970.7,"ingress":1164.8,"lance":9283.7,"fold":93.7,"total":12444.6,"cold_total":13597.0},"rows_scanned":17101,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1148.4,"resolve":27.5,"route":0.0,"ingress":0.0,"lance":87902.9,"fold":3108.3,"total":95406.2,"cold_total":90565.6},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1036.8,"resolve":22.0,"route":0.0,"ingress":560.6,"lance":58747.0,"fold":23.0,"total":60807.9,"cold_total":66825.2},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":20.3,"route":2675.1,"ingress":1183.3,"lance":38871.8,"fold":25.6,"total":42853.4,"cold_total":40893.9},"rows_scanned":10169,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":21.6,"route":2747.8,"ingress":1181.4,"lance":33800.7,"fold":351.7,"total":38261.4,"cold_total":36860.1},"rows_scanned":17101,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":552.5,"resolve":9.7,"route":0.0,"ingress":0.0,"lance":10038.2,"fold":28.2,"total":10635.3,"cold_total":12694.9},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":385.4,"resolve":7.5,"route":0.0,"ingress":200.5,"lance":13023.9,"fold":1.7,"total":13937.2,"cold_total":21159.4},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2400064,"bytes_vs_A_pct":65.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":6.0,"route":706.5,"ingress":1.6,"lance":861.0,"fold":1.7,"total":1584.2,"cold_total":1677.3},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":5.2,"route":688.5,"ingress":1.4,"lance":720.7,"fold":1.5,"total":1425.6,"cold_total":1466.3},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":477.1,"resolve":12.6,"route":0.0,"ingress":0.0,"lance":29573.3,"fold":72.0,"total":30841.0,"cold_total":29446.8},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":514.8,"resolve":9.8,"route":0.0,"ingress":267.7,"lance":15239.1,"fold":5.1,"total":16379.2,"cold_total":20654.6},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2442832,"bytes_vs_A_pct":32.8,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.9,"route":780.8,"ingress":2.6,"lance":1519.3,"fold":5.9,"total":2346.6,"cold_total":2259.5},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":8.1,"route":700.1,"ingress":1.7,"lance":1198.0,"fold":4.6,"total":1924.6,"cold_total":2325.4},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":974.4,"resolve":29.1,"route":0.0,"ingress":0.0,"lance":100600.9,"fold":341.3,"total":106245.2,"cold_total":123512.0},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":549.2,"resolve":17.1,"route":0.0,"ingress":250.8,"lance":15192.2,"fold":20.3,"total":16410.0,"cold_total":23234.3},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2613904,"bytes_vs_A_pct":11.5,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":14.0,"route":721.1,"ingress":2.0,"lance":2000.3,"fold":17.8,"total":2776.7,"cold_total":2864.9},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":14.7,"route":712.3,"ingress":2.0,"lance":2058.9,"fold":18.8,"total":2805.1,"cold_total":2735.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":874.2,"resolve":11.5,"route":0.0,"ingress":0.0,"lance":16863.5,"fold":540.3,"total":18770.0,"cold_total":21012.3},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":940.0,"resolve":11.8,"route":0.0,"ingress":3402.8,"lance":40315.2,"fold":10.5,"total":46551.8,"cold_total":41093.4},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":11.0,"route":9171.2,"ingress":9833.8,"lance":22398.1,"fold":10.3,"total":41407.5,"cold_total":48565.7},"rows_scanned":100164,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":11.8,"route":8798.1,"ingress":0.1,"lance":12234.6,"fold":2261.4,"total":24327.1,"cold_total":25198.1},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":866.3,"resolve":14.3,"route":0.0,"ingress":0.0,"lance":28051.6,"fold":2066.5,"total":31932.2,"cold_total":31664.8},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":1008.4,"resolve":19.4,"route":0.0,"ingress":3509.9,"lance":76683.6,"fold":118.1,"total":82394.8,"cold_total":79623.8},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":16.7,"route":9125.0,"ingress":9499.4,"lance":55457.1,"fold":100.4,"total":73703.1,"cold_total":72791.1},"rows_scanned":100164,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":15.6,"route":8685.8,"ingress":0.1,"lance":26865.1,"fold":4156.1,"total":40787.7,"cold_total":42443.8},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1014.2,"resolve":27.9,"route":0.0,"ingress":0.0,"lance":86592.6,"fold":9362.1,"total":100306.0,"cold_total":98768.6},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1048.0,"resolve":27.0,"route":0.0,"ingress":3656.9,"lance":261354.3,"fold":551.5,"total":267133.4,"cold_total":289051.5},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":25.7,"route":9094.1,"ingress":9340.7,"lance":232319.1,"fold":755.1,"total":252869.9,"cold_total":266162.2},"rows_scanned":100164,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":27.2,"route":9351.2,"ingress":0.1,"lance":94254.5,"fold":11392.6,"total":118873.0,"cold_total":117810.4},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":616.7,"resolve":10.0,"route":0.0,"ingress":0.0,"lance":8798.5,"fold":84.1,"total":9494.6,"cold_total":14825.5},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":392.9,"resolve":8.4,"route":0.0,"ingress":1328.5,"lance":14024.5,"fold":10.0,"total":16231.9,"cold_total":18143.7},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2512816,"bytes_vs_A_pct":68.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":7.2,"route":6847.4,"ingress":2.5,"lance":1692.7,"fold":9.8,"total":8536.0,"cold_total":8167.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":127008,"bytes_vs_A_pct":3.5,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":9.4,"route":7010.6,"ingress":0.1,"lance":13137.7,"fold":1481.6,"total":22998.4,"cold_total":21169.0},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":552.0,"resolve":12.1,"route":0.0,"ingress":0.0,"lance":27221.7,"fold":435.2,"total":28867.8,"cold_total":32324.6},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":487.1,"resolve":11.1,"route":0.0,"ingress":1418.9,"lance":15837.2,"fold":53.1,"total":18422.4,"cold_total":18482.8},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2893840,"bytes_vs_A_pct":38.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":10.0,"route":6908.0,"ingress":2.7,"lance":2558.2,"fold":57.7,"total":9705.4,"cold_total":10648.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":508032,"bytes_vs_A_pct":6.8,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":13.3,"route":6971.5,"ingress":0.1,"lance":26032.7,"fold":2195.6,"total":37321.5,"cold_total":42611.8},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":791.2,"resolve":25.1,"route":0.0,"ingress":0.0,"lance":86544.6,"fold":1715.2,"total":91791.3,"cold_total":94959.2},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":560.8,"resolve":17.5,"route":0.0,"ingress":1358.4,"lance":17572.4,"fold":370.5,"total":20262.6,"cold_total":23697.8},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":4417936,"bytes_vs_A_pct":19.5,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":16.6,"route":6867.5,"ingress":2.7,"lance":5541.1,"fold":311.2,"total":12753.0,"cold_total":13697.2},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2032128,"bytes_vs_A_pct":9.0,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":26.0,"route":7356.1,"ingress":0.1,"lance":93129.2,"fold":3662.1,"total":107773.0,"cold_total":104394.0},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":817.1,"resolve":12.4,"route":0.0,"ingress":0.0,"lance":15548.2,"fold":827.2,"total":17781.6,"cold_total":21762.5},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1017.4,"resolve":17.0,"route":0.0,"ingress":11087.0,"lance":114419.7,"fold":203.2,"total":131388.4,"cold_total":117980.1},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1037.2,"resolve":16.2,"route":0.0,"ingress":9745.0,"lance":107947.8,"fold":160.9,"total":121538.6,"cold_total":129256.8},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":16.0,"route":39325.4,"ingress":19027.7,"lance":98898.3,"fold":222.2,"total":157397.7,"cold_total":155933.9},"rows_scanned":500613,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":15.9,"route":36297.2,"ingress":0.1,"lance":15672.3,"fold":3455.5,"total":56132.7,"cold_total":59943.5},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":891.0,"resolve":17.9,"route":0.0,"ingress":0.0,"lance":25421.0,"fold":3381.8,"total":30361.1,"cold_total":33614.4},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":1118.9,"resolve":23.2,"route":0.0,"ingress":10075.8,"lance":279938.9,"fold":1079.4,"total":294164.7,"cold_total":296849.1},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":1105.5,"resolve":20.4,"route":0.0,"ingress":12424.6,"lance":297918.3,"fold":1011.0,"total":313986.4,"cold_total":318853.2},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.4,"route":39789.7,"ingress":20396.0,"lance":272929.8,"fold":951.2,"total":338903.1,"cold_total":312280.1},"rows_scanned":500613,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.0,"route":36548.9,"ingress":0.1,"lance":28804.7,"fold":6386.1,"total":73828.6,"cold_total":72062.8},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1147.9,"resolve":30.6,"route":0.0,"ingress":0.0,"lance":93009.8,"fold":16332.9,"total":115590.9,"cold_total":104185.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1155.2,"resolve":28.2,"route":0.0,"ingress":9999.2,"lance":942878.4,"fold":3892.0,"total":959523.1,"cold_total":953101.8},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1013.2,"resolve":28.1,"route":0.0,"ingress":8543.4,"lance":897082.5,"fold":3348.8,"total":912040.5,"cold_total":991048.4},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":35.2,"route":44428.9,"ingress":19380.4,"lance":925837.1,"fold":3734.0,"total":991881.9,"cold_total":982818.2},"rows_scanned":500613,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":30.0,"route":37230.5,"ingress":0.1,"lance":94530.6,"fold":17478.8,"total":152697.5,"cold_total":142316.7},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":686.5,"resolve":8.8,"route":0.0,"ingress":0.0,"lance":7299.8,"fold":428.1,"total":8654.1,"cold_total":9919.0},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":430.2,"resolve":9.8,"route":0.0,"ingress":6289.3,"lance":15989.0,"fold":67.0,"total":23235.3,"cold_total":23667.4},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":402.4,"resolve":10.2,"route":0.0,"ingress":6164.2,"lance":15044.0,"fold":75.5,"total":22696.7,"cold_total":23273.7},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":9.8,"route":34982.4,"ingress":7.6,"lance":4012.8,"fold":154.8,"total":41181.7,"cold_total":41358.9},"rows_scanned":500000,"rows_selected":500000,"bytes_read":633744,"bytes_vs_A_pct":17.4,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":12.0,"route":35495.5,"ingress":0.1,"lance":14098.8,"fold":2533.9,"total":52503.2,"cold_total":54110.4},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":617.3,"resolve":15.2,"route":0.0,"ingress":0.0,"lance":24583.4,"fold":2038.4,"total":27722.5,"cold_total":28999.0},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":622.7,"resolve":13.2,"route":0.0,"ingress":6227.5,"lance":20577.2,"fold":506.2,"total":28631.5,"cold_total":29495.1},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":641.0,"resolve":12.6,"route":0.0,"ingress":6154.7,"lance":17948.4,"fold":438.3,"total":25697.5,"cold_total":27052.2},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":12.9,"route":34156.2,"ingress":9.1,"lance":8587.2,"fold":1070.3,"total":43852.7,"cold_total":43435.4},"rows_scanned":500000,"rows_selected":500000,"bytes_read":2534976,"bytes_vs_A_pct":34.0,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":20.0,"route":35715.9,"ingress":0.1,"lance":27422.1,"fold":5519.2,"total":70462.0,"cold_total":66352.6},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":850.3,"resolve":30.3,"route":0.0,"ingress":0.0,"lance":91687.6,"fold":8430.7,"total":103417.0,"cold_total":103413.3},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":755.4,"resolve":27.0,"route":0.0,"ingress":6465.8,"lance":50496.5,"fold":4115.8,"total":63426.1,"cold_total":67691.7},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":679.5,"resolve":21.3,"route":0.0,"ingress":6246.2,"lance":46078.6,"fold":3669.7,"total":57705.7,"cold_total":65543.5},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":22.7,"route":35422.7,"ingress":7.6,"lance":34239.8,"fold":3989.5,"total":73369.1,"cold_total":70244.1},"rows_scanned":500000,"rows_selected":500000,"bytes_read":10139904,"bytes_vs_A_pct":44.7,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":25.9,"route":34519.5,"ingress":0.1,"lance":93231.9,"fold":10920.5,"total":143081.8,"cold_total":134650.4},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} + ] +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log new file mode 100644 index 000000000..3b8ef24f8 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log @@ -0,0 +1,162 @@ +# where_lance_arm LAB, Lance-backed, n=1000000, warm reps=5, seed=0x9e3779b97f4a7c15 +# mask ingress COPIES addresses into RowAddrTreeMap (S-INGRESS open, not zero-copy) +BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / single authority open, #1788); arm C's ids are given directly; no DR ordinal is composed with _rowid + +== ClassView refusals (each with a paired success control) == + [ok ] control: resolve -> exactly the 2 demanded columns (schema has more) + [ok ] control: resolved names equal the fixture truth (not label, not ordinal) + [ok ] AbsentField refused, no column list + [ok ] AbsentField control: present position resolves + [ok ] Unauthorized refused, no column list + [ok ] Unauthorized control: permitted position resolves + [ok ] UnknownProperty refused, no column list + [ok ] UnknownProperty control: known position resolves + [ok ] AmbiguousProperty refused (2 columns), no column list + [ok ] AmbiguousProperty control: unambiguous position resolves + +== Mapping traps (the test would catch a positional or label mapping) == + ordinal mapping wrong on 16/16 positions; label mapping finds no column on 16/16 + [ok ] ordinal mapping gives a different answer (trap is live) + [ok ] label mapping finds no physical column + +== Staleness (dataset appended after resolution / attest) == + [ok ] control: schema resolution current before append + [ok ] control: lane fresh before append + [ok ] control: seek under the real witness runs + [ok ] StaleSchema refused after append + [ok ] stale lane refused after append + [ok ] other dataset refused + [ok ] forged (newer-version) witness refused by seek_from + +# attest (cold, once per version): 86093.4 us [COLD/IO, reported] + +== Measurements (us, median of 5 warm runs; cold = first run) == +-- scattered target 0.1% actual 0.099% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1219.4 resolve 13.1 route 0.0 ingress 0.0 lance 20836.0 fold 109.8 total 22878.1 cold 24831.7 | scanned 1000000 sel 988 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1191.1 resolve 10.3 route 0.0 ingress 145.2 lance 29858.0 fold 1.2 total 32027.1 cold 42335.0 | scanned 1000988 sel 988 bytes 3797280 (100.0% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 9.2 route 439.9 ingress 108.7 lance 2440.4 fold 1.1 total 3104.9 cold 4417.5 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 13.6 route 308.6 ingress 126.3 lance 2578.9 fold 1.2 total 3085.5 cold 3001.3 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- scattered target 0.1% actual 0.099% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1476.8 resolve 25.8 route 0.0 ingress 0.0 lance 45604.3 fold 573.3 total 49097.0 cold 45311.1 | scanned 1000000 sel 988 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1370.0 resolve 16.8 route 0.0 ingress 173.2 lance 34452.1 fold 3.4 total 36792.4 cold 37605.0 | scanned 1000988 sel 988 bytes 7591968 (119.9% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 10.4 route 657.5 ingress 142.4 lance 6204.9 fold 2.6 total 7089.5 cold 6685.3 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 17.5 route 510.5 ingress 200.2 lance 6245.5 fold 3.2 total 7064.6 cold 7279.1 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- scattered target 0.1% actual 0.099% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1356.7 resolve 40.2 route 0.0 ingress 0.0 lance 129464.8 fold 1435.5 total 135461.8 cold 134363.5 | scanned 1000000 sel 988 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1189.1 resolve 24.7 route 0.0 ingress 159.3 lance 51347.6 fold 11.0 total 53972.0 cold 58533.1 | scanned 1000988 sel 988 bytes 22770720 (112.2% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 23.2 route 644.0 ingress 156.9 lance 19219.0 fold 8.6 total 20052.9 cold 26225.8 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 23.9 route 602.9 ingress 151.3 lance 20015.9 fold 12.2 total 21035.8 cold 21614.9 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- clustered target 0.1% actual 0.100% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1039.3 resolve 12.4 route 0.0 ingress 0.0 lance 18366.8 fold 19.7 total 20010.1 cold 23065.2 | scanned 1000000 sel 1000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 852.7 resolve 7.6 route 0.0 ingress 72.7 lance 21267.6 fold 1.2 total 22991.9 cold 24342.8 | scanned 1001000 sel 1000 bytes 2388400 ( 65.4% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 7.5 route 92.4 ingress 1.9 lance 1175.6 fold 1.4 total 1286.0 cold 1419.0 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 8.7 route 74.5 ingress 1.6 lance 1011.3 fold 1.1 total 1139.4 cold 1299.0 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- clustered target 0.1% actual 0.100% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 993.9 resolve 19.0 route 0.0 ingress 0.0 lance 42229.3 fold 50.5 total 44513.3 cold 38137.0 | scanned 1000000 sel 1000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 784.9 resolve 10.0 route 0.0 ingress 61.0 lance 16662.6 fold 2.6 total 17971.7 cold 19391.1 | scanned 1001000 sel 1000 bytes 2396176 ( 32.2% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 7.9 route 80.1 ingress 1.4 lance 1401.4 fold 2.3 total 1515.9 cold 1427.5 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 12.5 route 95.0 ingress 5.1 lance 1942.9 fold 2.5 total 2081.4 cold 1668.8 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- clustered target 0.1% actual 0.100% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 785.2 resolve 26.9 route 0.0 ingress 0.0 lance 97252.1 fold 149.1 total 101192.6 cold 145065.2 | scanned 1000000 sel 1000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 718.2 resolve 17.0 route 0.0 ingress 58.7 lance 15428.2 fold 8.1 total 16715.7 cold 19496.6 | scanned 1001000 sel 1000 bytes 2427280 ( 10.7% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 13.8 route 73.2 ingress 1.8 lance 1708.0 fold 7.3 total 1837.2 cold 2051.8 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 13.8 route 69.3 ingress 1.4 lance 1569.6 fold 7.2 total 1672.7 cold 1624.2 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- scattered target 1.0% actual 1.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1001.0 resolve 10.3 route 0.0 ingress 0.0 lance 16106.2 fold 180.1 total 17752.7 cold 18101.0 | scanned 1000000 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1030.1 resolve 11.0 route 0.0 ingress 622.4 lance 24411.7 fold 2.1 total 27277.6 cold 27906.1 | scanned 1010169 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 20486B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 9.9 route 2118.8 ingress 1715.2 lance 4579.7 fold 1.7 total 8473.6 cold 9828.7 | scanned 10169 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 10.6 route 1622.1 ingress 1594.9 lance 4787.9 fold 85.0 total 8055.6 cold 7117.4 | scanned 17101 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- scattered target 1.0% actual 1.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1030.9 resolve 16.5 route 0.0 ingress 0.0 lance 29686.9 fold 715.2 total 32539.7 cold 35804.6 | scanned 1000000 sel 10169 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 983.8 resolve 13.2 route 0.0 ingress 502.9 lance 30060.3 fold 5.1 total 32284.7 cold 37626.2 | scanned 1010169 sel 10169 bytes 7597152 (120.0% of A) row_addr_mask 20486B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 11.4 route 2265.1 ingress 1665.9 lance 11176.8 fold 4.8 total 15797.7 cold 15437.0 | scanned 10169 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 11.3 route 1970.7 ingress 1164.8 lance 9283.7 fold 93.7 total 12444.6 cold 13597.0 | scanned 17101 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- scattered target 1.0% actual 1.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1148.4 resolve 27.5 route 0.0 ingress 0.0 lance 87902.9 fold 3108.3 total 95406.2 cold 90565.6 | scanned 1000000 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1036.8 resolve 22.0 route 0.0 ingress 560.6 lance 58747.0 fold 23.0 total 60807.9 cold 66825.2 | scanned 1010169 sel 10169 bytes 22819568 (112.5% of A) row_addr_mask 20486B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 20.3 route 2675.1 ingress 1183.3 lance 38871.8 fold 25.6 total 42853.4 cold 40893.9 | scanned 10169 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 21.6 route 2747.8 ingress 1181.4 lance 33800.7 fold 351.7 total 38261.4 cold 36860.1 | scanned 17101 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- clustered target 1.0% actual 1.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 552.5 resolve 9.7 route 0.0 ingress 0.0 lance 10038.2 fold 28.2 total 10635.3 cold 12694.9 | scanned 1000000 sel 10000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 385.4 resolve 7.5 route 0.0 ingress 200.5 lance 13023.9 fold 1.7 total 13937.2 cold 21159.4 | scanned 1010000 sel 10000 bytes 2400064 ( 65.7% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 6.0 route 706.5 ingress 1.6 lance 861.0 fold 1.7 total 1584.2 cold 1677.3 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 5.2 route 688.5 ingress 1.4 lance 720.7 fold 1.5 total 1425.6 cold 1466.3 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- clustered target 1.0% actual 1.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 477.1 resolve 12.6 route 0.0 ingress 0.0 lance 29573.3 fold 72.0 total 30841.0 cold 29446.8 | scanned 1000000 sel 10000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 514.8 resolve 9.8 route 0.0 ingress 267.7 lance 15239.1 fold 5.1 total 16379.2 cold 20654.6 | scanned 1010000 sel 10000 bytes 2442832 ( 32.8% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 10.9 route 780.8 ingress 2.6 lance 1519.3 fold 5.9 total 2346.6 cold 2259.5 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 8.1 route 700.1 ingress 1.7 lance 1198.0 fold 4.6 total 1924.6 cold 2325.4 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- clustered target 1.0% actual 1.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 974.4 resolve 29.1 route 0.0 ingress 0.0 lance 100600.9 fold 341.3 total 106245.2 cold 123512.0 | scanned 1000000 sel 10000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 549.2 resolve 17.1 route 0.0 ingress 250.8 lance 15192.2 fold 20.3 total 16410.0 cold 23234.3 | scanned 1010000 sel 10000 bytes 2613904 ( 11.5% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 14.0 route 721.1 ingress 2.0 lance 2000.3 fold 17.8 total 2776.7 cold 2864.9 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 14.7 route 712.3 ingress 2.0 lance 2058.9 fold 18.8 total 2805.1 cold 2735.7 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- scattered target 10.0% actual 10.016% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) + A-full Lance-backed | where 874.2 resolve 11.5 route 0.0 ingress 0.0 lance 16863.5 fold 540.3 total 18770.0 cold 21012.3 | scanned 1000000 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 940.0 resolve 11.8 route 0.0 ingress 3402.8 lance 40315.2 fold 10.5 total 46551.8 cold 41093.4 | scanned 1100164 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 126420B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 11.0 route 9171.2 ingress 9833.8 lance 22398.1 fold 10.3 total 41407.5 cold 48565.7 | scanned 100164 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 11.8 route 8798.1 ingress 0.1 lance 12234.6 fold 2261.4 total 24327.1 cold 25198.1 | scanned 1000000 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 10.0% actual 10.016% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) + A-full Lance-backed | where 866.3 resolve 14.3 route 0.0 ingress 0.0 lance 28051.6 fold 2066.5 total 31932.2 cold 31664.8 | scanned 1000000 sel 100164 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1008.4 resolve 19.4 route 0.0 ingress 3509.9 lance 76683.6 fold 118.1 total 82394.8 cold 79623.8 | scanned 1100164 sel 100164 bytes 7597152 (120.0% of A) row_addr_mask 126420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 16.7 route 9125.0 ingress 9499.4 lance 55457.1 fold 100.4 total 73703.1 cold 72791.1 | scanned 100164 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 15.6 route 8685.8 ingress 0.1 lance 26865.1 fold 4156.1 total 40787.7 cold 42443.8 | scanned 1000000 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 10.0% actual 10.016% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1014.2 resolve 27.9 route 0.0 ingress 0.0 lance 86592.6 fold 9362.1 total 100306.0 cold 98768.6 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1048.0 resolve 27.0 route 0.0 ingress 3656.9 lance 261354.3 fold 551.5 total 267133.4 cold 289051.5 | scanned 1100164 sel 100164 bytes 22819568 (112.5% of A) row_addr_mask 126420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 25.7 route 9094.1 ingress 9340.7 lance 232319.1 fold 755.1 total 252869.9 cold 266162.2 | scanned 100164 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 27.2 route 9351.2 ingress 0.1 lance 94254.5 fold 11392.6 total 118873.0 cold 117810.4 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 10.0% actual 10.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 616.7 resolve 10.0 route 0.0 ingress 0.0 lance 8798.5 fold 84.1 total 9494.6 cold 14825.5 | scanned 1000000 sel 100000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 392.9 resolve 8.4 route 0.0 ingress 1328.5 lance 14024.5 fold 10.0 total 16231.9 cold 18143.7 | scanned 1100000 sel 100000 bytes 2512816 ( 68.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 7.2 route 6847.4 ingress 2.5 lance 1692.7 fold 9.8 total 8536.0 cold 8167.4 | scanned 100000 sel 100000 bytes 127008 ( 3.5% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 9.4 route 7010.6 ingress 0.1 lance 13137.7 fold 1481.6 total 22998.4 cold 21169.0 | scanned 1000000 sel 100000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 10.0% actual 10.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 552.0 resolve 12.1 route 0.0 ingress 0.0 lance 27221.7 fold 435.2 total 28867.8 cold 32324.6 | scanned 1000000 sel 100000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 487.1 resolve 11.1 route 0.0 ingress 1418.9 lance 15837.2 fold 53.1 total 18422.4 cold 18482.8 | scanned 1100000 sel 100000 bytes 2893840 ( 38.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 10.0 route 6908.0 ingress 2.7 lance 2558.2 fold 57.7 total 9705.4 cold 10648.6 | scanned 100000 sel 100000 bytes 508032 ( 6.8% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 13.3 route 6971.5 ingress 0.1 lance 26032.7 fold 2195.6 total 37321.5 cold 42611.8 | scanned 1000000 sel 100000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 10.0% actual 10.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 791.2 resolve 25.1 route 0.0 ingress 0.0 lance 86544.6 fold 1715.2 total 91791.3 cold 94959.2 | scanned 1000000 sel 100000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 560.8 resolve 17.5 route 0.0 ingress 1358.4 lance 17572.4 fold 370.5 total 20262.6 cold 23697.8 | scanned 1100000 sel 100000 bytes 4417936 ( 19.5% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 16.6 route 6867.5 ingress 2.7 lance 5541.1 fold 311.2 total 12753.0 cold 13697.2 | scanned 100000 sel 100000 bytes 2032128 ( 9.0% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 26.0 route 7356.1 ingress 0.1 lance 93129.2 fold 3662.1 total 107773.0 cold 104394.0 | scanned 1000000 sel 100000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 50.0% actual 50.061% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) + A-full Lance-backed | where 817.1 resolve 12.4 route 0.0 ingress 0.0 lance 15548.2 fold 827.2 total 17781.6 cold 21762.5 | scanned 1000000 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1017.4 resolve 17.0 route 0.0 ingress 11087.0 lance 114419.7 fold 203.2 total 131388.4 cold 117980.1 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 1037.2 resolve 16.2 route 0.0 ingress 9745.0 lance 107947.8 fold 160.9 total 121538.6 cold 129256.8 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 16.0 route 39325.4 ingress 19027.7 lance 98898.3 fold 222.2 total 157397.7 cold 155933.9 | scanned 500613 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 15.9 route 36297.2 ingress 0.1 lance 15672.3 fold 3455.5 total 56132.7 cold 59943.5 | scanned 1000000 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 50.0% actual 50.061% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) + A-full Lance-backed | where 891.0 resolve 17.9 route 0.0 ingress 0.0 lance 25421.0 fold 3381.8 total 30361.1 cold 33614.4 | scanned 1000000 sel 500613 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1118.9 resolve 23.2 route 0.0 ingress 10075.8 lance 279938.9 fold 1079.4 total 294164.7 cold 296849.1 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 1105.5 resolve 20.4 route 0.0 ingress 12424.6 lance 297918.3 fold 1011.0 total 313986.4 cold 318853.2 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 19.4 route 39789.7 ingress 20396.0 lance 272929.8 fold 951.2 total 338903.1 cold 312280.1 | scanned 500613 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 19.0 route 36548.9 ingress 0.1 lance 28804.7 fold 6386.1 total 73828.6 cold 72062.8 | scanned 1000000 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 50.0% actual 50.061% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) + A-full Lance-backed | where 1147.9 resolve 30.6 route 0.0 ingress 0.0 lance 93009.8 fold 16332.9 total 115590.9 cold 104185.3 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1155.2 resolve 28.2 route 0.0 ingress 9999.2 lance 942878.4 fold 3892.0 total 959523.1 cold 953101.8 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 1013.2 resolve 28.1 route 0.0 ingress 8543.4 lance 897082.5 fold 3348.8 total 912040.5 cold 991048.4 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 35.2 route 44428.9 ingress 19380.4 lance 925837.1 fold 3734.0 total 991881.9 cold 982818.2 | scanned 500613 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 30.0 route 37230.5 ingress 0.1 lance 94530.6 fold 17478.8 total 152697.5 cold 142316.7 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 50.0% actual 50.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 686.5 resolve 8.8 route 0.0 ingress 0.0 lance 7299.8 fold 428.1 total 8654.1 cold 9919.0 | scanned 1000000 sel 500000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 430.2 resolve 9.8 route 0.0 ingress 6289.3 lance 15989.0 fold 67.0 total 23235.3 cold 23667.4 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 402.4 resolve 10.2 route 0.0 ingress 6164.2 lance 15044.0 fold 75.5 total 22696.7 cold 23273.7 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 9.8 route 34982.4 ingress 7.6 lance 4012.8 fold 154.8 total 41181.7 cold 41358.9 | scanned 500000 sel 500000 bytes 633744 ( 17.4% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 12.0 route 35495.5 ingress 0.1 lance 14098.8 fold 2533.9 total 52503.2 cold 54110.4 | scanned 1000000 sel 500000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 50.0% actual 50.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 617.3 resolve 15.2 route 0.0 ingress 0.0 lance 24583.4 fold 2038.4 total 27722.5 cold 28999.0 | scanned 1000000 sel 500000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 622.7 resolve 13.2 route 0.0 ingress 6227.5 lance 20577.2 fold 506.2 total 28631.5 cold 29495.1 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 641.0 resolve 12.6 route 0.0 ingress 6154.7 lance 17948.4 fold 438.3 total 25697.5 cold 27052.2 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 12.9 route 34156.2 ingress 9.1 lance 8587.2 fold 1070.3 total 43852.7 cold 43435.4 | scanned 500000 sel 500000 bytes 2534976 ( 34.0% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 20.0 route 35715.9 ingress 0.1 lance 27422.1 fold 5519.2 total 70462.0 cold 66352.6 | scanned 1000000 sel 500000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 50.0% actual 50.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 850.3 resolve 30.3 route 0.0 ingress 0.0 lance 91687.6 fold 8430.7 total 103417.0 cold 103413.3 | scanned 1000000 sel 500000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 755.4 resolve 27.0 route 0.0 ingress 6465.8 lance 50496.5 fold 4115.8 total 63426.1 cold 67691.7 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read allow | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 679.5 resolve 21.3 route 0.0 ingress 6246.2 lance 46078.6 fold 3669.7 total 57705.7 cold 65543.5 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read block | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 22.7 route 35422.7 ingress 7.6 lance 34239.8 fold 3989.5 total 73369.1 cold 70244.1 | scanned 500000 sel 500000 bytes 10139904 ( 44.7% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 25.9 route 34519.5 ingress 0.1 lance 93231.9 fold 10920.5 total 143081.8 cold 134650.4 | scanned 1000000 sel 500000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + +# wrote /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/lancearm/lance_arm/n1000000/lance_arm.json +# all oracle and refusal checks passed diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log new file mode 100644 index 000000000..a8842c6a8 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log @@ -0,0 +1,31 @@ +# where_lance_arm LAB, Lance-backed, n=10000000, warm reps=3, seed=0x9e3779b97f4a7c15 +# mask ingress COPIES addresses into RowAddrTreeMap (S-INGRESS open, not zero-copy) +BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / single authority open, #1788); arm C's ids are given directly; no DR ordinal is composed with _rowid + +== ClassView refusals (each with a paired success control) == + [ok ] control: resolve -> exactly the 2 demanded columns (schema has more) + [ok ] control: resolved names equal the fixture truth (not label, not ordinal) + [ok ] AbsentField refused, no column list + [ok ] AbsentField control: present position resolves + [ok ] Unauthorized refused, no column list + [ok ] Unauthorized control: permitted position resolves + [ok ] UnknownProperty refused, no column list + [ok ] UnknownProperty control: known position resolves + [ok ] AmbiguousProperty refused (2 columns), no column list + [ok ] AmbiguousProperty control: unambiguous position resolves + +== Mapping traps (the test would catch a positional or label mapping) == + ordinal mapping wrong on 16/16 positions; label mapping finds no column on 16/16 + [ok ] ordinal mapping gives a different answer (trap is live) + [ok ] label mapping finds no physical column + +== Staleness (dataset appended after resolution / attest) == + [ok ] control: schema resolution current before append + [ok ] control: lane fresh before append + [ok ] control: seek under the real witness runs + [ok ] StaleSchema refused after append + [ok ] stale lane refused after append + [ok ] other dataset refused + [ok ] forged (newer-version) witness refused by seek_from +ERROR: NotContiguous: table is not one contiguous fragment +rc=1 diff --git a/crates/crepe-plan-probe/examples/where_lance_arm.rs b/crates/crepe-plan-probe/examples/where_lance_arm.rs index 6cfa75cdb..3f8c3ec27 100644 --- a/crates/crepe-plan-probe/examples/where_lance_arm.rs +++ b/crates/crepe-plan-probe/examples/where_lance_arm.rs @@ -62,7 +62,7 @@ use crepe_plan_probe::addressed::{ range_tree, ranges, }; use crepe_plan_probe::logic::RelId; -use lance::dataset::scanner::{ExecutionStatsCallback, RowAddrMask}; +use lance::dataset::scanner::{ExecutionStatsCallback, RowAddrMask, RowAddrTreeMap}; use lance::dataset::{Dataset, WriteParams}; use lance_graph_contract::class_view::{ClassId, ClassView, FieldMask, WideFieldMask}; use lance_graph_contract::ontology::{DisplayTemplate, FieldRef}; @@ -163,9 +163,15 @@ fn reader( } /// Written in ascending id order as ONE fragment (`max_rows_per_file` lifted). +/// +/// The limit must fit in `u32`: Lance 13 compares it as +/// `params.max_rows_per_file as u32` (`dataset/write.rs:1077`), so `1 << 40` +/// truncates to 0 and closes a file after EVERY batch. At 1M rows the reader +/// emitted one batch and hid that; at 10M it produced many fragments and the +/// attest guard refused the table as `NotContiguous`. async fn write_fixture(uri: &str, layout: Layout, n: u32) -> Result { let params = WriteParams { - max_rows_per_file: 1 << 40, + max_rows_per_file: u32::MAX as usize, ..Default::default() }; Dataset::write(reader(layout, 0..n), uri, Some(params)) From 3de3260db0e0f84db84048769eedafb5a54840c8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:14:29 +0000 Subject: [PATCH 15/23] board: D-GLOBAL-WHERE P2 entry (three parity verdicts, Lance arm, BLOCKED_D4) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../entries/2026-11-03-d-global-where-p2.md | 36 +++++++++++++++++++ .claude/board/entries/README.md | 3 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 .claude/board/entries/2026-11-03-d-global-where-p2.md diff --git a/.claude/board/entries/2026-11-03-d-global-where-p2.md b/.claude/board/entries/2026-11-03-d-global-where-p2.md new file mode 100644 index 000000000..af77bad51 --- /dev/null +++ b/.claude/board/entries/2026-11-03-d-global-where-p2.md @@ -0,0 +1,36 @@ +# D-GLOBAL-WHERE P2: criteria-aware WHERE, DR composition, Lance selective read, three parity verdicts + +**Status:** MEASURED, lab only. No production change. +**Probe:** `.claude/probes/2026-11-03-d-global-where-p1/`. Read `REPORT.md` for numbers and verdicts, `ENGINEERING-PARITY.md` for the literature matrix, and `LANCE-TRACE.md` for the source-backed caller path. The Lance arm lives in `crates/crepe-plan-probe/examples/where_lance_arm.rs`. + +**Semantic parity: reached.** +- Every count and EXISTS answer equals both the oracle and DuckDB 2.0.0, at 1M and 10M, threads 1 and 4. +- Every Lance arm (full, allow/block prefilter, attested range read) equals the oracle and the full-projection oracle at 1M. +- ClassView → physical column resolution goes through `predicate_iri`. It refuses AbsentField, Unauthorized, UnknownProperty, AmbiguousProperty and StaleSchema, each paired with a success control. +- Two traps prove a shortcut would be caught: an ordinal shortcut is wrong on 16/16 positions, and a label shortcut finds no column on 16/16. + +**Performance parity: split.** +- Count beats DuckDB by 14.2× (1M, 1 thread) down to 1.96× (10M, 4 threads), weighted 34/46/14/6. +- EXISTS loses at 10M, 0.43× and 0.16×. `Terminal::Any` has no per-tile early exit (`exec.rs:1793`). +- Lance at 1M: a clustered selection reads 0.1–9% of the full scan's bytes. +- A scattered 0.1% selection already reads 33% of the bytes at k=1 and 99.8% at k=16. The masked read is then 2.7–10× slower than a full scan, and `ReadPolicy::DEFAULT` already falls back to a full read there. + +**Engineering parity: reached on representation, not on strategy.** +- Missing wiring: EXISTS early exit, and routing once instead of per query (break-even at Q ≥ 2; 158,198 → 1,012 µs per query at Q=256). +- Missing capability: choosing evaluation direction, and an ordered u8-in-u32 compare word. Composing existing words costs one pass per 2-bit prefix, up to 5× slower than a hand loop. + +**Costs measured, never assumed free.** +- RowAddrMask ingress is a copy, and scales with ranges, not rows: 1.9 µs for 1 range; about 9.5 ms and 126 KB for 91,527 scattered ranges. +- Lane routing costs about 70–90 ns per id. + +**Boundary:** `BLOCKED_D4`. No witness binds a DR Frame to a Lance version. Arm C takes its ids as given and composes no DR ordinal with `_rowid`. No third coordinate map was built. + +**Found:** Lance 13 truncates `max_rows_per_file` with `as u32` (`write.rs:1077`). `1 << 40` became 0 and produced one fragment per batch. #1633's NotContiguous guard caught it at 10M. + +**OPEN:** +- S-INGRESS / D4: one version-checked DR → `_rowid` authority (owner decision). +- EXISTS early break (mask-risc owner). +- The ordered u8 compare kernel (ndarray / mask-risc owner). +- Why the borrowed lane read is 2.3–2.5× slower at 50% selectivity. +- 10M Lance rows: see REPORT.md §3. +- Every Lance byte count was served from the page cache, not disk. diff --git a/.claude/board/entries/README.md b/.claude/board/entries/README.md index 32bea6719..b9375e922 100644 --- a/.claude/board/entries/README.md +++ b/.claude/board/entries/README.md @@ -25,12 +25,13 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately opposite directions; the stranding this convention prevents shows up in exactly one of them, never both. -566 entries, 2026-08-06 .. 2026-11-03. +567 entries, 2026-08-06 .. 2026-11-03. | date | entry id | finding | file | |---|---|---|---| | 2026-11-03 | `D-XLOG-META-WIRE-P0` | | [2026-11-03-d-xlog-meta-wire-p0.md](2026-11-03-d-xlog-meta-wire-p0.md) | | 2026-11-03 | `D-GRAMMAR-CONSTRAINTS-0` | | [2026-11-03-d-grammar-constraints-0.md](2026-11-03-d-grammar-constraints-0.md) | +| 2026-11-03 | `D-GLOBAL-WHERE` | | [2026-11-03-d-global-where-p2.md](2026-11-03-d-global-where-p2.md) | | 2026-11-03 | `D-GLOBAL-WHERE` | | [2026-11-03-d-global-where-p0.md](2026-11-03-d-global-where-p0.md) | | 2026-11-03 | `D-DR-FOLD-MAP` | | [2026-11-03-d-dr-fold-map.md](2026-11-03-d-dr-fold-map.md) | | 2026-11-03 | `D-COGNITIVE-POLYFILL` | | [2026-11-03-d-cognitive-polyfill-p0.md](2026-11-03-d-cognitive-polyfill-p0.md) | From 9bb2c91b1eb81a5d49896b85280477cc2f41fed0 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:19:29 +0000 Subject: [PATCH 16/23] lab: D-GLOBAL-WHERE P2 Lance arm at 10M; ReadPolicy misroutes clustered demand At 10M, every oracle check and every refusal check passes. The 1M pattern holds and grows: - a clustered 0.1% read is 114x faster than a full scan; - a scattered 50% read at k=16 is 11x slower; - ingress for 3.26M ranges is a 4.8 MB tree. New finding: ReadPolicy::DEFAULT decides on covered rows alone (addressed.rs plan_read). It therefore sends a single contiguous 10% range to a full scan: 3.8x slower at 1M, 4.9x at 10M. This is recorded as a probe item for the #1633 owner; the policy is not changed. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../entries/2026-11-03-d-global-where-p2.md | 8 +- .../2026-11-03-d-global-where-p1/REPORT.md | 61 ++++++- .../lance_arm/n10000000/lance_arm.json | 108 ++++++++++++ .../results/lance_arm/n10000000/lance_arm.log | 163 ++++++++++++++++++ 4 files changed, 330 insertions(+), 10 deletions(-) create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json create mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log diff --git a/.claude/board/entries/2026-11-03-d-global-where-p2.md b/.claude/board/entries/2026-11-03-d-global-where-p2.md index af77bad51..ac110e532 100644 --- a/.claude/board/entries/2026-11-03-d-global-where-p2.md +++ b/.claude/board/entries/2026-11-03-d-global-where-p2.md @@ -5,7 +5,7 @@ **Semantic parity: reached.** - Every count and EXISTS answer equals both the oracle and DuckDB 2.0.0, at 1M and 10M, threads 1 and 4. -- Every Lance arm (full, allow/block prefilter, attested range read) equals the oracle and the full-projection oracle at 1M. +- Every Lance arm (full, allow/block prefilter, attested range read) equals the oracle and the full-projection oracle at 1M and 10M. - ClassView → physical column resolution goes through `predicate_iri`. It refuses AbsentField, Unauthorized, UnknownProperty, AmbiguousProperty and StaleSchema, each paired with a success control. - Two traps prove a shortcut would be caught: an ordinal shortcut is wrong on 16/16 positions, and a label shortcut finds no column on 16/16. @@ -13,7 +13,9 @@ - Count beats DuckDB by 14.2× (1M, 1 thread) down to 1.96× (10M, 4 threads), weighted 34/46/14/6. - EXISTS loses at 10M, 0.43× and 0.16×. `Terminal::Any` has no per-tile early exit (`exec.rs:1793`). - Lance at 1M: a clustered selection reads 0.1–9% of the full scan's bytes. -- A scattered 0.1% selection already reads 33% of the bytes at k=1 and 99.8% at k=16. The masked read is then 2.7–10× slower than a full scan, and `ReadPolicy::DEFAULT` already falls back to a full read there. +- A scattered 0.1% selection already reads 33% of the bytes at k=1 and 99.8% at k=16. At 10–50% the masked read is 2.7–11× slower than a full scan, and `ReadPolicy::DEFAULT` already falls back to a full read there. +- At 10M a clustered 0.1% read is 114× faster than the full scan. +- `ReadPolicy::DEFAULT` decides on covered rows alone, so it also sends a single contiguous 10% range to a full scan: 3.8× slower at 1M, 4.9× at 10M. Range count, not coverage, separates clustered from scattered demand. **Engineering parity: reached on representation, not on strategy.** - Missing wiring: EXISTS early exit, and routing once instead of per query (break-even at Q ≥ 2; 158,198 → 1,012 µs per query at Q=256). @@ -32,5 +34,5 @@ - EXISTS early break (mask-risc owner). - The ordered u8 compare kernel (ndarray / mask-risc owner). - Why the borrowed lane read is 2.3–2.5× slower at 50% selectivity. -- 10M Lance rows: see REPORT.md §3. +- `plan_read` should weigh the range count (lab #1633 owner). - Every Lance byte count was served from the page cache, not disk. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md index 663c674ca..ce47418a4 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md @@ -187,9 +187,50 @@ What this shows: 500k. It is FAILED-GATE on every cell ≥ 10k ids. It is linear in the number of ids because each id is sought separately. -### 10M +### 10M results (median of 3 warm runs, µs) -Rows are appended when the 10M run finishes. +Every oracle and refusal check passes. Attest is COLD: 809,110 µs, once per +version. Full table: `results/lance_arm/n10000000/lance_arm.log`. + +| layout | sel | k | arm | rows scanned | bytes (% of A) | mask bytes | route | ingress | Lance read | +|---|---|---|---|---:|---:|---:|---:|---:|---:| +| clustered | 0.1% | 1 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 134,060 | +| clustered | 0.1% | 1 | C-exact | 10,000 | 0.04% | 27 | 684 | 1.5 | 1,176 | +| clustered | 10% | 4 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 280,049 | +| clustered | 10% | 4 | C-exact | 1,000,000 | 6.4% | 242 | 72,326 | 13.8 | 16,447 | +| clustered | 10% | 4 | C-default | 10,000,000 | 64.3% | 0 | 71,816 | 0.1 | 338,248 | +| scattered | 0.1% | 1 | C-exact | 9,858 | 33.3% | 20,960 | 4,951 | 1,171 | 9,961 | +| scattered | 0.1% | 16 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 916,108 | +| scattered | 0.1% | 16 | C-exact | 9,858 | 100% | 20,960 | 4,913 | 1,187 | 131,632 | +| scattered | 10% | 4 | C-exact | 1,001,669 | 80.0% | 1,317,366 | 103,407 | 119,960 | 833,890 | +| scattered | 10% | 16 | C-exact | 1,001,669 | 100% | 1,317,366 | 98,604 | 115,464 | 2,789,112 | +| scattered | 50% | 16 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 964,874 | +| scattered | 50% | 16 | C-exact | 5,006,105 | 100% | 4,776,680 | 433,248 | 267,905 | 10,648,075 | + +The 1M pattern holds at 10M, and grows: + +- A clustered 0.1% read is 114× faster than the full scan. +- The worst scattered read (50%, k=16) is 11× slower than the full scan. +- Even a 0.1% scattered selection at k=16 reads 100% of the bytes, yet it + still beats the full scan 7× on time, because it decodes 9,858 rows + instead of 10M. +- Ingress for 3.26M ranges is a 4.8 MB tree and 267,905 µs. + +**New: `ReadPolicy::DEFAULT` misroutes clustered demand.** `plan_read` +(`addressed.rs:212-232`) decides on covered rows alone (`covered*1000 >= +n*full_permille`, 10%). It never looks at how many ranges there are, and its +own doc says "Clustered demand … is not measured". A single contiguous 10% +range is therefore sent to a full scan: + +| N | C-default | C-exact | penalty | +|---|---:|---:|---:| +| 1M | 37,322 µs | 9,705 µs | 3.8× | +| 10M | 446,557 µs | 91,116 µs | 4.9× | + +The scattered cells, where the fallback is right, have tens of thousands to +millions of ranges. Range count, not coverage, separates the two. This is +recorded as a probe item and the policy is not changed. It belongs to the +#1633 owner. A defect found on the way. Lance 13 compares the file row limit as `params.max_rows_per_file as u32` (`lance-13.0.0/src/dataset/write.rs:1077`). @@ -342,7 +383,8 @@ owner → PR. 2. `ReadPolicy` cost choice. - Path: `plan_read` → `Read::Full` on scattered 10–50%. - Test: C-default cells. - - Cost: avoids the 2.7–10× scattered-read loss. + - Cost: avoids the 2.7–11× scattered-read loss. On clustered demand it + picks wrongly; see item 7. - Owner: lab #1633. **WIRE NOW** (lab only, done here) @@ -371,9 +413,15 @@ owner → PR. - Cost: 158,198 → 1,012 µs per query at Q=256. - Owner: DRF / D-GLOBAL-WHERE. +7. `ReadPolicy` decides on coverage only. + - Path: `plan_read` → also weigh the range count → C-default. + - Test: the clustered 10% cells. + - Cost: today 3.8× (1M) and 4.9× (10M) slower than the exact read. + - Owner: lab #1633. Not changed here. + **OWNER DECISION** -7. One version-checked DR → `_rowid` authority, plus bulk ingress. +8. One version-checked DR → `_rowid` authority, plus bulk ingress. - Path: dt64 `Frame` → ONE witness (DR route version + Lance `ds.version()` + uri) → `RowAddrTreeMap`. - Test: the C arm, with ids from DR instead of given. - Cost: ingress 2–19,380 µs, measured. @@ -381,19 +429,18 @@ owner → PR. **PARK** -8. Scattered selective reads on a row-major page layout. +9. Scattered selective reads on a row-major page layout. - Physical limit: bytes follow page locality, not selectivity. - Not a code change. - Revisit with a clustered layout or a different page size. **SKIP** -9. A new mask store, trie, hash table or paging engine. Nothing measured here +10. A new mask store, trie, hash table or paging engine. Nothing measured here needs one. ## Not verified -- 10M Lance rows: pending at the time of writing; see §3. - The cause of the 50% slowdown on the borrowed path (C3). - Disk reads: every Lance byte count came from the page cache. - DuckDB internals: the source is not on disk (see `ENGINEERING-PARITY.md`). diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json new file mode 100644 index 000000000..76f4604a5 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json @@ -0,0 +1,108 @@ +{ + "label": "Lance-backed LAB", "n": 10000000, "reps": 3, "attest_cold_us": 809109.9, + "owner_gates": ["S-INGRESS", "D4"], + "rows": [ + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":10303.4,"resolve":20.8,"route":0.0,"ingress":0.0,"lance":193482.4,"fold":943.3,"total":211134.0,"cold_total":215215.5},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":10474.4,"resolve":15.6,"route":0.0,"ingress":1298.2,"lance":234316.2,"fold":1.8,"total":260668.0,"cold_total":282731.2},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":37968912,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":9.5,"route":4950.8,"ingress":1170.6,"lance":9961.4,"fold":1.6,"total":16124.6,"cold_total":17813.1},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":9.6,"route":5316.4,"ingress":1332.1,"lance":10354.1,"fold":3.1,"total":17020.1,"cold_total":15978.8},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":11024.8,"resolve":24.5,"route":0.0,"ingress":0.0,"lance":311993.8,"fold":2960.8,"total":334054.7,"cold_total":299853.8},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":10080.3,"resolve":24.1,"route":0.0,"ingress":1216.6,"lance":267997.7,"fold":5.8,"total":285434.0,"cold_total":315645.7},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":75927456,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":18.4,"route":5572.3,"ingress":1748.3,"lance":36591.4,"fold":5.5,"total":42500.2,"cold_total":40719.3},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":14.6,"route":5202.3,"ingress":1417.8,"lance":34856.1,"fold":5.1,"total":41989.7,"cold_total":38350.5},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10060.2,"resolve":38.9,"route":0.0,"ingress":0.0,"lance":916107.5,"fold":11357.5,"total":972113.8,"cold_total":990104.2},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10733.1,"resolve":29.2,"route":0.0,"ingress":1297.0,"lance":349417.4,"fold":40.5,"total":368495.2,"cold_total":369888.3},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":227761632,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":24.3,"route":4912.7,"ingress":1186.6,"lance":131631.8,"fold":39.9,"total":138237.3,"cold_total":140243.8},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":33.8,"route":6038.4,"ingress":1754.9,"lance":140805.0,"fold":32.4,"total":148825.4,"cold_total":146025.1},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":7679.8,"resolve":20.4,"route":0.0,"ingress":0.0,"lance":134060.3,"fold":209.3,"total":145737.4,"cold_total":171716.5},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":8047.3,"resolve":14.0,"route":0.0,"ingress":503.9,"lance":191760.9,"fold":2.0,"total":205692.0,"cold_total":213522.9},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28077728,"bytes_vs_A_pct":69.0,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":6.6,"route":684.0,"ingress":1.5,"lance":1176.2,"fold":1.6,"total":1876.1,"cold_total":2658.6},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":5.5,"route":691.3,"ingress":1.3,"lance":1054.4,"fold":1.7,"total":1759.0,"cold_total":1711.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":8560.3,"resolve":24.5,"route":0.0,"ingress":0.0,"lance":325552.8,"fold":538.2,"total":345488.7,"cold_total":326122.6},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":7634.4,"resolve":16.5,"route":0.0,"ingress":524.2,"lance":190998.9,"fold":5.5,"total":207558.1,"cold_total":220201.3},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28120496,"bytes_vs_A_pct":35.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":11.0,"route":786.1,"ingress":2.4,"lance":1522.7,"fold":5.4,"total":2337.7,"cold_total":2839.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.9,"route":718.5,"ingress":1.7,"lance":1175.6,"fold":4.6,"total":1919.4,"cold_total":2068.8},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":8750.3,"resolve":35.8,"route":0.0,"ingress":0.0,"lance":991253.8,"fold":1333.6,"total":1035977.8,"cold_total":1039737.3},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":7794.1,"resolve":23.7,"route":0.0,"ingress":528.5,"lance":191673.4,"fold":30.2,"total":203428.0,"cold_total":190429.9},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28291568,"bytes_vs_A_pct":12.3,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":19.4,"route":707.8,"ingress":1.7,"lance":2567.0,"fold":22.1,"total":3364.7,"cold_total":3879.8},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":14.8,"route":737.7,"ingress":2.6,"lance":2421.9,"fold":22.9,"total":3214.8,"cold_total":2864.1},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":11416.5,"resolve":23.3,"route":0.0,"ingress":0.0,"lance":203178.7,"fold":2105.9,"total":225583.3,"cold_total":202527.4},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":10177.7,"resolve":18.9,"route":0.0,"ingress":5428.0,"lance":243713.1,"fold":11.0,"total":266536.0,"cold_total":306524.4},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":15.0,"route":23687.4,"ingress":13469.1,"lance":34611.0,"fold":10.6,"total":71800.1,"cold_total":88410.3},"rows_scanned":101671,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":15.6,"route":24622.6,"ingress":14664.1,"lance":42098.3,"fold":702.7,"total":80704.5,"cold_total":79845.6},"rows_scanned":170665,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10127.0,"resolve":26.5,"route":0.0,"ingress":0.0,"lance":299408.1,"fold":8113.9,"total":327530.7,"cold_total":354537.9},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10462.7,"resolve":21.2,"route":0.0,"ingress":5719.9,"lance":324377.4,"fold":134.7,"total":348209.4,"cold_total":347788.8},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":21.7,"route":28666.3,"ingress":16269.5,"lance":106063.1,"fold":143.6,"total":152868.0,"cold_total":143233.2},"rows_scanned":101671,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":26.7,"route":30213.3,"ingress":19079.3,"lance":97830.4,"fold":1185.1,"total":150537.3,"cold_total":141421.9},"rows_scanned":170665,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10465.7,"resolve":36.5,"route":0.0,"ingress":0.0,"lance":923997.5,"fold":28492.4,"total":1000911.9,"cold_total":1010671.1},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10068.2,"resolve":29.0,"route":0.0,"ingress":5517.5,"lance":574582.1,"fold":542.9,"total":606038.0,"cold_total":624185.1},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":47.0,"route":29519.6,"ingress":16987.5,"lance":340822.1,"fold":558.0,"total":379892.5,"cold_total":380656.2},"rows_scanned":101671,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":27.2,"route":24291.5,"ingress":14476.3,"lance":311672.7,"fold":2894.6,"total":355250.0,"cold_total":360597.7},"rows_scanned":170665,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":7959.4,"resolve":17.5,"route":0.0,"ingress":0.0,"lance":128661.0,"fold":289.0,"total":140551.4,"cold_total":145622.2},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":8369.8,"resolve":14.0,"route":0.0,"ingress":1582.9,"lance":181396.9,"fold":16.2,"total":201515.0,"cold_total":208344.5},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28191776,"bytes_vs_A_pct":69.2,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":8.9,"route":7011.4,"ingress":2.7,"lance":1905.8,"fold":16.2,"total":9056.6,"cold_total":9474.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":7.9,"route":6895.2,"ingress":2.3,"lance":1749.9,"fold":13.1,"total":8673.1,"cold_total":8835.8},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":7614.0,"resolve":24.3,"route":0.0,"ingress":0.0,"lance":295994.8,"fold":856.3,"total":317325.0,"cold_total":312725.2},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":7655.4,"resolve":16.6,"route":0.0,"ingress":1541.1,"lance":178703.7,"fold":183.1,"total":193697.4,"cold_total":192348.3},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28576688,"bytes_vs_A_pct":36.3,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.1,"route":7119.4,"ingress":2.7,"lance":2401.2,"fold":84.4,"total":9456.6,"cold_total":10601.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":9.3,"route":6990.5,"ingress":2.2,"lance":2333.5,"fold":60.2,"total":9371.9,"cold_total":10101.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":7713.6,"resolve":34.0,"route":0.0,"ingress":0.0,"lance":976632.3,"fold":2993.1,"total":1034965.2,"cold_total":986057.0},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":7872.3,"resolve":24.8,"route":0.0,"ingress":1571.9,"lance":191985.1,"fold":1115.2,"total":207564.8,"cold_total":225119.8},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":30116336,"bytes_vs_A_pct":13.1,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":20.2,"route":6975.2,"ingress":3.4,"lance":5977.1,"fold":691.5,"total":13860.3,"cold_total":17560.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":17.9,"route":7259.1,"ingress":2.8,"lance":6163.1,"fold":524.2,"total":13983.3,"cold_total":13103.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":10155.7,"resolve":22.2,"route":0.0,"ingress":0.0,"lance":186622.4,"fold":6313.1,"total":209771.1,"cold_total":215265.5},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":9974.7,"resolve":17.9,"route":0.0,"ingress":44385.2,"lance":516587.7,"fold":445.1,"total":578405.6,"cold_total":597901.0},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":17.3,"route":95464.3,"ingress":109378.8,"lance":296595.0,"fold":410.1,"total":502389.7,"cold_total":489659.9},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":22.1,"route":92694.4,"ingress":0.1,"lance":180388.2,"fold":28225.4,"total":306880.4,"cold_total":324516.6},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":11031.4,"resolve":30.6,"route":0.0,"ingress":0.0,"lance":321375.7,"fold":26150.5,"total":370518.9,"cold_total":382440.7},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":10305.4,"resolve":28.3,"route":0.0,"ingress":45418.2,"lance":1065877.3,"fold":1994.5,"total":1134078.2,"cold_total":1076888.7},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":19.9,"route":103407.1,"ingress":119960.0,"lance":833890.0,"fold":1837.1,"total":1063140.3,"cold_total":1048035.9},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":29.5,"route":97147.6,"ingress":0.1,"lance":356339.0,"fold":46616.3,"total":508455.3,"cold_total":514471.6},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":10913.9,"resolve":37.6,"route":0.0,"ingress":0.0,"lance":946298.5,"fold":95686.6,"total":1093180.5,"cold_total":1063376.8},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":10574.4,"resolve":34.1,"route":0.0,"ingress":46334.9,"lance":3074846.0,"fold":7744.9,"total":3150294.4,"cold_total":3173415.8},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":38.2,"route":98604.4,"ingress":115463.6,"lance":2789111.5,"fold":8048.2,"total":3019443.5,"cold_total":3055576.5},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":37.3,"route":91563.9,"ingress":0.1,"lance":980865.3,"fold":108818.3,"total":1232465.4,"cold_total":1228371.3},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":8607.8,"resolve":20.5,"route":0.0,"ingress":0.0,"lance":155320.5,"fold":1266.3,"total":169840.2,"cold_total":156140.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":8000.6,"resolve":14.1,"route":0.0,"ingress":21015.9,"lance":183114.2,"fold":373.0,"total":216511.3,"cold_total":211296.5},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":29330960,"bytes_vs_A_pct":72.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":12.6,"route":72860.4,"ingress":13.2,"lance":8413.2,"fold":408.9,"total":81896.6,"cold_total":87134.3},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":1267488,"bytes_vs_A_pct":3.1,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":19.9,"route":73180.9,"ingress":0.1,"lance":172451.4,"fold":23993.2,"total":272917.0,"cold_total":284288.1},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7556.4,"resolve":23.5,"route":0.0,"ingress":0.0,"lance":280049.3,"fold":4638.6,"total":303130.5,"cold_total":307298.2},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7981.6,"resolve":16.5,"route":0.0,"ingress":21167.9,"lance":198575.2,"fold":1801.4,"total":234978.5,"cold_total":236945.4},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":33133424,"bytes_vs_A_pct":42.1,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":15.6,"route":72326.1,"ingress":13.8,"lance":16446.5,"fold":1995.9,"total":91115.6,"cold_total":95864.6},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":5069952,"bytes_vs_A_pct":6.4,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":23.8,"route":71815.6,"ingress":0.1,"lance":338248.3,"fold":24433.8,"total":446557.1,"cold_total":439905.4},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7740.9,"resolve":36.2,"route":0.0,"ingress":0.0,"lance":1014329.4,"fold":19493.3,"total":1077853.2,"cold_total":1066603.0},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7734.1,"resolve":34.0,"route":0.0,"ingress":18902.5,"lance":278922.9,"fold":8528.1,"total":320264.3,"cold_total":324735.0},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":48343280,"bytes_vs_A_pct":21.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":27.8,"route":74008.9,"ingress":13.2,"lance":71128.6,"fold":8203.7,"total":161528.8,"cold_total":160260.0},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":20279808,"bytes_vs_A_pct":8.8,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":39.0,"route":73936.8,"ingress":0.1,"lance":1122052.4,"fold":39350.6,"total":1300127.3,"cold_total":1219831.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10719.4,"resolve":21.0,"route":0.0,"ingress":0.0,"lance":192360.9,"fold":9887.7,"total":220645.7,"cold_total":214372.8},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":13027.7,"resolve":20.6,"route":0.0,"ingress":147885.8,"lance":1264681.8,"fold":2553.2,"total":1440493.9,"cold_total":1366702.8},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":11644.1,"resolve":18.1,"route":0.0,"ingress":155370.6,"lance":1264301.5,"fold":2454.1,"total":1443967.8,"cold_total":1390000.6},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":23.8,"route":413020.4,"ingress":265138.3,"lance":1114157.3,"fold":2647.2,"total":1812509.1,"cold_total":1836722.8},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":23.6,"route":379145.3,"ingress":0.1,"lance":190973.7,"fold":38915.8,"total":616627.0,"cold_total":612960.6},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10367.5,"resolve":27.0,"route":0.0,"ingress":0.0,"lance":294877.8,"fold":35616.2,"total":352738.8,"cold_total":364086.9},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10360.0,"resolve":26.4,"route":0.0,"ingress":148915.0,"lance":3407470.6,"fold":11465.3,"total":3626822.1,"cold_total":3573391.1},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":11011.7,"resolve":25.1,"route":0.0,"ingress":148106.6,"lance":3323058.6,"fold":10011.1,"total":3507409.2,"cold_total":3647731.0},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":28.2,"route":429149.0,"ingress":304834.3,"lance":3217519.7,"fold":10597.0,"total":4035830.9,"cold_total":3761312.0},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":27.2,"route":396047.9,"ingress":0.1,"lance":357557.2,"fold":65416.6,"total":835435.0,"cold_total":815435.2},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":9791.2,"resolve":39.0,"route":0.0,"ingress":0.0,"lance":964873.6,"fold":139004.0,"total":1163500.2,"cold_total":1169210.0},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":10322.2,"resolve":36.2,"route":0.0,"ingress":156145.7,"lance":11223882.2,"fold":39101.5,"total":11483954.2,"cold_total":11703181.2},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":11077.4,"resolve":38.7,"route":0.0,"ingress":152089.1,"lance":11024802.7,"fold":41993.8,"total":11266109.0,"cold_total":11194269.3},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":38.1,"route":433247.8,"ingress":267904.9,"lance":10648074.9,"fold":44655.8,"total":11428847.8,"cold_total":11260166.1},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":39.9,"route":379619.2,"ingress":0.1,"lance":1113109.6,"fold":175777.9,"total":1703210.0,"cold_total":1689868.0},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":7848.3,"resolve":19.6,"route":0.0,"ingress":0.0,"lance":134781.7,"fold":5577.4,"total":153026.7,"cold_total":179169.6},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":7803.7,"resolve":18.8,"route":0.0,"ingress":146219.7,"lance":235038.4,"fold":2854.5,"total":408595.6,"cold_total":487667.2},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":7827.1,"resolve":16.0,"route":0.0,"ingress":140511.9,"lance":228474.7,"fold":2558.1,"total":386873.4,"cold_total":400777.3},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":16.0,"route":382153.3,"ingress":36.3,"lance":43883.8,"fold":2676.2,"total":435760.9,"cold_total":421718.5},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":6329664,"bytes_vs_A_pct":15.5,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":20.7,"route":380864.2,"ingress":0.1,"lance":182737.8,"fold":31575.9,"total":604954.5,"cold_total":601639.7},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8032.5,"resolve":24.7,"route":0.0,"ingress":0.0,"lance":293784.7,"fold":21115.2,"total":335521.6,"cold_total":351990.3},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":7678.5,"resolve":22.3,"route":0.0,"ingress":137644.8,"lance":340742.4,"fold":11316.5,"total":511430.3,"cold_total":471510.9},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":9010.1,"resolve":20.0,"route":0.0,"ingress":161571.5,"lance":304496.2,"fold":10092.4,"total":495553.0,"cold_total":484011.9},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":22.0,"route":373217.7,"ingress":36.8,"lance":133951.4,"fold":11005.7,"total":532690.1,"cold_total":505669.1},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":25318656,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":25.6,"route":372731.6,"ingress":0.1,"lance":369704.0,"fold":45799.8,"total":792887.3,"cold_total":863425.1},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8178.7,"resolve":38.4,"route":0.0,"ingress":0.0,"lance":1059049.8,"fold":86481.4,"total":1196625.3,"cold_total":1203390.6},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":9527.3,"resolve":35.4,"route":0.0,"ingress":153320.2,"lance":680320.8,"fold":41717.6,"total":930447.5,"cold_total":872082.1},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8620.2,"resolve":38.6,"route":0.0,"ingress":191782.1,"lance":723638.9,"fold":40909.9,"total":990657.5,"cold_total":961676.8},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":39.6,"route":377818.4,"ingress":25.0,"lance":505224.4,"fold":41029.0,"total":957842.4,"cold_total":917075.6},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":101274624,"bytes_vs_A_pct":43.9,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":38.8,"route":368828.7,"ingress":0.1,"lance":1019101.3,"fold":111882.0,"total":1561248.3,"cold_total":1560474.3},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} + ] +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log new file mode 100644 index 000000000..68d751825 --- /dev/null +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log @@ -0,0 +1,163 @@ +# where_lance_arm LAB, Lance-backed, n=10000000, warm reps=3, seed=0x9e3779b97f4a7c15 +# mask ingress COPIES addresses into RowAddrTreeMap (S-INGRESS open, not zero-copy) +BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / single authority open, #1788); arm C's ids are given directly; no DR ordinal is composed with _rowid + +== ClassView refusals (each with a paired success control) == + [ok ] control: resolve -> exactly the 2 demanded columns (schema has more) + [ok ] control: resolved names equal the fixture truth (not label, not ordinal) + [ok ] AbsentField refused, no column list + [ok ] AbsentField control: present position resolves + [ok ] Unauthorized refused, no column list + [ok ] Unauthorized control: permitted position resolves + [ok ] UnknownProperty refused, no column list + [ok ] UnknownProperty control: known position resolves + [ok ] AmbiguousProperty refused (2 columns), no column list + [ok ] AmbiguousProperty control: unambiguous position resolves + +== Mapping traps (the test would catch a positional or label mapping) == + ordinal mapping wrong on 16/16 positions; label mapping finds no column on 16/16 + [ok ] ordinal mapping gives a different answer (trap is live) + [ok ] label mapping finds no physical column + +== Staleness (dataset appended after resolution / attest) == + [ok ] control: schema resolution current before append + [ok ] control: lane fresh before append + [ok ] control: seek under the real witness runs + [ok ] StaleSchema refused after append + [ok ] stale lane refused after append + [ok ] other dataset refused + [ok ] forged (newer-version) witness refused by seek_from + +# attest (cold, once per version): 809109.9 us [COLD/IO, reported] + +== Measurements (us, median of 3 warm runs; cold = first run) == +-- scattered target 0.1% actual 0.099% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10303.4 resolve 20.8 route 0.0 ingress 0.0 lance 193482.4 fold 943.3 total 211134.0 cold 215215.5 | scanned 10000000 sel 9858 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10474.4 resolve 15.6 route 0.0 ingress 1298.2 lance 234316.2 fold 1.8 total 260668.0 cold 282731.2 | scanned 10009858 sel 9858 bytes 37968912 (100.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 9.5 route 4950.8 ingress 1170.6 lance 9961.4 fold 1.6 total 16124.6 cold 17813.1 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 9.6 route 5316.4 ingress 1332.1 lance 10354.1 fold 3.1 total 17020.1 cold 15978.8 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- scattered target 0.1% actual 0.099% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) + A-full Lance-backed | where 11024.8 resolve 24.5 route 0.0 ingress 0.0 lance 311993.8 fold 2960.8 total 334054.7 cold 299853.8 | scanned 10000000 sel 9858 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10080.3 resolve 24.1 route 0.0 ingress 1216.6 lance 267997.7 fold 5.8 total 285434.0 cold 315645.7 | scanned 10009858 sel 9858 bytes 75927456 (120.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 18.4 route 5572.3 ingress 1748.3 lance 36591.4 fold 5.5 total 42500.2 cold 40719.3 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 14.6 route 5202.3 ingress 1417.8 lance 34856.1 fold 5.1 total 41989.7 cold 38350.5 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- scattered target 0.1% actual 0.099% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10060.2 resolve 38.9 route 0.0 ingress 0.0 lance 916107.5 fold 11357.5 total 972113.8 cold 990104.2 | scanned 10000000 sel 9858 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10733.1 resolve 29.2 route 0.0 ingress 1297.0 lance 349417.4 fold 40.5 total 368495.2 cold 369888.3 | scanned 10009858 sel 9858 bytes 227761632 (112.5% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 24.3 route 4912.7 ingress 1186.6 lance 131631.8 fold 39.9 total 138237.3 cold 140243.8 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 33.8 route 6038.4 ingress 1754.9 lance 140805.0 fold 32.4 total 148825.4 cold 146025.1 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- clustered target 0.1% actual 0.100% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 7679.8 resolve 20.4 route 0.0 ingress 0.0 lance 134060.3 fold 209.3 total 145737.4 cold 171716.5 | scanned 10000000 sel 10000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 8047.3 resolve 14.0 route 0.0 ingress 503.9 lance 191760.9 fold 2.0 total 205692.0 cold 213522.9 | scanned 10010000 sel 10000 bytes 28077728 ( 69.0% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 6.6 route 684.0 ingress 1.5 lance 1176.2 fold 1.6 total 1876.1 cold 2658.6 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 5.5 route 691.3 ingress 1.3 lance 1054.4 fold 1.7 total 1759.0 cold 1711.2 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- clustered target 0.1% actual 0.100% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 8560.3 resolve 24.5 route 0.0 ingress 0.0 lance 325552.8 fold 538.2 total 345488.7 cold 326122.6 | scanned 10000000 sel 10000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7634.4 resolve 16.5 route 0.0 ingress 524.2 lance 190998.9 fold 5.5 total 207558.1 cold 220201.3 | scanned 10010000 sel 10000 bytes 28120496 ( 35.7% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 11.0 route 786.1 ingress 2.4 lance 1522.7 fold 5.4 total 2337.7 cold 2839.7 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 7.9 route 718.5 ingress 1.7 lance 1175.6 fold 4.6 total 1919.4 cold 2068.8 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- clustered target 0.1% actual 0.100% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 8750.3 resolve 35.8 route 0.0 ingress 0.0 lance 991253.8 fold 1333.6 total 1035977.8 cold 1039737.3 | scanned 10000000 sel 10000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7794.1 resolve 23.7 route 0.0 ingress 528.5 lance 191673.4 fold 30.2 total 203428.0 cold 190429.9 | scanned 10010000 sel 10000 bytes 28291568 ( 12.3% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 19.4 route 707.8 ingress 1.7 lance 2567.0 fold 22.1 total 3364.7 cold 3879.8 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 14.8 route 737.7 ingress 2.6 lance 2421.9 fold 22.9 total 3214.8 cold 2864.1 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) +-- scattered target 1.0% actual 1.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) + A-full Lance-backed | where 11416.5 resolve 23.3 route 0.0 ingress 0.0 lance 203178.7 fold 2105.9 total 225583.3 cold 202527.4 | scanned 10000000 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10177.7 resolve 18.9 route 0.0 ingress 5428.0 lance 243713.1 fold 11.0 total 266536.0 cold 306524.4 | scanned 10101671 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 15.0 route 23687.4 ingress 13469.1 lance 34611.0 fold 10.6 total 71800.1 cold 88410.3 | scanned 101671 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 15.6 route 24622.6 ingress 14664.1 lance 42098.3 fold 702.7 total 80704.5 cold 79845.6 | scanned 170665 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- scattered target 1.0% actual 1.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10127.0 resolve 26.5 route 0.0 ingress 0.0 lance 299408.1 fold 8113.9 total 327530.7 cold 354537.9 | scanned 10000000 sel 101671 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10462.7 resolve 21.2 route 0.0 ingress 5719.9 lance 324377.4 fold 134.7 total 348209.4 cold 347788.8 | scanned 10101671 sel 101671 bytes 75948192 (120.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 21.7 route 28666.3 ingress 16269.5 lance 106063.1 fold 143.6 total 152868.0 cold 143233.2 | scanned 101671 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 26.7 route 30213.3 ingress 19079.3 lance 97830.4 fold 1185.1 total 150537.3 cold 141421.9 | scanned 170665 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 1.0% actual 1.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10465.7 resolve 36.5 route 0.0 ingress 0.0 lance 923997.5 fold 28492.4 total 1000911.9 cold 1010671.1 | scanned 10000000 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10068.2 resolve 29.0 route 0.0 ingress 5517.5 lance 574582.1 fold 542.9 total 606038.0 cold 624185.1 | scanned 10101671 sel 101671 bytes 227844576 (112.5% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 47.0 route 29519.6 ingress 16987.5 lance 340822.1 fold 558.0 total 379892.5 cold 380656.2 | scanned 101671 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 27.2 route 24291.5 ingress 14476.3 lance 311672.7 fold 2894.6 total 355250.0 cold 360597.7 | scanned 170665 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 1.0% actual 1.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 7959.4 resolve 17.5 route 0.0 ingress 0.0 lance 128661.0 fold 289.0 total 140551.4 cold 145622.2 | scanned 10000000 sel 100000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 8369.8 resolve 14.0 route 0.0 ingress 1582.9 lance 181396.9 fold 16.2 total 201515.0 cold 208344.5 | scanned 10100000 sel 100000 bytes 28191776 ( 69.2% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 8.9 route 7011.4 ingress 2.7 lance 1905.8 fold 16.2 total 9056.6 cold 9474.7 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 7.9 route 6895.2 ingress 2.3 lance 1749.9 fold 13.1 total 8673.1 cold 8835.8 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- clustered target 1.0% actual 1.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 7614.0 resolve 24.3 route 0.0 ingress 0.0 lance 295994.8 fold 856.3 total 317325.0 cold 312725.2 | scanned 10000000 sel 100000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7655.4 resolve 16.6 route 0.0 ingress 1541.1 lance 178703.7 fold 183.1 total 193697.4 cold 192348.3 | scanned 10100000 sel 100000 bytes 28576688 ( 36.3% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 10.1 route 7119.4 ingress 2.7 lance 2401.2 fold 84.4 total 9456.6 cold 10601.4 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 9.3 route 6990.5 ingress 2.2 lance 2333.5 fold 60.2 total 9371.9 cold 10101.6 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- clustered target 1.0% actual 1.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 7713.6 resolve 34.0 route 0.0 ingress 0.0 lance 976632.3 fold 2993.1 total 1034965.2 cold 986057.0 | scanned 10000000 sel 100000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7872.3 resolve 24.8 route 0.0 ingress 1571.9 lance 191985.1 fold 1115.2 total 207564.8 cold 225119.8 | scanned 10100000 sel 100000 bytes 30116336 ( 13.1% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 20.2 route 6975.2 ingress 3.4 lance 5977.1 fold 691.5 total 13860.3 cold 17560.7 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 17.9 route 7259.1 ingress 2.8 lance 6163.1 fold 524.2 total 13983.3 cold 13103.4 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) +-- scattered target 10.0% actual 10.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10155.7 resolve 22.2 route 0.0 ingress 0.0 lance 186622.4 fold 6313.1 total 209771.1 cold 215265.5 | scanned 10000000 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 9974.7 resolve 17.9 route 0.0 ingress 44385.2 lance 516587.7 fold 445.1 total 578405.6 cold 597901.0 | scanned 11001669 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 17.3 route 95464.3 ingress 109378.8 lance 296595.0 fold 410.1 total 502389.7 cold 489659.9 | scanned 1001669 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 22.1 route 92694.4 ingress 0.1 lance 180388.2 fold 28225.4 total 306880.4 cold 324516.6 | scanned 10000000 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 10.0% actual 10.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) + A-full Lance-backed | where 11031.4 resolve 30.6 route 0.0 ingress 0.0 lance 321375.7 fold 26150.5 total 370518.9 cold 382440.7 | scanned 10000000 sel 1001669 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10305.4 resolve 28.3 route 0.0 ingress 45418.2 lance 1065877.3 fold 1994.5 total 1134078.2 cold 1076888.7 | scanned 11001669 sel 1001669 bytes 75948192 (120.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 19.9 route 103407.1 ingress 119960.0 lance 833890.0 fold 1837.1 total 1063140.3 cold 1048035.9 | scanned 1001669 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 29.5 route 97147.6 ingress 0.1 lance 356339.0 fold 46616.3 total 508455.3 cold 514471.6 | scanned 10000000 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 10.0% actual 10.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10913.9 resolve 37.6 route 0.0 ingress 0.0 lance 946298.5 fold 95686.6 total 1093180.5 cold 1063376.8 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10574.4 resolve 34.1 route 0.0 ingress 46334.9 lance 3074846.0 fold 7744.9 total 3150294.4 cold 3173415.8 | scanned 11001669 sel 1001669 bytes 227844576 (112.5% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 38.2 route 98604.4 ingress 115463.6 lance 2789111.5 fold 8048.2 total 3019443.5 cold 3055576.5 | scanned 1001669 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 37.3 route 91563.9 ingress 0.1 lance 980865.3 fold 108818.3 total 1232465.4 cold 1228371.3 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 10.0% actual 10.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 8607.8 resolve 20.5 route 0.0 ingress 0.0 lance 155320.5 fold 1266.3 total 169840.2 cold 156140.9 | scanned 10000000 sel 1000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 8000.6 resolve 14.1 route 0.0 ingress 21015.9 lance 183114.2 fold 373.0 total 216511.3 cold 211296.5 | scanned 11000000 sel 1000000 bytes 29330960 ( 72.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 12.6 route 72860.4 ingress 13.2 lance 8413.2 fold 408.9 total 81896.6 cold 87134.3 | scanned 1000000 sel 1000000 bytes 1267488 ( 3.1% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 19.9 route 73180.9 ingress 0.1 lance 172451.4 fold 23993.2 total 272917.0 cold 284288.1 | scanned 10000000 sel 1000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 10.0% actual 10.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 7556.4 resolve 23.5 route 0.0 ingress 0.0 lance 280049.3 fold 4638.6 total 303130.5 cold 307298.2 | scanned 10000000 sel 1000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7981.6 resolve 16.5 route 0.0 ingress 21167.9 lance 198575.2 fold 1801.4 total 234978.5 cold 236945.4 | scanned 11000000 sel 1000000 bytes 33133424 ( 42.1% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 15.6 route 72326.1 ingress 13.8 lance 16446.5 fold 1995.9 total 91115.6 cold 95864.6 | scanned 1000000 sel 1000000 bytes 5069952 ( 6.4% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 23.8 route 71815.6 ingress 0.1 lance 338248.3 fold 24433.8 total 446557.1 cold 439905.4 | scanned 10000000 sel 1000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 10.0% actual 10.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 7740.9 resolve 36.2 route 0.0 ingress 0.0 lance 1014329.4 fold 19493.3 total 1077853.2 cold 1066603.0 | scanned 10000000 sel 1000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7734.1 resolve 34.0 route 0.0 ingress 18902.5 lance 278922.9 fold 8528.1 total 320264.3 cold 324735.0 | scanned 11000000 sel 1000000 bytes 48343280 ( 21.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 27.8 route 74008.9 ingress 13.2 lance 71128.6 fold 8203.7 total 161528.8 cold 160260.0 | scanned 1000000 sel 1000000 bytes 20279808 ( 8.8% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 39.0 route 73936.8 ingress 0.1 lance 1122052.4 fold 39350.6 total 1300127.3 cold 1219831.9 | scanned 10000000 sel 1000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 50.0% actual 50.061% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10719.4 resolve 21.0 route 0.0 ingress 0.0 lance 192360.9 fold 9887.7 total 220645.7 cold 214372.8 | scanned 10000000 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 13027.7 resolve 20.6 route 0.0 ingress 147885.8 lance 1264681.8 fold 2553.2 total 1440493.9 cold 1366702.8 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 11644.1 resolve 18.1 route 0.0 ingress 155370.6 lance 1264301.5 fold 2454.1 total 1443967.8 cold 1390000.6 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 23.8 route 413020.4 ingress 265138.3 lance 1114157.3 fold 2647.2 total 1812509.1 cold 1836722.8 | scanned 5006105 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 23.6 route 379145.3 ingress 0.1 lance 190973.7 fold 38915.8 total 616627.0 cold 612960.6 | scanned 10000000 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 50.0% actual 50.061% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) + A-full Lance-backed | where 10367.5 resolve 27.0 route 0.0 ingress 0.0 lance 294877.8 fold 35616.2 total 352738.8 cold 364086.9 | scanned 10000000 sel 5006105 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10360.0 resolve 26.4 route 0.0 ingress 148915.0 lance 3407470.6 fold 11465.3 total 3626822.1 cold 3573391.1 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 11011.7 resolve 25.1 route 0.0 ingress 148106.6 lance 3323058.6 fold 10011.1 total 3507409.2 cold 3647731.0 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 28.2 route 429149.0 ingress 304834.3 lance 3217519.7 fold 10597.0 total 4035830.9 cold 3761312.0 | scanned 5006105 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 27.2 route 396047.9 ingress 0.1 lance 357557.2 fold 65416.6 total 835435.0 cold 815435.2 | scanned 10000000 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- scattered target 50.0% actual 50.061% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) + A-full Lance-backed | where 9791.2 resolve 39.0 route 0.0 ingress 0.0 lance 964873.6 fold 139004.0 total 1163500.2 cold 1169210.0 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10322.2 resolve 36.2 route 0.0 ingress 156145.7 lance 11223882.2 fold 39101.5 total 11483954.2 cold 11703181.2 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 11077.4 resolve 38.7 route 0.0 ingress 152089.1 lance 11024802.7 fold 41993.8 total 11266109.0 cold 11194269.3 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 38.1 route 433247.8 ingress 267904.9 lance 10648074.9 fold 44655.8 total 11428847.8 cold 11260166.1 | scanned 5006105 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 39.9 route 379619.2 ingress 0.1 lance 1113109.6 fold 175777.9 total 1703210.0 cold 1689868.0 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 50.0% actual 50.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 7848.3 resolve 19.6 route 0.0 ingress 0.0 lance 134781.7 fold 5577.4 total 153026.7 cold 179169.6 | scanned 10000000 sel 5000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7803.7 resolve 18.8 route 0.0 ingress 146219.7 lance 235038.4 fold 2854.5 total 408595.6 cold 487667.2 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 7827.1 resolve 16.0 route 0.0 ingress 140511.9 lance 228474.7 fold 2558.1 total 386873.4 cold 400777.3 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 16.0 route 382153.3 ingress 36.3 lance 43883.8 fold 2676.2 total 435760.9 cold 421718.5 | scanned 5000000 sel 5000000 bytes 6329664 ( 15.5% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 20.7 route 380864.2 ingress 0.1 lance 182737.8 fold 31575.9 total 604954.5 cold 601639.7 | scanned 10000000 sel 5000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 50.0% actual 50.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 8032.5 resolve 24.7 route 0.0 ingress 0.0 lance 293784.7 fold 21115.2 total 335521.6 cold 351990.3 | scanned 10000000 sel 5000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7678.5 resolve 22.3 route 0.0 ingress 137644.8 lance 340742.4 fold 11316.5 total 511430.3 cold 471510.9 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 9010.1 resolve 20.0 route 0.0 ingress 161571.5 lance 304496.2 fold 10092.4 total 495553.0 cold 484011.9 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 22.0 route 373217.7 ingress 36.8 lance 133951.4 fold 11005.7 total 532690.1 cold 505669.1 | scanned 5000000 sel 5000000 bytes 25318656 ( 32.2% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 25.6 route 372731.6 ingress 0.1 lance 369704.0 fold 45799.8 total 792887.3 cold 863425.1 | scanned 10000000 sel 5000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) +-- clustered target 50.0% actual 50.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) + A-full Lance-backed | where 8178.7 resolve 38.4 route 0.0 ingress 0.0 lance 1059049.8 fold 86481.4 total 1196625.3 cold 1203390.6 | scanned 10000000 sel 5000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 9527.3 resolve 35.4 route 0.0 ingress 153320.2 lance 680320.8 fold 41717.6 total 930447.5 cold 872082.1 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 8620.2 resolve 38.6 route 0.0 ingress 191782.1 lance 723638.9 fold 40909.9 total 990657.5 cold 961676.8 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 39.6 route 377818.4 ingress 25.0 lance 505224.4 fold 41029.0 total 957842.4 cold 917075.6 | scanned 5000000 sel 5000000 bytes 101274624 ( 43.9% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 38.8 route 368828.7 ingress 0.1 lance 1019101.3 fold 111882.0 total 1561248.3 cold 1560474.3 | scanned 10000000 sel 5000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + +# wrote /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/lancearm/lance_arm/n10000000/lance_arm.json +# all oracle and refusal checks passed +rc=0 From 4fbb533d43e07a00d0266a33f964a9af7c174a1b Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:29:59 +0000 Subject: [PATCH 17/23] lab: rustfmt + clippy -D warnings on the Lance arm and addressed.rs The crepe-plan-probe CI job runs `cargo fmt --check` and `cargo clippy --all-targets -- -D warnings`. This commit applies rustfmt to both files and removes the two warnings: the unused Env::n field, and an initial value of `read` that was overwritten before being read. No behaviour change. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../examples/where_lance_arm.rs | 242 +++++++++++++++--- crates/crepe-plan-probe/src/addressed.rs | 6 +- 2 files changed, 203 insertions(+), 45 deletions(-) diff --git a/crates/crepe-plan-probe/examples/where_lance_arm.rs b/crates/crepe-plan-probe/examples/where_lance_arm.rs index 3f8c3ec27..e1d93b3ed 100644 --- a/crates/crepe-plan-probe/examples/where_lance_arm.rs +++ b/crates/crepe-plan-probe/examples/where_lance_arm.rs @@ -207,11 +207,25 @@ impl ClassView for LabClass { #[derive(Debug, Clone, PartialEq, Eq)] enum Refusal { - AbsentField { pos: u8 }, - Unauthorized { pos: u8 }, - UnknownProperty { pos: u8, iri: String }, - AmbiguousProperty { pos: u8, iri: String, columns: Vec }, - StaleSchema { resolved: u64, current: u64 }, + AbsentField { + pos: u8, + }, + Unauthorized { + pos: u8, + }, + UnknownProperty { + pos: u8, + iri: String, + }, + AmbiguousProperty { + pos: u8, + iri: String, + columns: Vec, + }, + StaleSchema { + resolved: u64, + current: u64, + }, } /// The only path from demanded positions to a column list. On any refusal there @@ -468,7 +482,12 @@ fn oracle(n: u32, w: &Where, dem: &[u8]) -> Oracle { } let mut ids = Vec::with_capacity(count as usize); for_each_set(&bits, n as usize, |i| ids.push(i as u32)); - Oracle { bits, count, sums, ids } + Oracle { + bits, + count, + sums, + ids, + } } /// Smallest-error `T` (with `U = T`) per target fraction, from the exact 2-D @@ -527,7 +546,10 @@ async fn attest(ds: &Dataset) -> Result<(SealedFacetLane, OrderedLaneWitness), S .and_then(|c| c.as_any().downcast_ref::()) .ok_or("no _rowaddr column")?; if rid.values() != rad.values() { - return Err("RowIdSpace: _rowid != _rowaddr (stable row ids?); the lane cannot key the prefilter".into()); + return Err( + "RowIdSpace: _rowid != _rowaddr (stable row ids?); the lane cannot key the prefilter" + .into(), + ); } let keys = id.iter().map(|&v| key(v, 0)).collect(); let lane = SealedFacetLane::attest_sorted(keys, ds.version().version) @@ -597,7 +619,6 @@ struct Out { } struct Env { - n: u32, ds: Dataset, /// The #1633 addressed relation: dataset uri + attested lane + witness. rel: AddressedRelation, @@ -650,7 +671,11 @@ async fn run_once(env: &Env, c: &Case, arm: Arm) -> Result { // The attested version must still be the current one (an I/O call). let s = Instant::now(); - let latest = env.ds.latest_version_id().await.map_err(|e| e.to_string())?; + let latest = env + .ds + .latest_version_id() + .await + .map_err(|e| e.to_string())?; res_w.check_current(latest).map_err(|e| format!("{e:?}"))?; res_d.check_current(latest).map_err(|e| format!("{e:?}"))?; t[T_LANCE] += us(s); @@ -661,7 +686,7 @@ async fn run_once(env: &Env, c: &Case, arm: Arm) -> Result { io.bytes_read += x.bytes_read; }; let mut mask_bytes = 0usize; - let mut read = String::from("-"); + let read: String; let (count, sums); match arm { @@ -782,7 +807,14 @@ async fn run_once(env: &Env, c: &Case, arm: Arm) -> Result { } } t[T_TOTAL] = us(t_all); - Ok(Out { t, io, count, sums, mask_bytes, read }) + Ok(Out { + t, + io, + count, + sums, + mask_bytes, + read, + }) } fn median(mut v: Vec) -> f64 { @@ -869,52 +901,129 @@ async fn refusal_tests( let no5 = (0..NPROPS as u8) .filter(|&p| p != 5) .fold(FieldMask::EMPTY, |m, p| m.with(p)); - let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[5]), no5, &all, small); + let r = resolve( + &view, + CLASS, + &WideFieldMask::from_positions(&[5]), + no5, + &all, + small, + ); check( "AbsentField refused, no column list", matches!(r, Err(Refusal::AbsentField { pos: 5 })), fails, ); - let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[5]), presence, &all, small); - check("AbsentField control: present position resolves", r.is_ok(), fails); + let r = resolve( + &view, + CLASS, + &WideFieldMask::from_positions(&[5]), + presence, + &all, + small, + ); + check( + "AbsentField control: present position resolves", + r.is_ok(), + fails, + ); // Unauthorized: position not in the caller's permit mask. let permit_no7 = WideFieldMask::from_positions(&[0, 1, 2, 3, 4, 5, 6, 8, 9]); - let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[7]), presence, &permit_no7, small); + let r = resolve( + &view, + CLASS, + &WideFieldMask::from_positions(&[7]), + presence, + &permit_no7, + small, + ); check( "Unauthorized refused, no column list", matches!(r, Err(Refusal::Unauthorized { pos: 7 })), fails, ); - let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[6]), presence, &permit_no7, small); - check("Unauthorized control: permitted position resolves", r.is_ok(), fails); + let r = resolve( + &view, + CLASS, + &WideFieldMask::from_positions(&[6]), + presence, + &permit_no7, + small, + ); + check( + "Unauthorized control: permitted position resolves", + r.is_ok(), + fails, + ); // UnknownProperty: the class names p16, no column carries its iri. let view17 = LabClass::with_fields(NPROPS + 1); let presence17 = (0..=NPROPS as u8).fold(FieldMask::EMPTY, |m, p| m.with(p)); let all17 = WideFieldMask::full_for(NPROPS + 1); - let r = resolve(&view17, CLASS, &WideFieldMask::from_positions(&[16]), presence17, &all17, small); + let r = resolve( + &view17, + CLASS, + &WideFieldMask::from_positions(&[16]), + presence17, + &all17, + small, + ); check( "UnknownProperty refused, no column list", matches!(&r, Err(Refusal::UnknownProperty { pos: 16, .. })), fails, ); - let r = resolve(&view17, CLASS, &WideFieldMask::from_positions(&[15]), presence17, &all17, small); - check("UnknownProperty control: known position resolves", r.is_ok(), fails); + let r = resolve( + &view17, + CLASS, + &WideFieldMask::from_positions(&[15]), + presence17, + &all17, + small, + ); + check( + "UnknownProperty control: known position resolves", + r.is_ok(), + fails, + ); // AmbiguousProperty: the second dataset carries p_dup with p15's iri. - let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[15]), presence, &all, amb); + let r = resolve( + &view, + CLASS, + &WideFieldMask::from_positions(&[15]), + presence, + &all, + amb, + ); check( "AmbiguousProperty refused (2 columns), no column list", matches!(&r, Err(Refusal::AmbiguousProperty { columns, .. }) if columns.len() == 2), fails, ); - let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[14]), presence, &all, amb); - check("AmbiguousProperty control: unambiguous position resolves", r.is_ok(), fails); + let r = resolve( + &view, + CLASS, + &WideFieldMask::from_positions(&[14]), + presence, + &all, + amb, + ); + check( + "AmbiguousProperty control: unambiguous position resolves", + r.is_ok(), + fails, + ); // The trap check: ordinal / label mapping gives a DIFFERENT answer. println!("\n== Mapping traps (the test would catch a positional or label mapping) =="); - let names: Vec = small.schema().fields.iter().map(|f| f.name.clone()).collect(); + let names: Vec = small + .schema() + .fields + .iter() + .map(|f| f.name.clone()) + .collect(); let (b, _) = scan(small, &names, false, None).await?; let n_small = b.num_rows() as u32; let mut ordinal_wrong = 0usize; @@ -922,7 +1031,10 @@ async fn refusal_tests( for j in 0..NPROPS { let truth: i64 = (0..n_small).map(|id| i64::from(gen_val(id, j))).sum(); // position == physical column ordinal (after id): the forbidden shortcut. - let by_ordinal: i64 = i32col(&b, &names[1 + j]).iter().map(|&x| i64::from(x)).sum(); + let by_ordinal: i64 = i32col(&b, &names[1 + j]) + .iter() + .map(|&x| i64::from(x)) + .sum(); if by_ordinal != truth { ordinal_wrong += 1; } @@ -932,26 +1044,61 @@ async fn refusal_tests( label_misses += 1; } // the resolver's answer - let r = resolve(&view, CLASS, &WideFieldMask::from_positions(&[j as u8]), presence, &all, small) - .map_err(|e| format!("{e:?}"))?; - let via: i64 = i32col(&b, &r.columns[0]).iter().map(|&x| i64::from(x)).sum(); + let r = resolve( + &view, + CLASS, + &WideFieldMask::from_positions(&[j as u8]), + presence, + &all, + small, + ) + .map_err(|e| format!("{e:?}"))?; + let via: i64 = i32col(&b, &r.columns[0]) + .iter() + .map(|&x| i64::from(x)) + .sum(); if via != truth { - return Err(format!("resolver answer differs from the generator at p{j}")); + return Err(format!( + "resolver answer differs from the generator at p{j}" + )); } } - println!(" ordinal mapping wrong on {ordinal_wrong}/{NPROPS} positions; label mapping finds no column on {label_misses}/{NPROPS}"); - check("ordinal mapping gives a different answer (trap is live)", ordinal_wrong > 0, fails); - check("label mapping finds no physical column", label_misses == NPROPS, fails); + println!( + " ordinal mapping wrong on {ordinal_wrong}/{NPROPS} positions; label mapping finds no column on {label_misses}/{NPROPS}" + ); + check( + "ordinal mapping gives a different answer (trap is live)", + ordinal_wrong > 0, + fails, + ); + check( + "label mapping finds no physical column", + label_misses == NPROPS, + fails, + ); // StaleSchema and the stale lane, on the small dataset (mutated last). println!("\n== Staleness (dataset appended after resolution / attest) =="); let res = resolve(&view, CLASS, &dem, presence, &all, small).map_err(|e| format!("{e:?}"))?; let (lane, w) = attest(small).await?; - let rel = AddressedRelation { rel: RelId(0), uri: small.uri().to_string(), lane, witness: w }; + let rel = AddressedRelation { + rel: RelId(0), + uri: small.uri().to_string(), + lane, + witness: w, + }; let (lane, w) = (&rel.lane, &rel.witness); let latest = small.latest_version_id().await.map_err(|e| e.to_string())?; - check("control: schema resolution current before append", res.check_current(latest).is_ok(), fails); - check("control: lane fresh before append", check_fresh(&rel, small.uri(), latest).is_ok(), fails); + check( + "control: schema resolution current before append", + res.check_current(latest).is_ok(), + fails, + ); + check( + "control: lane fresh before append", + check_fresh(&rel, small.uri(), latest).is_ok(), + fails, + ); check( "control: seek under the real witness runs", lane.seek_from(w, 0, &leading(3).lo_key()).is_ok(), @@ -969,8 +1116,16 @@ async fn refusal_tests( matches!(r, Err(Refusal::StaleSchema { resolved, current }) if current == resolved + 1), fails, ); - check("stale lane refused after append", check_fresh(&rel, grown.uri(), latest2).is_err(), fails); - check("other dataset refused", check_fresh(&rel, "memory://elsewhere", latest).is_err(), fails); + check( + "stale lane refused after append", + check_fresh(&rel, grown.uri(), latest2).is_err(), + fails, + ); + check( + "other dataset refused", + check_fresh(&rel, "memory://elsewhere", latest).is_err(), + fails, + ); let forged = OrderedLaneWitness::forged(latest2, lane.n_rows(), w.digest()); check( "forged (newer-version) witness refused by seek_from", @@ -1068,9 +1223,13 @@ async fn real_main(out_dir: &str, n: u32, reps: usize) -> Result<(), String> { let presence = (0..NPROPS as u8).fold(FieldMask::EMPTY, |m, p| m.with(p)); let uri_main = ds.uri().to_string(); let env = Env { - n, ds, - rel: AddressedRelation { rel: RelId(0), uri: uri_main, lane, witness }, + rel: AddressedRelation { + rel: RelId(0), + uri: uri_main, + lane, + witness, + }, attest_cold_us, view: LabClass::with_fields(NPROPS), presence, @@ -1085,7 +1244,10 @@ async fn real_main(out_dir: &str, n: u32, reps: usize) -> Result<(), String> { let ks: [(usize, &[u8]); 3] = [ (1, &[7u8][..]), (4, &[0u8, 5, 10, 15][..]), - (16, &[0u8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15][..]), + ( + 16, + &[0u8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15][..], + ), ]; let mut rows: Vec = Vec::new(); println!("\n== Measurements (us, median of {reps} warm runs; cold = first run) =="); diff --git a/crates/crepe-plan-probe/src/addressed.rs b/crates/crepe-plan-probe/src/addressed.rs index b90ebaa16..c8065efc8 100644 --- a/crates/crepe-plan-probe/src/addressed.rs +++ b/crates/crepe-plan-probe/src/addressed.rs @@ -279,11 +279,7 @@ pub fn range_mask(ranges: &[(u32, u32)]) -> RowAddrMask { /// Refuses a lane read against another dataset or a dataset that moved on /// since the lane was attested. -pub fn check_fresh( - a: &AddressedRelation, - uri: &str, - current: u64, -) -> Result<(), AddressedRefusal> { +pub fn check_fresh(a: &AddressedRelation, uri: &str, current: u64) -> Result<(), AddressedRefusal> { if uri != a.uri { return Err(AddressedRefusal::OtherDataset { rel: a.rel, From e8fd017c69650597cc31eb965d2708de52141a14 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:32:19 +0000 Subject: [PATCH 18/23] board: give the P2 entry a unique ID (D-GLOBAL-WHERE-P2) entries_index --check failed with DUPLICATE ID: D-GLOBAL-WHERE. The index takes the first D-id token in an entry's heading, so "D-GLOBAL-WHERE P2" and P0's "D-GLOBAL-WHERE P0" read as the same ID. The P2 heading is now D-GLOBAL-WHERE-P2 and its index row has been regenerated. Both checks pass: the entries index and the supersession index. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .claude/board/entries/2026-11-03-d-global-where-p2.md | 2 +- .claude/board/entries/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/board/entries/2026-11-03-d-global-where-p2.md b/.claude/board/entries/2026-11-03-d-global-where-p2.md index ac110e532..43561292a 100644 --- a/.claude/board/entries/2026-11-03-d-global-where-p2.md +++ b/.claude/board/entries/2026-11-03-d-global-where-p2.md @@ -1,4 +1,4 @@ -# D-GLOBAL-WHERE P2: criteria-aware WHERE, DR composition, Lance selective read, three parity verdicts +# D-GLOBAL-WHERE-P2: criteria-aware WHERE, DR composition, Lance selective read, three parity verdicts **Status:** MEASURED, lab only. No production change. **Probe:** `.claude/probes/2026-11-03-d-global-where-p1/`. Read `REPORT.md` for numbers and verdicts, `ENGINEERING-PARITY.md` for the literature matrix, and `LANCE-TRACE.md` for the source-backed caller path. The Lance arm lives in `crates/crepe-plan-probe/examples/where_lance_arm.rs`. diff --git a/.claude/board/entries/README.md b/.claude/board/entries/README.md index b9375e922..a39c9fd06 100644 --- a/.claude/board/entries/README.md +++ b/.claude/board/entries/README.md @@ -31,7 +31,7 @@ exactly one of them, never both. |---|---|---|---| | 2026-11-03 | `D-XLOG-META-WIRE-P0` | | [2026-11-03-d-xlog-meta-wire-p0.md](2026-11-03-d-xlog-meta-wire-p0.md) | | 2026-11-03 | `D-GRAMMAR-CONSTRAINTS-0` | | [2026-11-03-d-grammar-constraints-0.md](2026-11-03-d-grammar-constraints-0.md) | -| 2026-11-03 | `D-GLOBAL-WHERE` | | [2026-11-03-d-global-where-p2.md](2026-11-03-d-global-where-p2.md) | +| 2026-11-03 | `D-GLOBAL-WHERE-P2` | | [2026-11-03-d-global-where-p2.md](2026-11-03-d-global-where-p2.md) | | 2026-11-03 | `D-GLOBAL-WHERE` | | [2026-11-03-d-global-where-p0.md](2026-11-03-d-global-where-p0.md) | | 2026-11-03 | `D-DR-FOLD-MAP` | | [2026-11-03-d-dr-fold-map.md](2026-11-03-d-dr-fold-map.md) | | 2026-11-03 | `D-COGNITIVE-POLYFILL` | | [2026-11-03-d-cognitive-polyfill-p0.md](2026-11-03-d-cognitive-polyfill-p0.md) | From 90eb4cce56412bd3faf4dfa4ea619c7c450f0b54 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:33:20 +0000 Subject: [PATCH 19/23] lab: Lance arm builds one RowAddrTreeMap per masked read (Codex P2) The C arms timed two tree builds in the ingress stage: range_tree() to measure the serialized size, then range_mask(), which builds the tree again. That inflated the reported S-INGRESS cost. Both the B and C arms now build exactly one tree inside the timer. They measure its serialized size outside the timer (that is reporting, not ingress) and hand the same tree to RowAddrMask::from_allowed / from_block. The committed Lance-arm results predate this fix. They are being regenerated. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../examples/where_lance_arm.rs | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/crates/crepe-plan-probe/examples/where_lance_arm.rs b/crates/crepe-plan-probe/examples/where_lance_arm.rs index e1d93b3ed..6d813395b 100644 --- a/crates/crepe-plan-probe/examples/where_lance_arm.rs +++ b/crates/crepe-plan-probe/examples/where_lance_arm.rs @@ -58,8 +58,7 @@ use std::time::Instant; use arrow_array::{Int32Array, RecordBatch, RecordBatchIterator, UInt32Array, UInt64Array}; use arrow_schema::{DataType, Field, Schema}; use crepe_plan_probe::addressed::{ - AddressedRelation, Read, ReadPolicy, check_fresh, key, leading, plan_read, range_mask, - range_tree, ranges, + AddressedRelation, Read, ReadPolicy, check_fresh, key, leading, plan_read, range_tree, ranges, }; use crepe_plan_probe::logic::RelId; use lance::dataset::scanner::{ExecutionStatsCallback, RowAddrMask, RowAddrTreeMap}; @@ -722,15 +721,14 @@ async fn run_once(env: &Env, c: &Case, arm: Arm) -> Result { t[T_WHERE] = us(s); // Phase 2a: MASK INGRESS (copies addresses into RowAddrTreeMap). + // Timed: building the one tree Lance receives. Not timed: its + // serialized size, which is reporting, not ingress. let s = Instant::now(); let addr = addrcol(&b1); - let mask = if arm == Arm::BAllow { + let (tree, allow) = if arm == Arm::BAllow { let mut list = Vec::new(); for_each_set(&where_bits, b1.num_rows(), |i| list.push(addr[i])); - let tree = RowAddrTreeMap::from_iter(list); - mask_bytes = tree.serialized_size(); - read = "allow".into(); - RowAddrMask::from_allowed(tree) + (RowAddrTreeMap::from_iter(list), true) } else { let mut inv: Vec = where_bits.iter().map(|w| !w).collect(); if let Some(last) = inv.last_mut() { @@ -741,12 +739,17 @@ async fn run_once(env: &Env, c: &Case, arm: Arm) -> Result { } let mut list = Vec::new(); for_each_set(&inv, b1.num_rows(), |i| list.push(addr[i])); - let tree = RowAddrTreeMap::from_iter(list); - mask_bytes = tree.serialized_size(); + (RowAddrTreeMap::from_iter(list), false) + }; + t[T_INGRESS] = us(s); + mask_bytes = tree.serialized_size(); + let mask = if allow { + read = "allow".into(); + RowAddrMask::from_allowed(tree) + } else { read = "block".into(); RowAddrMask::from_block(tree) }; - t[T_INGRESS] = us(s); // Phase 2b: prefilter scan, resolved demanded columns only. let s = Instant::now(); @@ -774,16 +777,19 @@ async fn run_once(env: &Env, c: &Case, arm: Arm) -> Result { let (how, planned) = plan_read(&exact, env.rel.lane.n_rows(), policy); t[T_ROUTE] = us(s); + // Timed: building the ONE tree Lance receives (`range_tree`, which + // `addressed::range_mask` also uses). Not timed: its serialized + // size, which is reporting, not ingress. Same split as the B arms. let s = Instant::now(); - let mask = match how { + let tree = match how { Read::Full => None, - Read::Ranges | Read::Coalesced => { - // Bytes measured on the same tree `range_mask` builds. - mask_bytes = range_tree(&planned).serialized_size(); - Some(range_mask(&planned)) - } + Read::Ranges | Read::Coalesced => Some(range_tree(&planned)), }; t[T_INGRESS] = us(s); + let mask = tree.map(|tree| { + mask_bytes = tree.serialized_size(); + RowAddrMask::from_allowed(tree) + }); read = format!("{how:?}/{}r", planned.len()); let need_addr = how != Read::Ranges; From b329a31705e30003e4fbf87ca64fcf5d088befe9 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:50:20 +0000 Subject: [PATCH 20/23] lab: regenerate D-GLOBAL-WHERE P2 Lance results after the one-tree fix The 1M and 10M Lance arms were re-run on 90eb4cce5. Every oracle check and every refusal check passes at both sizes. C-arm ingress roughly halves (1.8-2.9x at 1M); for 3.26M ranges it is now 123,162 us, down from 267,905 us. B-arm ingress is unchanged within noise, and mask byte counts are identical. REPORT.md tables, prose ratios and the cost table are regenerated from the logs. The board entry is updated to match. Figures previously written in ms are now in us. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../entries/2026-11-03-d-global-where-p2.md | 8 +- .../2026-11-03-d-global-where-p1/REPORT.md | 101 +++++---- .../results/lance_arm/n1000000/lance_arm.json | 206 +++++++++--------- .../results/lance_arm/n1000000/lance_arm.log | 206 +++++++++--------- .../lance_arm/n10000000/lance_arm.json | 206 +++++++++--------- .../results/lance_arm/n10000000/lance_arm.log | 206 +++++++++--------- 6 files changed, 471 insertions(+), 462 deletions(-) diff --git a/.claude/board/entries/2026-11-03-d-global-where-p2.md b/.claude/board/entries/2026-11-03-d-global-where-p2.md index 43561292a..b172592dc 100644 --- a/.claude/board/entries/2026-11-03-d-global-where-p2.md +++ b/.claude/board/entries/2026-11-03-d-global-where-p2.md @@ -13,16 +13,16 @@ - Count beats DuckDB by 14.2× (1M, 1 thread) down to 1.96× (10M, 4 threads), weighted 34/46/14/6. - EXISTS loses at 10M, 0.43× and 0.16×. `Terminal::Any` has no per-tile early exit (`exec.rs:1793`). - Lance at 1M: a clustered selection reads 0.1–9% of the full scan's bytes. -- A scattered 0.1% selection already reads 33% of the bytes at k=1 and 99.8% at k=16. At 10–50% the masked read is 2.7–11× slower than a full scan, and `ReadPolicy::DEFAULT` already falls back to a full read there. -- At 10M a clustered 0.1% read is 114× faster than the full scan. -- `ReadPolicy::DEFAULT` decides on covered rows alone, so it also sends a single contiguous 10% range to a full scan: 3.8× slower at 1M, 4.9× at 10M. Range count, not coverage, separates clustered from scattered demand. +- A scattered 0.1% selection already reads 33% of the bytes at k=1 and 99.8% at k=16. At 10–50% the masked read is 1.4–11× slower than a full scan, and `ReadPolicy::DEFAULT` already falls back to a full read there. +- At 10M a clustered 0.1% read is 112× faster than the full scan. +- `ReadPolicy::DEFAULT` decides on covered rows alone, so it also sends a single contiguous 10% range to a full scan: 3.8× slower at 1M, 4.6× at 10M. Range count, not coverage, separates clustered from scattered demand. **Engineering parity: reached on representation, not on strategy.** - Missing wiring: EXISTS early exit, and routing once instead of per query (break-even at Q ≥ 2; 158,198 → 1,012 µs per query at Q=256). - Missing capability: choosing evaluation direction, and an ordered u8-in-u32 compare word. Composing existing words costs one pass per 2-bit prefix, up to 5× slower than a hand loop. **Costs measured, never assumed free.** -- RowAddrMask ingress is a copy, and scales with ranges, not rows: 1.9 µs for 1 range; about 9.5 ms and 126 KB for 91,527 scattered ranges. +- RowAddrMask ingress is a copy, and scales with ranges, not rows: 0.4–5.4 µs for 1 range; about 4,600 µs and 126 KB for 91,527 scattered ranges; 123,162 µs for 3.26M ranges. One tree is built per read, and its size is measured outside the timer. The first run built two trees per C read and doubled those figures (Codex finding on #1950); the corrected numbers are the ones recorded. - Lane routing costs about 70–90 ns per id. **Boundary:** `BLOCKED_D4`. No witness binds a DR Frame to a Lance version. Arm C takes its ids as given and composes no DR ordinal with `_rowid`. No third coordinate map was built. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md index ce47418a4..dd839e664 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md @@ -144,18 +144,18 @@ Selected cells (full table: `results/lance_arm/n1000000/lance_arm.log`): | layout | sel | k | arm | rows scanned | bytes (% of A) | mask bytes | route | ingress | Lance read | |---|---|---|---|---:|---:|---:|---:|---:|---:| -| clustered | 0.1% | 1 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 18,367 | -| clustered | 0.1% | 1 | C-exact | 1,000 | 0.1% | 27 | 92 | 1.9 | 1,176 | -| clustered | 10% | 4 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 27,222 | -| clustered | 10% | 4 | C-exact | 100,000 | 6.8% | 47 | 6,908 | 2.7 | 2,558 | -| scattered | 0.1% | 1 | C-exact | 988 | 33.3% | 2,124 | 440 | 109 | 2,440 | -| scattered | 0.1% | 16 | C-exact | 988 | 99.8% | 2,124 | 644 | 157 | 19,219 | -| scattered | 10% | 4 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 28,052 | -| scattered | 10% | 4 | B-allow | 1,100,164 | 120.0% | 126,420 | 0 | 3,510 | 76,684 | -| scattered | 10% | 4 | C-exact | 100,164 | 80.0% | 126,420 | 9,125 | 9,499 | 55,457 | -| scattered | 10% | 16 | C-exact | 100,164 | 100% | 126,420 | 9,094 | 9,341 | 232,319 | -| scattered | 50% | 16 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 93,010 | -| scattered | 50% | 16 | C-exact | 500,613 | 100% | 377,194 | 44,429 | 19,380 | 925,837 | +| clustered | 0.1% | 1 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 10,944 | +| clustered | 0.1% | 1 | C-exact | 1,000 | 0.1% | 27 | 65.5 | 0.5 | 620 | +| clustered | 10% | 4 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 25,139 | +| clustered | 10% | 4 | C-exact | 100,000 | 6.8% | 47 | 6,951 | 1.6 | 2,180 | +| scattered | 0.1% | 1 | C-exact | 988 | 33.3% | 2,124 | 331 | 49.1 | 1,631 | +| scattered | 0.1% | 16 | C-exact | 988 | 99.8% | 2,124 | 487 | 50.3 | 12,930 | +| scattered | 10% | 4 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 25,411 | +| scattered | 10% | 4 | B-allow | 1,100,164 | 120% | 126,420 | 0 | 3,201 | 67,939 | +| scattered | 10% | 4 | C-exact | 100,164 | 80% | 126,420 | 9,533 | 4,593 | 54,872 | +| scattered | 10% | 16 | C-exact | 100,164 | 100% | 126,420 | 9,136 | 4,572 | 222,968 | +| scattered | 50% | 16 | A-full | 1,000,000 | 100% | 0 | 0 | 0 | 83,343 | +| scattered | 50% | 16 | C-exact | 500,613 | 100% | 377,194 | 43,569 | 10,888 | 945,373 | What this shows: @@ -168,23 +168,30 @@ What this shows: least one survivor is read whole. This repeats H14c/H14d (#1573/#1575) on the #1633 path. It is a physical I/O limit, not a wiring defect. 3. **On scattered selections a masked read is slower than a full scan.** - - At 10% and k=16, C-exact takes 232,319 µs against A's 86,593 µs; B takes - 261,354 µs. - - At 50% and k=16, C-exact takes 925,837 µs against A's 93,010 µs. + - At 10% and k=16, C-exact takes 222,968 µs against A's 88,913 µs; B takes + 255,226 µs. + - At 50% and k=16, C-exact takes 945,373 µs against A's 83,343 µs. + - Across scattered 10–50%, C-exact is 1.4–11× slower than A, and B is + 2.4–11× slower. - `ReadPolicy::DEFAULT` sees this coming and falls back to a full read on every scattered 10–50% cell. That is the #1489 "cost choice", already implemented. It still pays for the route stage before deciding. 4. **Mask ingress is a copy, and its cost scales with the number of ranges, not rows.** - - One clustered range: 27–144 B of tree, 1.9–9.1 µs. - - 91,527 scattered ranges: 126,420 B, ~9.5 ms. - - 326,222 ranges: 377,194 B, ~19 ms. + - One clustered range: 27–144 B of tree, 0.4–5.4 µs. + - 91,527 scattered ranges: 126,420 B, ~4,600 µs. + - 326,222 ranges: 377,194 B, ~9,400–10,900 µs. + + Timing covers building the one tree Lance receives. The serialized size is + measured outside the timer. The first run of this report timed two tree + builds per C read and doubled the C ingress figures (Codex finding on + #1950); every number here is from the corrected code. It is never zero-copy: `insert_range` builds a `RowAddrTreeMap` that Lance owns (S-INGRESS). 5. **Route (ids → lane ranges by galloping seek) is the dominant non-I/O - cost.** It is about 70–90 ns per id: 6.9 ms per 100k ids and 35–44 ms per - 500k. It is FAILED-GATE on every cell ≥ 10k ids. It is linear in the + cost.** It is about 70–95 ns per id: 6,900–9,500 µs per 100k ids and + 34,000–44,000 µs per 500k. It is FAILED-GATE on every cell ≥ 10k ids. It is linear in the number of ids because each id is sought separately. ### 10M results (median of 3 warm runs, µs) @@ -194,27 +201,27 @@ version. Full table: `results/lance_arm/n10000000/lance_arm.log`. | layout | sel | k | arm | rows scanned | bytes (% of A) | mask bytes | route | ingress | Lance read | |---|---|---|---|---:|---:|---:|---:|---:|---:| -| clustered | 0.1% | 1 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 134,060 | -| clustered | 0.1% | 1 | C-exact | 10,000 | 0.04% | 27 | 684 | 1.5 | 1,176 | -| clustered | 10% | 4 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 280,049 | -| clustered | 10% | 4 | C-exact | 1,000,000 | 6.4% | 242 | 72,326 | 13.8 | 16,447 | -| clustered | 10% | 4 | C-default | 10,000,000 | 64.3% | 0 | 71,816 | 0.1 | 338,248 | -| scattered | 0.1% | 1 | C-exact | 9,858 | 33.3% | 20,960 | 4,951 | 1,171 | 9,961 | -| scattered | 0.1% | 16 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 916,108 | -| scattered | 0.1% | 16 | C-exact | 9,858 | 100% | 20,960 | 4,913 | 1,187 | 131,632 | -| scattered | 10% | 4 | C-exact | 1,001,669 | 80.0% | 1,317,366 | 103,407 | 119,960 | 833,890 | -| scattered | 10% | 16 | C-exact | 1,001,669 | 100% | 1,317,366 | 98,604 | 115,464 | 2,789,112 | -| scattered | 50% | 16 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 964,874 | -| scattered | 50% | 16 | C-exact | 5,006,105 | 100% | 4,776,680 | 433,248 | 267,905 | 10,648,075 | +| clustered | 0.1% | 1 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 133,908 | +| clustered | 0.1% | 1 | C-exact | 10,000 | 0.04% | 27 | 758 | 1.3 | 1,196 | +| clustered | 10% | 4 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 284,073 | +| clustered | 10% | 4 | C-exact | 1,000,000 | 6.4% | 242 | 73,993 | 11.6 | 16,348 | +| clustered | 10% | 4 | C-default | 10,000,000 | 64.3% | 0 | 71,509 | 0.1 | 319,741 | +| scattered | 0.1% | 1 | C-exact | 9,858 | 33.3% | 20,960 | 4,702 | 583 | 10,024 | +| scattered | 0.1% | 16 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 1,001,637 | +| scattered | 0.1% | 16 | C-exact | 9,858 | 100% | 20,960 | 4,721 | 560 | 126,264 | +| scattered | 10% | 4 | C-exact | 1,001,669 | 80% | 1,317,366 | 96,773 | 57,455 | 773,128 | +| scattered | 10% | 16 | C-exact | 1,001,669 | 100% | 1,317,366 | 98,639 | 55,939 | 2,814,172 | +| scattered | 50% | 16 | A-full | 10,000,000 | 100% | 0 | 0 | 0 | 1,029,055 | +| scattered | 50% | 16 | C-exact | 5,006,105 | 100% | 4,776,680 | 416,595 | 123,162 | 11,019,172 | The 1M pattern holds at 10M, and grows: -- A clustered 0.1% read is 114× faster than the full scan. +- A clustered 0.1% read is 112× faster than the full scan. - The worst scattered read (50%, k=16) is 11× slower than the full scan. - Even a 0.1% scattered selection at k=16 reads 100% of the bytes, yet it - still beats the full scan 7× on time, because it decodes 9,858 rows + still beats the full scan 7.9× on time, because it decodes 9,858 rows instead of 10M. -- Ingress for 3.26M ranges is a 4.8 MB tree and 267,905 µs. +- Ingress for 3.26M ranges is a 4.8 MB tree and 123,162 µs. **New: `ReadPolicy::DEFAULT` misroutes clustered demand.** `plan_read` (`addressed.rs:212-232`) decides on covered rows alone (`covered*1000 >= @@ -224,8 +231,8 @@ range is therefore sent to a full scan: | N | C-default | C-exact | penalty | |---|---:|---:|---:| -| 1M | 37,322 µs | 9,705 µs | 3.8× | -| 10M | 446,557 µs | 91,116 µs | 4.9× | +| 1M | 35,606 µs | 9,310 µs | 3.8× | +| 10M | 428,883 µs | 93,994 µs | 4.6× | The scattered cells, where the fallback is right, have tens of thousands to millions of ranges. Range count, not coverage, separates the two. This is @@ -304,9 +311,9 @@ stage: **IM** in-memory, **LB** Lance-backed, **PI** partial integration. | cell | WHERE evaluation | ClassView resolution | DR routing | mask ingress | Lance read | projection | FOLD | total | |---|---|---|---|---|---|---|---|---| -| clustered 10%, C-exact | 0 (ids given, PI) | 10.0 LB | 6,908 IM (lane seek; DR→Lance BLOCKED_D4) | 2.7 LB | 2,558 LB | inside Lance read; 6.8% of A's bytes LB | 57.7 LB | 9,705 PI | -| scattered 10%, C-exact | 0 (PI) | 16.7 LB | 9,125 IM | 9,499 LB | 55,457 LB | inside Lance read; 80% of A's bytes LB | 100.4 LB | 73,703 PI | -| scattered 10%, A-full | 866 LB (over loaded columns) | 14.3 LB | 0 | 0 | 28,052 LB | inside Lance read; 100% LB | 2,067 LB | 31,932 LB | +| clustered 10%, C-exact | 0 (ids given, PI) | 10.3 LB | 6,951 IM (lane seek; DR→Lance BLOCKED_D4) | 1.6 LB | 2,180 LB | inside Lance read; 6.8% of A's bytes LB | 64.6 LB | 9,310 PI | +| scattered 10%, C-exact | 0 (PI) | 15.7 LB | 9,533 IM | 4,593 LB | 54,872 LB | inside Lance read; 80% of A's bytes LB | 65.9 LB | 72,587 PI | +| scattered 10%, A-full | 790 LB (over loaded columns) | 14.4 LB | 0 | 0 | 25,411 LB | inside Lance read; 100% LB | 2,066 LB | 29,432 LB | Not measured in the same cell, because the DR→Lance edge is BLOCKED_D4: @@ -324,7 +331,8 @@ unmeasured. **Semantic parity: REACHED.** - Every count and EXISTS answer equals the oracle and DuckDB at 1M and 10M. -- Every Lance arm equals the oracle and the full-projection oracle at 1M. +- Every Lance arm equals the oracle and the full-projection oracle at 1M and + 10M. - Three-valued NULL semantics match. - Refusals fire and are paired with controls. @@ -335,8 +343,9 @@ unmeasured. | count | 14.2× (1M, 1 thread) down to 1.96× (10M, 4 threads) | WIN | | EXISTS | 0.43× / 0.16× at 10M | LOSS: no early exit | -On storage, a clustered selective read beats the full scan by 7–16×. A -scattered one loses to the full scan by 2.7–10×, and the existing +On storage, a clustered selective read beats the full scan by 11.5–17.6× at +1M and 17–112× at 10M. A scattered one at 10–50% loses to the full scan by +1.4–11×, and the existing `ReadPolicy` already knows to fall back. **Engineering parity: NOT REACHED on strategy, reached on representation** @@ -383,7 +392,7 @@ owner → PR. 2. `ReadPolicy` cost choice. - Path: `plan_read` → `Read::Full` on scattered 10–50%. - Test: C-default cells. - - Cost: avoids the 2.7–11× scattered-read loss. On clustered demand it + - Cost: avoids the 1.4–11× scattered-read loss. On clustered demand it picks wrongly; see item 7. - Owner: lab #1633. @@ -416,7 +425,7 @@ owner → PR. 7. `ReadPolicy` decides on coverage only. - Path: `plan_read` → also weigh the range count → C-default. - Test: the clustered 10% cells. - - Cost: today 3.8× (1M) and 4.9× (10M) slower than the exact read. + - Cost: today 3.8× (1M) and 4.6× (10M) slower than the exact read. - Owner: lab #1633. Not changed here. **OWNER DECISION** @@ -424,7 +433,7 @@ owner → PR. 8. One version-checked DR → `_rowid` authority, plus bulk ingress. - Path: dt64 `Frame` → ONE witness (DR route version + Lance `ds.version()` + uri) → `RowAddrTreeMap`. - Test: the C arm, with ids from DR instead of given. - - Cost: ingress 2–19,380 µs, measured. + - Cost: ingress 0.4–123,162 µs, measured. - Owner: S-INGRESS / D4. BLOCKED_D4. **PARK** diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json index b00b54150..3e455b431 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json @@ -1,108 +1,108 @@ { - "label": "Lance-backed LAB", "n": 1000000, "reps": 5, "attest_cold_us": 86093.4, + "label": "Lance-backed LAB", "n": 1000000, "reps": 5, "attest_cold_us": 75034.1, "owner_gates": ["S-INGRESS", "D4"], "rows": [ - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":1219.4,"resolve":13.1,"route":0.0,"ingress":0.0,"lance":20836.0,"fold":109.8,"total":22878.1,"cold_total":24831.7},"rows_scanned":1000000,"rows_selected":988,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":1191.1,"resolve":10.3,"route":0.0,"ingress":145.2,"lance":29858.0,"fold":1.2,"total":32027.1,"cold_total":42335.0},"rows_scanned":1000988,"rows_selected":988,"bytes_read":3797280,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":9.2,"route":439.9,"ingress":108.7,"lance":2440.4,"fold":1.1,"total":3104.9,"cold_total":4417.5},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":13.6,"route":308.6,"ingress":126.3,"lance":2578.9,"fold":1.2,"total":3085.5,"cold_total":3001.3},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":1476.8,"resolve":25.8,"route":0.0,"ingress":0.0,"lance":45604.3,"fold":573.3,"total":49097.0,"cold_total":45311.1},"rows_scanned":1000000,"rows_selected":988,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":1370.0,"resolve":16.8,"route":0.0,"ingress":173.2,"lance":34452.1,"fold":3.4,"total":36792.4,"cold_total":37605.0},"rows_scanned":1000988,"rows_selected":988,"bytes_read":7591968,"bytes_vs_A_pct":119.9,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":10.4,"route":657.5,"ingress":142.4,"lance":6204.9,"fold":2.6,"total":7089.5,"cold_total":6685.3},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":17.5,"route":510.5,"ingress":200.2,"lance":6245.5,"fold":3.2,"total":7064.6,"cold_total":7279.1},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1356.7,"resolve":40.2,"route":0.0,"ingress":0.0,"lance":129464.8,"fold":1435.5,"total":135461.8,"cold_total":134363.5},"rows_scanned":1000000,"rows_selected":988,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1189.1,"resolve":24.7,"route":0.0,"ingress":159.3,"lance":51347.6,"fold":11.0,"total":53972.0,"cold_total":58533.1},"rows_scanned":1000988,"rows_selected":988,"bytes_read":22770720,"bytes_vs_A_pct":112.2,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":23.2,"route":644.0,"ingress":156.9,"lance":19219.0,"fold":8.6,"total":20052.9,"cold_total":26225.8},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":23.9,"route":602.9,"ingress":151.3,"lance":20015.9,"fold":12.2,"total":21035.8,"cold_total":21614.9},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":1039.3,"resolve":12.4,"route":0.0,"ingress":0.0,"lance":18366.8,"fold":19.7,"total":20010.1,"cold_total":23065.2},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":852.7,"resolve":7.6,"route":0.0,"ingress":72.7,"lance":21267.6,"fold":1.2,"total":22991.9,"cold_total":24342.8},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2388400,"bytes_vs_A_pct":65.4,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":7.5,"route":92.4,"ingress":1.9,"lance":1175.6,"fold":1.4,"total":1286.0,"cold_total":1419.0},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":8.7,"route":74.5,"ingress":1.6,"lance":1011.3,"fold":1.1,"total":1139.4,"cold_total":1299.0},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":993.9,"resolve":19.0,"route":0.0,"ingress":0.0,"lance":42229.3,"fold":50.5,"total":44513.3,"cold_total":38137.0},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":784.9,"resolve":10.0,"route":0.0,"ingress":61.0,"lance":16662.6,"fold":2.6,"total":17971.7,"cold_total":19391.1},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2396176,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.9,"route":80.1,"ingress":1.4,"lance":1401.4,"fold":2.3,"total":1515.9,"cold_total":1427.5},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":12.5,"route":95.0,"ingress":5.1,"lance":1942.9,"fold":2.5,"total":2081.4,"cold_total":1668.8},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":785.2,"resolve":26.9,"route":0.0,"ingress":0.0,"lance":97252.1,"fold":149.1,"total":101192.6,"cold_total":145065.2},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":718.2,"resolve":17.0,"route":0.0,"ingress":58.7,"lance":15428.2,"fold":8.1,"total":16715.7,"cold_total":19496.6},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2427280,"bytes_vs_A_pct":10.7,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.8,"route":73.2,"ingress":1.8,"lance":1708.0,"fold":7.3,"total":1837.2,"cold_total":2051.8},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.8,"route":69.3,"ingress":1.4,"lance":1569.6,"fold":7.2,"total":1672.7,"cold_total":1624.2},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":1001.0,"resolve":10.3,"route":0.0,"ingress":0.0,"lance":16106.2,"fold":180.1,"total":17752.7,"cold_total":18101.0},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":1030.1,"resolve":11.0,"route":0.0,"ingress":622.4,"lance":24411.7,"fold":2.1,"total":27277.6,"cold_total":27906.1},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":9.9,"route":2118.8,"ingress":1715.2,"lance":4579.7,"fold":1.7,"total":8473.6,"cold_total":9828.7},"rows_scanned":10169,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":10.6,"route":1622.1,"ingress":1594.9,"lance":4787.9,"fold":85.0,"total":8055.6,"cold_total":7117.4},"rows_scanned":17101,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":1030.9,"resolve":16.5,"route":0.0,"ingress":0.0,"lance":29686.9,"fold":715.2,"total":32539.7,"cold_total":35804.6},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":983.8,"resolve":13.2,"route":0.0,"ingress":502.9,"lance":30060.3,"fold":5.1,"total":32284.7,"cold_total":37626.2},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":11.4,"route":2265.1,"ingress":1665.9,"lance":11176.8,"fold":4.8,"total":15797.7,"cold_total":15437.0},"rows_scanned":10169,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":11.3,"route":1970.7,"ingress":1164.8,"lance":9283.7,"fold":93.7,"total":12444.6,"cold_total":13597.0},"rows_scanned":17101,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1148.4,"resolve":27.5,"route":0.0,"ingress":0.0,"lance":87902.9,"fold":3108.3,"total":95406.2,"cold_total":90565.6},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1036.8,"resolve":22.0,"route":0.0,"ingress":560.6,"lance":58747.0,"fold":23.0,"total":60807.9,"cold_total":66825.2},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":20.3,"route":2675.1,"ingress":1183.3,"lance":38871.8,"fold":25.6,"total":42853.4,"cold_total":40893.9},"rows_scanned":10169,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":21.6,"route":2747.8,"ingress":1181.4,"lance":33800.7,"fold":351.7,"total":38261.4,"cold_total":36860.1},"rows_scanned":17101,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":552.5,"resolve":9.7,"route":0.0,"ingress":0.0,"lance":10038.2,"fold":28.2,"total":10635.3,"cold_total":12694.9},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":385.4,"resolve":7.5,"route":0.0,"ingress":200.5,"lance":13023.9,"fold":1.7,"total":13937.2,"cold_total":21159.4},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2400064,"bytes_vs_A_pct":65.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":6.0,"route":706.5,"ingress":1.6,"lance":861.0,"fold":1.7,"total":1584.2,"cold_total":1677.3},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":5.2,"route":688.5,"ingress":1.4,"lance":720.7,"fold":1.5,"total":1425.6,"cold_total":1466.3},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":477.1,"resolve":12.6,"route":0.0,"ingress":0.0,"lance":29573.3,"fold":72.0,"total":30841.0,"cold_total":29446.8},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":514.8,"resolve":9.8,"route":0.0,"ingress":267.7,"lance":15239.1,"fold":5.1,"total":16379.2,"cold_total":20654.6},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2442832,"bytes_vs_A_pct":32.8,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.9,"route":780.8,"ingress":2.6,"lance":1519.3,"fold":5.9,"total":2346.6,"cold_total":2259.5},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":8.1,"route":700.1,"ingress":1.7,"lance":1198.0,"fold":4.6,"total":1924.6,"cold_total":2325.4},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":974.4,"resolve":29.1,"route":0.0,"ingress":0.0,"lance":100600.9,"fold":341.3,"total":106245.2,"cold_total":123512.0},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":549.2,"resolve":17.1,"route":0.0,"ingress":250.8,"lance":15192.2,"fold":20.3,"total":16410.0,"cold_total":23234.3},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2613904,"bytes_vs_A_pct":11.5,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":14.0,"route":721.1,"ingress":2.0,"lance":2000.3,"fold":17.8,"total":2776.7,"cold_total":2864.9},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":14.7,"route":712.3,"ingress":2.0,"lance":2058.9,"fold":18.8,"total":2805.1,"cold_total":2735.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":874.2,"resolve":11.5,"route":0.0,"ingress":0.0,"lance":16863.5,"fold":540.3,"total":18770.0,"cold_total":21012.3},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":940.0,"resolve":11.8,"route":0.0,"ingress":3402.8,"lance":40315.2,"fold":10.5,"total":46551.8,"cold_total":41093.4},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":11.0,"route":9171.2,"ingress":9833.8,"lance":22398.1,"fold":10.3,"total":41407.5,"cold_total":48565.7},"rows_scanned":100164,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":11.8,"route":8798.1,"ingress":0.1,"lance":12234.6,"fold":2261.4,"total":24327.1,"cold_total":25198.1},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":866.3,"resolve":14.3,"route":0.0,"ingress":0.0,"lance":28051.6,"fold":2066.5,"total":31932.2,"cold_total":31664.8},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":1008.4,"resolve":19.4,"route":0.0,"ingress":3509.9,"lance":76683.6,"fold":118.1,"total":82394.8,"cold_total":79623.8},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":16.7,"route":9125.0,"ingress":9499.4,"lance":55457.1,"fold":100.4,"total":73703.1,"cold_total":72791.1},"rows_scanned":100164,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":15.6,"route":8685.8,"ingress":0.1,"lance":26865.1,"fold":4156.1,"total":40787.7,"cold_total":42443.8},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1014.2,"resolve":27.9,"route":0.0,"ingress":0.0,"lance":86592.6,"fold":9362.1,"total":100306.0,"cold_total":98768.6},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1048.0,"resolve":27.0,"route":0.0,"ingress":3656.9,"lance":261354.3,"fold":551.5,"total":267133.4,"cold_total":289051.5},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":25.7,"route":9094.1,"ingress":9340.7,"lance":232319.1,"fold":755.1,"total":252869.9,"cold_total":266162.2},"rows_scanned":100164,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":27.2,"route":9351.2,"ingress":0.1,"lance":94254.5,"fold":11392.6,"total":118873.0,"cold_total":117810.4},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":616.7,"resolve":10.0,"route":0.0,"ingress":0.0,"lance":8798.5,"fold":84.1,"total":9494.6,"cold_total":14825.5},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":392.9,"resolve":8.4,"route":0.0,"ingress":1328.5,"lance":14024.5,"fold":10.0,"total":16231.9,"cold_total":18143.7},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2512816,"bytes_vs_A_pct":68.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":7.2,"route":6847.4,"ingress":2.5,"lance":1692.7,"fold":9.8,"total":8536.0,"cold_total":8167.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":127008,"bytes_vs_A_pct":3.5,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":9.4,"route":7010.6,"ingress":0.1,"lance":13137.7,"fold":1481.6,"total":22998.4,"cold_total":21169.0},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":552.0,"resolve":12.1,"route":0.0,"ingress":0.0,"lance":27221.7,"fold":435.2,"total":28867.8,"cold_total":32324.6},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":487.1,"resolve":11.1,"route":0.0,"ingress":1418.9,"lance":15837.2,"fold":53.1,"total":18422.4,"cold_total":18482.8},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2893840,"bytes_vs_A_pct":38.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":10.0,"route":6908.0,"ingress":2.7,"lance":2558.2,"fold":57.7,"total":9705.4,"cold_total":10648.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":508032,"bytes_vs_A_pct":6.8,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":13.3,"route":6971.5,"ingress":0.1,"lance":26032.7,"fold":2195.6,"total":37321.5,"cold_total":42611.8},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":791.2,"resolve":25.1,"route":0.0,"ingress":0.0,"lance":86544.6,"fold":1715.2,"total":91791.3,"cold_total":94959.2},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":560.8,"resolve":17.5,"route":0.0,"ingress":1358.4,"lance":17572.4,"fold":370.5,"total":20262.6,"cold_total":23697.8},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":4417936,"bytes_vs_A_pct":19.5,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":16.6,"route":6867.5,"ingress":2.7,"lance":5541.1,"fold":311.2,"total":12753.0,"cold_total":13697.2},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2032128,"bytes_vs_A_pct":9.0,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":26.0,"route":7356.1,"ingress":0.1,"lance":93129.2,"fold":3662.1,"total":107773.0,"cold_total":104394.0},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":817.1,"resolve":12.4,"route":0.0,"ingress":0.0,"lance":15548.2,"fold":827.2,"total":17781.6,"cold_total":21762.5},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1017.4,"resolve":17.0,"route":0.0,"ingress":11087.0,"lance":114419.7,"fold":203.2,"total":131388.4,"cold_total":117980.1},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1037.2,"resolve":16.2,"route":0.0,"ingress":9745.0,"lance":107947.8,"fold":160.9,"total":121538.6,"cold_total":129256.8},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":16.0,"route":39325.4,"ingress":19027.7,"lance":98898.3,"fold":222.2,"total":157397.7,"cold_total":155933.9},"rows_scanned":500613,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":15.9,"route":36297.2,"ingress":0.1,"lance":15672.3,"fold":3455.5,"total":56132.7,"cold_total":59943.5},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":891.0,"resolve":17.9,"route":0.0,"ingress":0.0,"lance":25421.0,"fold":3381.8,"total":30361.1,"cold_total":33614.4},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":1118.9,"resolve":23.2,"route":0.0,"ingress":10075.8,"lance":279938.9,"fold":1079.4,"total":294164.7,"cold_total":296849.1},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":1105.5,"resolve":20.4,"route":0.0,"ingress":12424.6,"lance":297918.3,"fold":1011.0,"total":313986.4,"cold_total":318853.2},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.4,"route":39789.7,"ingress":20396.0,"lance":272929.8,"fold":951.2,"total":338903.1,"cold_total":312280.1},"rows_scanned":500613,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.0,"route":36548.9,"ingress":0.1,"lance":28804.7,"fold":6386.1,"total":73828.6,"cold_total":72062.8},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1147.9,"resolve":30.6,"route":0.0,"ingress":0.0,"lance":93009.8,"fold":16332.9,"total":115590.9,"cold_total":104185.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1155.2,"resolve":28.2,"route":0.0,"ingress":9999.2,"lance":942878.4,"fold":3892.0,"total":959523.1,"cold_total":953101.8},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1013.2,"resolve":28.1,"route":0.0,"ingress":8543.4,"lance":897082.5,"fold":3348.8,"total":912040.5,"cold_total":991048.4},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":35.2,"route":44428.9,"ingress":19380.4,"lance":925837.1,"fold":3734.0,"total":991881.9,"cold_total":982818.2},"rows_scanned":500613,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":30.0,"route":37230.5,"ingress":0.1,"lance":94530.6,"fold":17478.8,"total":152697.5,"cold_total":142316.7},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":686.5,"resolve":8.8,"route":0.0,"ingress":0.0,"lance":7299.8,"fold":428.1,"total":8654.1,"cold_total":9919.0},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":430.2,"resolve":9.8,"route":0.0,"ingress":6289.3,"lance":15989.0,"fold":67.0,"total":23235.3,"cold_total":23667.4},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":402.4,"resolve":10.2,"route":0.0,"ingress":6164.2,"lance":15044.0,"fold":75.5,"total":22696.7,"cold_total":23273.7},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":9.8,"route":34982.4,"ingress":7.6,"lance":4012.8,"fold":154.8,"total":41181.7,"cold_total":41358.9},"rows_scanned":500000,"rows_selected":500000,"bytes_read":633744,"bytes_vs_A_pct":17.4,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":12.0,"route":35495.5,"ingress":0.1,"lance":14098.8,"fold":2533.9,"total":52503.2,"cold_total":54110.4},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":617.3,"resolve":15.2,"route":0.0,"ingress":0.0,"lance":24583.4,"fold":2038.4,"total":27722.5,"cold_total":28999.0},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":622.7,"resolve":13.2,"route":0.0,"ingress":6227.5,"lance":20577.2,"fold":506.2,"total":28631.5,"cold_total":29495.1},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":641.0,"resolve":12.6,"route":0.0,"ingress":6154.7,"lance":17948.4,"fold":438.3,"total":25697.5,"cold_total":27052.2},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":12.9,"route":34156.2,"ingress":9.1,"lance":8587.2,"fold":1070.3,"total":43852.7,"cold_total":43435.4},"rows_scanned":500000,"rows_selected":500000,"bytes_read":2534976,"bytes_vs_A_pct":34.0,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":20.0,"route":35715.9,"ingress":0.1,"lance":27422.1,"fold":5519.2,"total":70462.0,"cold_total":66352.6},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":850.3,"resolve":30.3,"route":0.0,"ingress":0.0,"lance":91687.6,"fold":8430.7,"total":103417.0,"cold_total":103413.3},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":755.4,"resolve":27.0,"route":0.0,"ingress":6465.8,"lance":50496.5,"fold":4115.8,"total":63426.1,"cold_total":67691.7},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":679.5,"resolve":21.3,"route":0.0,"ingress":6246.2,"lance":46078.6,"fold":3669.7,"total":57705.7,"cold_total":65543.5},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":22.7,"route":35422.7,"ingress":7.6,"lance":34239.8,"fold":3989.5,"total":73369.1,"cold_total":70244.1},"rows_scanned":500000,"rows_selected":500000,"bytes_read":10139904,"bytes_vs_A_pct":44.7,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":25.9,"route":34519.5,"ingress":0.1,"lance":93231.9,"fold":10920.5,"total":143081.8,"cold_total":134650.4},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":775.5,"resolve":10.1,"route":0.0,"ingress":0.0,"lance":15287.2,"fold":70.6,"total":16602.0,"cold_total":18329.9},"rows_scanned":1000000,"rows_selected":988,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":425.8,"resolve":9.0,"route":0.0,"ingress":82.3,"lance":15348.0,"fold":0.9,"total":16388.7,"cold_total":20954.2},"rows_scanned":1000988,"rows_selected":988,"bytes_read":3797280,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":6.9,"route":331.2,"ingress":49.1,"lance":1631.2,"fold":1.0,"total":2060.2,"cold_total":2342.6},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":7.5,"route":200.9,"ingress":48.3,"lance":1757.4,"fold":1.0,"total":2015.6,"cold_total":2038.9},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":826.8,"resolve":12.0,"route":0.0,"ingress":0.0,"lance":24055.0,"fold":217.5,"total":25877.9,"cold_total":24487.4},"rows_scanned":1000000,"rows_selected":988,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":677.1,"resolve":10.3,"route":0.0,"ingress":95.3,"lance":19736.2,"fold":2.1,"total":21324.2,"cold_total":22525.7},"rows_scanned":1000988,"rows_selected":988,"bytes_read":7591968,"bytes_vs_A_pct":119.9,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":9.9,"route":422.8,"ingress":51.8,"lance":3996.5,"fold":2.5,"total":4506.9,"cold_total":4375.0},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":9.3,"route":262.1,"ingress":49.2,"lance":3941.9,"fold":2.1,"total":4260.7,"cold_total":4106.8},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1078.4,"resolve":24.4,"route":0.0,"ingress":0.0,"lance":85207.8,"fold":1076.2,"total":89987.4,"cold_total":88217.1},"rows_scanned":1000000,"rows_selected":988,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1008.1,"resolve":17.2,"route":0.0,"ingress":116.3,"lance":31616.8,"fold":9.7,"total":33685.0,"cold_total":40532.0},"rows_scanned":1000988,"rows_selected":988,"bytes_read":22770720,"bytes_vs_A_pct":112.2,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":14.8,"route":487.3,"ingress":50.3,"lance":12929.9,"fold":7.0,"total":13499.5,"cold_total":13793.8},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":14.5,"route":269.2,"ingress":47.2,"lance":12141.3,"fold":6.0,"total":12477.2,"cold_total":12987.5},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":720.2,"resolve":8.6,"route":0.0,"ingress":0.0,"lance":10943.8,"fold":18.0,"total":12060.8,"cold_total":13030.3},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":481.3,"resolve":7.7,"route":0.0,"ingress":51.2,"lance":12993.9,"fold":0.8,"total":13979.4,"cold_total":15039.3},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2388400,"bytes_vs_A_pct":65.4,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":4.4,"route":65.5,"ingress":0.5,"lance":620.1,"fold":0.8,"total":692.1,"cold_total":921.1},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":4.0,"route":69.2,"ingress":0.4,"lance":479.4,"fold":0.8,"total":548.7,"cold_total":754.1},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":695.8,"resolve":11.1,"route":0.0,"ingress":0.0,"lance":22848.2,"fold":50.8,"total":24377.7,"cold_total":23587.0},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":379.7,"resolve":9.1,"route":0.0,"ingress":51.2,"lance":12077.0,"fold":2.2,"total":12806.5,"cold_total":14258.1},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2396176,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":6.2,"route":66.1,"ingress":0.4,"lance":819.6,"fold":1.9,"total":900.2,"cold_total":1100.8},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.3,"route":68.6,"ingress":0.7,"lance":936.6,"fold":2.4,"total":1013.5,"cold_total":948.9},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":767.5,"resolve":24.3,"route":0.0,"ingress":0.0,"lance":86771.4,"fold":204.2,"total":90432.6,"cold_total":137650.0},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":557.4,"resolve":15.4,"route":0.0,"ingress":56.3,"lance":14481.3,"fold":7.7,"total":15407.4,"cold_total":18149.4},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2427280,"bytes_vs_A_pct":10.7,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.8,"route":70.5,"ingress":0.8,"lance":1631.3,"fold":7.2,"total":1732.1,"cold_total":1878.4},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.9,"route":67.1,"ingress":0.7,"lance":1565.9,"fold":7.0,"total":1669.0,"cold_total":1772.1},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":703.9,"resolve":10.3,"route":0.0,"ingress":0.0,"lance":13626.2,"fold":132.0,"total":15225.8,"cold_total":17714.0},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":890.5,"resolve":9.1,"route":0.0,"ingress":475.0,"lance":20282.0,"fold":1.6,"total":22245.2,"cold_total":22045.6},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":8.2,"route":1327.8,"ingress":588.9,"lance":3850.1,"fold":1.7,"total":5850.1,"cold_total":6840.1},"rows_scanned":10169,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":8.5,"route":1239.2,"ingress":572.7,"lance":3792.1,"fold":56.5,"total":5689.2,"cold_total":5696.2},"rows_scanned":17101,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":827.5,"resolve":12.7,"route":0.0,"ingress":0.0,"lance":23314.6,"fold":597.6,"total":25351.0,"cold_total":30758.9},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":787.1,"resolve":11.2,"route":0.0,"ingress":470.3,"lance":24529.4,"fold":4.7,"total":26129.3,"cold_total":29798.3},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":9.7,"route":2194.2,"ingress":586.1,"lance":9735.9,"fold":4.8,"total":12723.7,"cold_total":12955.7},"rows_scanned":10169,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":9.9,"route":1747.5,"ingress":537.5,"lance":8738.6,"fold":85.7,"total":11092.3,"cold_total":11858.0},"rows_scanned":17101,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1059.6,"resolve":26.0,"route":0.0,"ingress":0.0,"lance":89234.3,"fold":2908.8,"total":96456.6,"cold_total":88371.6},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1065.7,"resolve":25.7,"route":0.0,"ingress":638.8,"lance":57917.9,"fold":27.3,"total":60277.8,"cold_total":60415.3},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":19.6,"route":2520.2,"ingress":594.1,"lance":35338.7,"fold":20.9,"total":38425.8,"cold_total":41454.2},"rows_scanned":10169,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":17.7,"route":1990.8,"ingress":566.9,"lance":29934.9,"fold":209.8,"total":32739.9,"cold_total":33573.5},"rows_scanned":17101,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":637.1,"resolve":8.8,"route":0.0,"ingress":0.0,"lance":11102.5,"fold":26.1,"total":12249.2,"cold_total":12711.1},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":360.5,"resolve":7.0,"route":0.0,"ingress":219.4,"lance":12108.8,"fold":1.5,"total":13056.6,"cold_total":15688.5},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2400064,"bytes_vs_A_pct":65.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":5.4,"route":662.2,"ingress":0.6,"lance":760.6,"fold":1.4,"total":1434.2,"cold_total":1760.9},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":4.5,"route":667.2,"ingress":0.5,"lance":667.4,"fold":1.4,"total":1348.3,"cold_total":1413.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":413.7,"resolve":12.0,"route":0.0,"ingress":0.0,"lance":23055.1,"fold":88.0,"total":24297.0,"cold_total":25445.7},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":373.1,"resolve":9.4,"route":0.0,"ingress":190.5,"lance":12615.8,"fold":4.6,"total":13615.5,"cold_total":14440.8},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2442832,"bytes_vs_A_pct":32.8,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":8.4,"route":714.1,"ingress":1.0,"lance":1163.8,"fold":4.7,"total":1857.7,"cold_total":1674.0},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":8.4,"route":727.5,"ingress":0.9,"lance":1083.3,"fold":4.6,"total":1796.4,"cold_total":1877.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":792.5,"resolve":24.4,"route":0.0,"ingress":0.0,"lance":85780.0,"fold":332.8,"total":90868.7,"cold_total":96342.5},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":504.9,"resolve":18.0,"route":0.0,"ingress":201.0,"lance":15453.7,"fold":23.3,"total":16656.8,"cold_total":19032.2},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2613904,"bytes_vs_A_pct":11.5,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":18.6,"route":717.6,"ingress":0.9,"lance":2092.7,"fold":18.0,"total":2847.7,"cold_total":3340.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":14.1,"route":703.5,"ingress":1.0,"lance":1897.9,"fold":20.3,"total":2650.0,"cold_total":2758.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":895.3,"resolve":10.8,"route":0.0,"ingress":0.0,"lance":14828.3,"fold":503.6,"total":16723.9,"cold_total":22202.1},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":893.6,"resolve":11.0,"route":0.0,"ingress":3350.0,"lance":35511.6,"fold":9.8,"total":40572.6,"cold_total":42846.9},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":9.5,"route":8955.7,"ingress":4503.0,"lance":21178.4,"fold":10.2,"total":34767.1,"cold_total":33798.0},"rows_scanned":100164,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":11.8,"route":8749.0,"ingress":0.1,"lance":14096.0,"fold":2111.5,"total":25518.9,"cold_total":26466.3},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":789.5,"resolve":14.4,"route":0.0,"ingress":0.0,"lance":25410.7,"fold":2066.2,"total":29431.7,"cold_total":29110.0},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":948.8,"resolve":16.2,"route":0.0,"ingress":3201.2,"lance":67939.2,"fold":75.8,"total":72777.7,"cold_total":85183.6},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":15.7,"route":9532.8,"ingress":4592.7,"lance":54872.0,"fold":65.9,"total":72586.5,"cold_total":72444.7},"rows_scanned":100164,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":16.4,"route":8998.2,"ingress":0.1,"lance":28280.6,"fold":4415.2,"total":42848.3,"cold_total":42226.5},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1036.0,"resolve":28.9,"route":0.0,"ingress":0.0,"lance":88912.5,"fold":9360.9,"total":103204.6,"cold_total":98535.2},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1091.6,"resolve":27.4,"route":0.0,"ingress":3618.8,"lance":255226.0,"fold":561.1,"total":261225.7,"cold_total":274799.5},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":26.8,"route":9135.6,"ingress":4572.4,"lance":222967.6,"fold":576.8,"total":238325.2,"cold_total":233856.1},"rows_scanned":100164,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":30.8,"route":9148.8,"ingress":0.1,"lance":97943.6,"fold":12481.2,"total":125376.8,"cold_total":119291.8},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":546.4,"resolve":9.2,"route":0.0,"ingress":0.0,"lance":9413.4,"fold":100.0,"total":10120.2,"cold_total":12557.3},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":414.0,"resolve":7.6,"route":0.0,"ingress":1231.3,"lance":11370.8,"fold":9.5,"total":13508.8,"cold_total":16811.2},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2512816,"bytes_vs_A_pct":68.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":6.5,"route":6996.5,"ingress":1.8,"lance":1547.3,"fold":10.0,"total":8609.0,"cold_total":9072.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":127008,"bytes_vs_A_pct":3.5,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":9.2,"route":6741.1,"ingress":0.1,"lance":11010.7,"fold":1320.5,"total":19462.5,"cold_total":19421.2},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":618.6,"resolve":12.4,"route":0.0,"ingress":0.0,"lance":25138.7,"fold":422.7,"total":27025.7,"cold_total":28441.4},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":455.6,"resolve":11.4,"route":0.0,"ingress":1344.9,"lance":14674.0,"fold":57.7,"total":16953.0,"cold_total":17754.6},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2893840,"bytes_vs_A_pct":38.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":10.3,"route":6951.3,"ingress":1.6,"lance":2179.6,"fold":64.6,"total":9310.3,"cold_total":9858.2},"rows_scanned":100000,"rows_selected":100000,"bytes_read":508032,"bytes_vs_A_pct":6.8,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":12.7,"route":6909.4,"ingress":0.1,"lance":25566.8,"fold":2138.2,"total":35605.7,"cold_total":36063.5},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":780.5,"resolve":26.0,"route":0.0,"ingress":0.0,"lance":95865.0,"fold":1887.0,"total":102766.2,"cold_total":90885.9},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":543.8,"resolve":18.5,"route":0.0,"ingress":1331.9,"lance":17479.1,"fold":344.5,"total":20164.0,"cold_total":23682.2},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":4417936,"bytes_vs_A_pct":19.5,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":17.2,"route":6906.1,"ingress":1.5,"lance":5080.9,"fold":318.9,"total":12649.9,"cold_total":12776.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2032128,"bytes_vs_A_pct":9.0,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":26.9,"route":7117.3,"ingress":0.1,"lance":89599.6,"fold":3680.5,"total":103492.4,"cold_total":111295.5},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":981.0,"resolve":13.3,"route":0.0,"ingress":0.0,"lance":13632.3,"fold":848.2,"total":15758.4,"cold_total":18563.0},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1030.0,"resolve":18.2,"route":0.0,"ingress":9789.0,"lance":102369.1,"fold":154.2,"total":116563.5,"cold_total":114075.4},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1004.1,"resolve":16.3,"route":0.0,"ingress":9520.4,"lance":104413.7,"fold":219.7,"total":116194.1,"cold_total":132559.6},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":16.2,"route":38664.3,"ingress":9390.8,"lance":92917.2,"fold":160.9,"total":141071.3,"cold_total":141808.7},"rows_scanned":500613,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":15.3,"route":36154.5,"ingress":0.1,"lance":14483.0,"fold":2944.8,"total":54430.4,"cold_total":54472.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":828.1,"resolve":15.4,"route":0.0,"ingress":0.0,"lance":27253.5,"fold":3093.6,"total":31747.1,"cold_total":29476.2},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":970.5,"resolve":23.8,"route":0.0,"ingress":9462.3,"lance":252497.3,"fold":865.0,"total":265124.9,"cold_total":275137.8},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":993.6,"resolve":20.5,"route":0.0,"ingress":9963.5,"lance":256271.4,"fold":878.8,"total":269758.3,"cold_total":289695.7},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.4,"route":38314.6,"ingress":9476.7,"lance":248910.2,"fold":916.6,"total":298587.8,"cold_total":302827.0},"rows_scanned":500613,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.3,"route":36917.9,"ingress":0.1,"lance":33232.7,"fold":6402.1,"total":78087.6,"cold_total":79421.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1017.8,"resolve":30.6,"route":0.0,"ingress":0.0,"lance":83342.9,"fold":14429.0,"total":103228.8,"cold_total":102876.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1011.6,"resolve":28.4,"route":0.0,"ingress":9396.5,"lance":903199.7,"fold":3419.7,"total":919861.2,"cold_total":866934.1},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1015.8,"resolve":28.9,"route":0.0,"ingress":10729.4,"lance":893039.0,"fold":3463.9,"total":911573.0,"cold_total":893647.0},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":29.2,"route":43569.4,"ingress":10888.5,"lance":945372.6,"fold":3976.3,"total":1005410.6,"cold_total":961106.3},"rows_scanned":500613,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":29.4,"route":37291.1,"ingress":0.1,"lance":89781.2,"fold":18144.1,"total":151386.0,"cold_total":170235.8},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":418.8,"resolve":9.8,"route":0.0,"ingress":0.0,"lance":8226.5,"fold":400.1,"total":9082.7,"cold_total":13241.3},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":403.1,"resolve":9.5,"route":0.0,"ingress":5991.0,"lance":14257.1,"fold":63.3,"total":20974.1,"cold_total":24747.8},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":384.0,"resolve":9.8,"route":0.0,"ingress":5990.7,"lance":13603.1,"fold":70.7,"total":20469.7,"cold_total":20034.7},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":8.5,"route":34230.8,"ingress":3.2,"lance":3589.2,"fold":95.7,"total":37936.5,"cold_total":38125.8},"rows_scanned":500000,"rows_selected":500000,"bytes_read":633744,"bytes_vs_A_pct":17.4,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":10.5,"route":33966.7,"ingress":0.1,"lance":12953.9,"fold":2419.1,"total":50044.2,"cold_total":49174.6},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":427.6,"resolve":12.3,"route":0.0,"ingress":0.0,"lance":18199.2,"fold":1804.5,"total":20488.0,"cold_total":22011.9},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":479.7,"resolve":14.9,"route":0.0,"ingress":6425.3,"lance":20565.7,"fold":609.7,"total":28928.7,"cold_total":31394.1},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":510.0,"resolve":11.7,"route":0.0,"ingress":6462.4,"lance":18562.9,"fold":418.8,"total":26284.2,"cold_total":32369.5},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":12.2,"route":34925.8,"ingress":5.4,"lance":7436.1,"fold":849.5,"total":43227.9,"cold_total":48904.4},"rows_scanned":500000,"rows_selected":500000,"bytes_read":2534976,"bytes_vs_A_pct":34.0,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":15.9,"route":34929.9,"ingress":0.1,"lance":23135.7,"fold":4226.4,"total":62838.0,"cold_total":63063.0},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":763.5,"resolve":27.3,"route":0.0,"ingress":0.0,"lance":83641.1,"fold":8377.5,"total":96273.2,"cold_total":96701.7},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":742.5,"resolve":22.5,"route":0.0,"ingress":6497.6,"lance":50544.5,"fold":3680.0,"total":64639.2,"cold_total":63670.8},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":742.1,"resolve":22.4,"route":0.0,"ingress":6979.8,"lance":45244.4,"fold":3704.6,"total":59360.6,"cold_total":57815.5},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":21.5,"route":34802.2,"ingress":4.7,"lance":36990.6,"fold":4249.5,"total":77508.9,"cold_total":74474.1},"rows_scanned":500000,"rows_selected":500000,"bytes_read":10139904,"bytes_vs_A_pct":44.7,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":27.0,"route":34717.0,"ingress":0.1,"lance":89344.9,"fold":10766.2,"total":137978.8,"cold_total":132391.2},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} ] } diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log index 3b8ef24f8..661be286d 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log @@ -28,135 +28,135 @@ BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / [ok ] other dataset refused [ok ] forged (newer-version) witness refused by seek_from -# attest (cold, once per version): 86093.4 us [COLD/IO, reported] +# attest (cold, once per version): 75034.1 us [COLD/IO, reported] == Measurements (us, median of 5 warm runs; cold = first run) == -- scattered target 0.1% actual 0.099% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1219.4 resolve 13.1 route 0.0 ingress 0.0 lance 20836.0 fold 109.8 total 22878.1 cold 24831.7 | scanned 1000000 sel 988 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1191.1 resolve 10.3 route 0.0 ingress 145.2 lance 29858.0 fold 1.2 total 32027.1 cold 42335.0 | scanned 1000988 sel 988 bytes 3797280 (100.0% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 9.2 route 439.9 ingress 108.7 lance 2440.4 fold 1.1 total 3104.9 cold 4417.5 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 13.6 route 308.6 ingress 126.3 lance 2578.9 fold 1.2 total 3085.5 cold 3001.3 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 775.5 resolve 10.1 route 0.0 ingress 0.0 lance 15287.2 fold 70.6 total 16602.0 cold 18329.9 | scanned 1000000 sel 988 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 425.8 resolve 9.0 route 0.0 ingress 82.3 lance 15348.0 fold 0.9 total 16388.7 cold 20954.2 | scanned 1000988 sel 988 bytes 3797280 (100.0% of A) row_addr_mask 2124B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 6.9 route 331.2 ingress 49.1 lance 1631.2 fold 1.0 total 2060.2 cold 2342.6 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 7.5 route 200.9 ingress 48.3 lance 1757.4 fold 1.0 total 2015.6 cold 2038.9 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- scattered target 0.1% actual 0.099% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1476.8 resolve 25.8 route 0.0 ingress 0.0 lance 45604.3 fold 573.3 total 49097.0 cold 45311.1 | scanned 1000000 sel 988 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1370.0 resolve 16.8 route 0.0 ingress 173.2 lance 34452.1 fold 3.4 total 36792.4 cold 37605.0 | scanned 1000988 sel 988 bytes 7591968 (119.9% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 10.4 route 657.5 ingress 142.4 lance 6204.9 fold 2.6 total 7089.5 cold 6685.3 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 17.5 route 510.5 ingress 200.2 lance 6245.5 fold 3.2 total 7064.6 cold 7279.1 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 826.8 resolve 12.0 route 0.0 ingress 0.0 lance 24055.0 fold 217.5 total 25877.9 cold 24487.4 | scanned 1000000 sel 988 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 677.1 resolve 10.3 route 0.0 ingress 95.3 lance 19736.2 fold 2.1 total 21324.2 cold 22525.7 | scanned 1000988 sel 988 bytes 7591968 (119.9% of A) row_addr_mask 2124B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 9.9 route 422.8 ingress 51.8 lance 3996.5 fold 2.5 total 4506.9 cold 4375.0 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 9.3 route 262.1 ingress 49.2 lance 3941.9 fold 2.1 total 4260.7 cold 4106.8 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- scattered target 0.1% actual 0.099% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1356.7 resolve 40.2 route 0.0 ingress 0.0 lance 129464.8 fold 1435.5 total 135461.8 cold 134363.5 | scanned 1000000 sel 988 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1189.1 resolve 24.7 route 0.0 ingress 159.3 lance 51347.6 fold 11.0 total 53972.0 cold 58533.1 | scanned 1000988 sel 988 bytes 22770720 (112.2% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 23.2 route 644.0 ingress 156.9 lance 19219.0 fold 8.6 total 20052.9 cold 26225.8 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 23.9 route 602.9 ingress 151.3 lance 20015.9 fold 12.2 total 21035.8 cold 21614.9 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 1078.4 resolve 24.4 route 0.0 ingress 0.0 lance 85207.8 fold 1076.2 total 89987.4 cold 88217.1 | scanned 1000000 sel 988 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1008.1 resolve 17.2 route 0.0 ingress 116.3 lance 31616.8 fold 9.7 total 33685.0 cold 40532.0 | scanned 1000988 sel 988 bytes 22770720 (112.2% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 14.8 route 487.3 ingress 50.3 lance 12929.9 fold 7.0 total 13499.5 cold 13793.8 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 14.5 route 269.2 ingress 47.2 lance 12141.3 fold 6.0 total 12477.2 cold 12987.5 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- clustered target 0.1% actual 0.100% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1039.3 resolve 12.4 route 0.0 ingress 0.0 lance 18366.8 fold 19.7 total 20010.1 cold 23065.2 | scanned 1000000 sel 1000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 852.7 resolve 7.6 route 0.0 ingress 72.7 lance 21267.6 fold 1.2 total 22991.9 cold 24342.8 | scanned 1001000 sel 1000 bytes 2388400 ( 65.4% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 7.5 route 92.4 ingress 1.9 lance 1175.6 fold 1.4 total 1286.0 cold 1419.0 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 8.7 route 74.5 ingress 1.6 lance 1011.3 fold 1.1 total 1139.4 cold 1299.0 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 720.2 resolve 8.6 route 0.0 ingress 0.0 lance 10943.8 fold 18.0 total 12060.8 cold 13030.3 | scanned 1000000 sel 1000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 481.3 resolve 7.7 route 0.0 ingress 51.2 lance 12993.9 fold 0.8 total 13979.4 cold 15039.3 | scanned 1001000 sel 1000 bytes 2388400 ( 65.4% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 4.4 route 65.5 ingress 0.5 lance 620.1 fold 0.8 total 692.1 cold 921.1 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 4.0 route 69.2 ingress 0.4 lance 479.4 fold 0.8 total 548.7 cold 754.1 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- clustered target 0.1% actual 0.100% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 993.9 resolve 19.0 route 0.0 ingress 0.0 lance 42229.3 fold 50.5 total 44513.3 cold 38137.0 | scanned 1000000 sel 1000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 784.9 resolve 10.0 route 0.0 ingress 61.0 lance 16662.6 fold 2.6 total 17971.7 cold 19391.1 | scanned 1001000 sel 1000 bytes 2396176 ( 32.2% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 7.9 route 80.1 ingress 1.4 lance 1401.4 fold 2.3 total 1515.9 cold 1427.5 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 12.5 route 95.0 ingress 5.1 lance 1942.9 fold 2.5 total 2081.4 cold 1668.8 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 695.8 resolve 11.1 route 0.0 ingress 0.0 lance 22848.2 fold 50.8 total 24377.7 cold 23587.0 | scanned 1000000 sel 1000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 379.7 resolve 9.1 route 0.0 ingress 51.2 lance 12077.0 fold 2.2 total 12806.5 cold 14258.1 | scanned 1001000 sel 1000 bytes 2396176 ( 32.2% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 6.2 route 66.1 ingress 0.4 lance 819.6 fold 1.9 total 900.2 cold 1100.8 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 7.3 route 68.6 ingress 0.7 lance 936.6 fold 2.4 total 1013.5 cold 948.9 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- clustered target 0.1% actual 0.100% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 785.2 resolve 26.9 route 0.0 ingress 0.0 lance 97252.1 fold 149.1 total 101192.6 cold 145065.2 | scanned 1000000 sel 1000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 718.2 resolve 17.0 route 0.0 ingress 58.7 lance 15428.2 fold 8.1 total 16715.7 cold 19496.6 | scanned 1001000 sel 1000 bytes 2427280 ( 10.7% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 13.8 route 73.2 ingress 1.8 lance 1708.0 fold 7.3 total 1837.2 cold 2051.8 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 13.8 route 69.3 ingress 1.4 lance 1569.6 fold 7.2 total 1672.7 cold 1624.2 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 767.5 resolve 24.3 route 0.0 ingress 0.0 lance 86771.4 fold 204.2 total 90432.6 cold 137650.0 | scanned 1000000 sel 1000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 557.4 resolve 15.4 route 0.0 ingress 56.3 lance 14481.3 fold 7.7 total 15407.4 cold 18149.4 | scanned 1001000 sel 1000 bytes 2427280 ( 10.7% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 13.8 route 70.5 ingress 0.8 lance 1631.3 fold 7.2 total 1732.1 cold 1878.4 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 13.9 route 67.1 ingress 0.7 lance 1565.9 fold 7.0 total 1669.0 cold 1772.1 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- scattered target 1.0% actual 1.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1001.0 resolve 10.3 route 0.0 ingress 0.0 lance 16106.2 fold 180.1 total 17752.7 cold 18101.0 | scanned 1000000 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1030.1 resolve 11.0 route 0.0 ingress 622.4 lance 24411.7 fold 2.1 total 27277.6 cold 27906.1 | scanned 1010169 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 20486B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 9.9 route 2118.8 ingress 1715.2 lance 4579.7 fold 1.7 total 8473.6 cold 9828.7 | scanned 10169 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 10.6 route 1622.1 ingress 1594.9 lance 4787.9 fold 85.0 total 8055.6 cold 7117.4 | scanned 17101 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 703.9 resolve 10.3 route 0.0 ingress 0.0 lance 13626.2 fold 132.0 total 15225.8 cold 17714.0 | scanned 1000000 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 890.5 resolve 9.1 route 0.0 ingress 475.0 lance 20282.0 fold 1.6 total 22245.2 cold 22045.6 | scanned 1010169 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 20486B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 8.2 route 1327.8 ingress 588.9 lance 3850.1 fold 1.7 total 5850.1 cold 6840.1 | scanned 10169 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 8.5 route 1239.2 ingress 572.7 lance 3792.1 fold 56.5 total 5689.2 cold 5696.2 | scanned 17101 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- scattered target 1.0% actual 1.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1030.9 resolve 16.5 route 0.0 ingress 0.0 lance 29686.9 fold 715.2 total 32539.7 cold 35804.6 | scanned 1000000 sel 10169 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 983.8 resolve 13.2 route 0.0 ingress 502.9 lance 30060.3 fold 5.1 total 32284.7 cold 37626.2 | scanned 1010169 sel 10169 bytes 7597152 (120.0% of A) row_addr_mask 20486B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 11.4 route 2265.1 ingress 1665.9 lance 11176.8 fold 4.8 total 15797.7 cold 15437.0 | scanned 10169 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 11.3 route 1970.7 ingress 1164.8 lance 9283.7 fold 93.7 total 12444.6 cold 13597.0 | scanned 17101 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 827.5 resolve 12.7 route 0.0 ingress 0.0 lance 23314.6 fold 597.6 total 25351.0 cold 30758.9 | scanned 1000000 sel 10169 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 787.1 resolve 11.2 route 0.0 ingress 470.3 lance 24529.4 fold 4.7 total 26129.3 cold 29798.3 | scanned 1010169 sel 10169 bytes 7597152 (120.0% of A) row_addr_mask 20486B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 9.7 route 2194.2 ingress 586.1 lance 9735.9 fold 4.8 total 12723.7 cold 12955.7 | scanned 10169 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 9.9 route 1747.5 ingress 537.5 lance 8738.6 fold 85.7 total 11092.3 cold 11858.0 | scanned 17101 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- scattered target 1.0% actual 1.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1148.4 resolve 27.5 route 0.0 ingress 0.0 lance 87902.9 fold 3108.3 total 95406.2 cold 90565.6 | scanned 1000000 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1036.8 resolve 22.0 route 0.0 ingress 560.6 lance 58747.0 fold 23.0 total 60807.9 cold 66825.2 | scanned 1010169 sel 10169 bytes 22819568 (112.5% of A) row_addr_mask 20486B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 20.3 route 2675.1 ingress 1183.3 lance 38871.8 fold 25.6 total 42853.4 cold 40893.9 | scanned 10169 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 21.6 route 2747.8 ingress 1181.4 lance 33800.7 fold 351.7 total 38261.4 cold 36860.1 | scanned 17101 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 1059.6 resolve 26.0 route 0.0 ingress 0.0 lance 89234.3 fold 2908.8 total 96456.6 cold 88371.6 | scanned 1000000 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1065.7 resolve 25.7 route 0.0 ingress 638.8 lance 57917.9 fold 27.3 total 60277.8 cold 60415.3 | scanned 1010169 sel 10169 bytes 22819568 (112.5% of A) row_addr_mask 20486B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 19.6 route 2520.2 ingress 594.1 lance 35338.7 fold 20.9 total 38425.8 cold 41454.2 | scanned 10169 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 17.7 route 1990.8 ingress 566.9 lance 29934.9 fold 209.8 total 32739.9 cold 33573.5 | scanned 17101 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- clustered target 1.0% actual 1.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 552.5 resolve 9.7 route 0.0 ingress 0.0 lance 10038.2 fold 28.2 total 10635.3 cold 12694.9 | scanned 1000000 sel 10000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 385.4 resolve 7.5 route 0.0 ingress 200.5 lance 13023.9 fold 1.7 total 13937.2 cold 21159.4 | scanned 1010000 sel 10000 bytes 2400064 ( 65.7% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 6.0 route 706.5 ingress 1.6 lance 861.0 fold 1.7 total 1584.2 cold 1677.3 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 5.2 route 688.5 ingress 1.4 lance 720.7 fold 1.5 total 1425.6 cold 1466.3 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 637.1 resolve 8.8 route 0.0 ingress 0.0 lance 11102.5 fold 26.1 total 12249.2 cold 12711.1 | scanned 1000000 sel 10000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 360.5 resolve 7.0 route 0.0 ingress 219.4 lance 12108.8 fold 1.5 total 13056.6 cold 15688.5 | scanned 1010000 sel 10000 bytes 2400064 ( 65.7% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 5.4 route 662.2 ingress 0.6 lance 760.6 fold 1.4 total 1434.2 cold 1760.9 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 4.5 route 667.2 ingress 0.5 lance 667.4 fold 1.4 total 1348.3 cold 1413.2 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- clustered target 1.0% actual 1.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 477.1 resolve 12.6 route 0.0 ingress 0.0 lance 29573.3 fold 72.0 total 30841.0 cold 29446.8 | scanned 1000000 sel 10000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 514.8 resolve 9.8 route 0.0 ingress 267.7 lance 15239.1 fold 5.1 total 16379.2 cold 20654.6 | scanned 1010000 sel 10000 bytes 2442832 ( 32.8% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 10.9 route 780.8 ingress 2.6 lance 1519.3 fold 5.9 total 2346.6 cold 2259.5 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 8.1 route 700.1 ingress 1.7 lance 1198.0 fold 4.6 total 1924.6 cold 2325.4 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 413.7 resolve 12.0 route 0.0 ingress 0.0 lance 23055.1 fold 88.0 total 24297.0 cold 25445.7 | scanned 1000000 sel 10000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 373.1 resolve 9.4 route 0.0 ingress 190.5 lance 12615.8 fold 4.6 total 13615.5 cold 14440.8 | scanned 1010000 sel 10000 bytes 2442832 ( 32.8% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 8.4 route 714.1 ingress 1.0 lance 1163.8 fold 4.7 total 1857.7 cold 1674.0 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 8.4 route 727.5 ingress 0.9 lance 1083.3 fold 4.6 total 1796.4 cold 1877.7 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- clustered target 1.0% actual 1.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 974.4 resolve 29.1 route 0.0 ingress 0.0 lance 100600.9 fold 341.3 total 106245.2 cold 123512.0 | scanned 1000000 sel 10000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 549.2 resolve 17.1 route 0.0 ingress 250.8 lance 15192.2 fold 20.3 total 16410.0 cold 23234.3 | scanned 1010000 sel 10000 bytes 2613904 ( 11.5% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 14.0 route 721.1 ingress 2.0 lance 2000.3 fold 17.8 total 2776.7 cold 2864.9 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 14.7 route 712.3 ingress 2.0 lance 2058.9 fold 18.8 total 2805.1 cold 2735.7 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 792.5 resolve 24.4 route 0.0 ingress 0.0 lance 85780.0 fold 332.8 total 90868.7 cold 96342.5 | scanned 1000000 sel 10000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 504.9 resolve 18.0 route 0.0 ingress 201.0 lance 15453.7 fold 23.3 total 16656.8 cold 19032.2 | scanned 1010000 sel 10000 bytes 2613904 ( 11.5% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 18.6 route 717.6 ingress 0.9 lance 2092.7 fold 18.0 total 2847.7 cold 3340.2 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 14.1 route 703.5 ingress 1.0 lance 1897.9 fold 20.3 total 2650.0 cold 2758.7 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- scattered target 10.0% actual 10.016% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) - A-full Lance-backed | where 874.2 resolve 11.5 route 0.0 ingress 0.0 lance 16863.5 fold 540.3 total 18770.0 cold 21012.3 | scanned 1000000 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 940.0 resolve 11.8 route 0.0 ingress 3402.8 lance 40315.2 fold 10.5 total 46551.8 cold 41093.4 | scanned 1100164 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 126420B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 11.0 route 9171.2 ingress 9833.8 lance 22398.1 fold 10.3 total 41407.5 cold 48565.7 | scanned 100164 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 11.8 route 8798.1 ingress 0.1 lance 12234.6 fold 2261.4 total 24327.1 cold 25198.1 | scanned 1000000 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 895.3 resolve 10.8 route 0.0 ingress 0.0 lance 14828.3 fold 503.6 total 16723.9 cold 22202.1 | scanned 1000000 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 893.6 resolve 11.0 route 0.0 ingress 3350.0 lance 35511.6 fold 9.8 total 40572.6 cold 42846.9 | scanned 1100164 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 126420B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 9.5 route 8955.7 ingress 4503.0 lance 21178.4 fold 10.2 total 34767.1 cold 33798.0 | scanned 100164 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 11.8 route 8749.0 ingress 0.1 lance 14096.0 fold 2111.5 total 25518.9 cold 26466.3 | scanned 1000000 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 10.0% actual 10.016% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) - A-full Lance-backed | where 866.3 resolve 14.3 route 0.0 ingress 0.0 lance 28051.6 fold 2066.5 total 31932.2 cold 31664.8 | scanned 1000000 sel 100164 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1008.4 resolve 19.4 route 0.0 ingress 3509.9 lance 76683.6 fold 118.1 total 82394.8 cold 79623.8 | scanned 1100164 sel 100164 bytes 7597152 (120.0% of A) row_addr_mask 126420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 16.7 route 9125.0 ingress 9499.4 lance 55457.1 fold 100.4 total 73703.1 cold 72791.1 | scanned 100164 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 15.6 route 8685.8 ingress 0.1 lance 26865.1 fold 4156.1 total 40787.7 cold 42443.8 | scanned 1000000 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 789.5 resolve 14.4 route 0.0 ingress 0.0 lance 25410.7 fold 2066.2 total 29431.7 cold 29110.0 | scanned 1000000 sel 100164 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 948.8 resolve 16.2 route 0.0 ingress 3201.2 lance 67939.2 fold 75.8 total 72777.7 cold 85183.6 | scanned 1100164 sel 100164 bytes 7597152 (120.0% of A) row_addr_mask 126420B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 15.7 route 9532.8 ingress 4592.7 lance 54872.0 fold 65.9 total 72586.5 cold 72444.7 | scanned 100164 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 16.4 route 8998.2 ingress 0.1 lance 28280.6 fold 4415.2 total 42848.3 cold 42226.5 | scanned 1000000 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 10.0% actual 10.016% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1014.2 resolve 27.9 route 0.0 ingress 0.0 lance 86592.6 fold 9362.1 total 100306.0 cold 98768.6 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1048.0 resolve 27.0 route 0.0 ingress 3656.9 lance 261354.3 fold 551.5 total 267133.4 cold 289051.5 | scanned 1100164 sel 100164 bytes 22819568 (112.5% of A) row_addr_mask 126420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 25.7 route 9094.1 ingress 9340.7 lance 232319.1 fold 755.1 total 252869.9 cold 266162.2 | scanned 100164 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 27.2 route 9351.2 ingress 0.1 lance 94254.5 fold 11392.6 total 118873.0 cold 117810.4 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 1036.0 resolve 28.9 route 0.0 ingress 0.0 lance 88912.5 fold 9360.9 total 103204.6 cold 98535.2 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1091.6 resolve 27.4 route 0.0 ingress 3618.8 lance 255226.0 fold 561.1 total 261225.7 cold 274799.5 | scanned 1100164 sel 100164 bytes 22819568 (112.5% of A) row_addr_mask 126420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 26.8 route 9135.6 ingress 4572.4 lance 222967.6 fold 576.8 total 238325.2 cold 233856.1 | scanned 100164 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 30.8 route 9148.8 ingress 0.1 lance 97943.6 fold 12481.2 total 125376.8 cold 119291.8 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 10.0% actual 10.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 616.7 resolve 10.0 route 0.0 ingress 0.0 lance 8798.5 fold 84.1 total 9494.6 cold 14825.5 | scanned 1000000 sel 100000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 392.9 resolve 8.4 route 0.0 ingress 1328.5 lance 14024.5 fold 10.0 total 16231.9 cold 18143.7 | scanned 1100000 sel 100000 bytes 2512816 ( 68.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 7.2 route 6847.4 ingress 2.5 lance 1692.7 fold 9.8 total 8536.0 cold 8167.4 | scanned 100000 sel 100000 bytes 127008 ( 3.5% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 9.4 route 7010.6 ingress 0.1 lance 13137.7 fold 1481.6 total 22998.4 cold 21169.0 | scanned 1000000 sel 100000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 546.4 resolve 9.2 route 0.0 ingress 0.0 lance 9413.4 fold 100.0 total 10120.2 cold 12557.3 | scanned 1000000 sel 100000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 414.0 resolve 7.6 route 0.0 ingress 1231.3 lance 11370.8 fold 9.5 total 13508.8 cold 16811.2 | scanned 1100000 sel 100000 bytes 2512816 ( 68.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 6.5 route 6996.5 ingress 1.8 lance 1547.3 fold 10.0 total 8609.0 cold 9072.7 | scanned 100000 sel 100000 bytes 127008 ( 3.5% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 9.2 route 6741.1 ingress 0.1 lance 11010.7 fold 1320.5 total 19462.5 cold 19421.2 | scanned 1000000 sel 100000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 10.0% actual 10.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 552.0 resolve 12.1 route 0.0 ingress 0.0 lance 27221.7 fold 435.2 total 28867.8 cold 32324.6 | scanned 1000000 sel 100000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 487.1 resolve 11.1 route 0.0 ingress 1418.9 lance 15837.2 fold 53.1 total 18422.4 cold 18482.8 | scanned 1100000 sel 100000 bytes 2893840 ( 38.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 10.0 route 6908.0 ingress 2.7 lance 2558.2 fold 57.7 total 9705.4 cold 10648.6 | scanned 100000 sel 100000 bytes 508032 ( 6.8% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 13.3 route 6971.5 ingress 0.1 lance 26032.7 fold 2195.6 total 37321.5 cold 42611.8 | scanned 1000000 sel 100000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 618.6 resolve 12.4 route 0.0 ingress 0.0 lance 25138.7 fold 422.7 total 27025.7 cold 28441.4 | scanned 1000000 sel 100000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 455.6 resolve 11.4 route 0.0 ingress 1344.9 lance 14674.0 fold 57.7 total 16953.0 cold 17754.6 | scanned 1100000 sel 100000 bytes 2893840 ( 38.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 10.3 route 6951.3 ingress 1.6 lance 2179.6 fold 64.6 total 9310.3 cold 9858.2 | scanned 100000 sel 100000 bytes 508032 ( 6.8% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 12.7 route 6909.4 ingress 0.1 lance 25566.8 fold 2138.2 total 35605.7 cold 36063.5 | scanned 1000000 sel 100000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 10.0% actual 10.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 791.2 resolve 25.1 route 0.0 ingress 0.0 lance 86544.6 fold 1715.2 total 91791.3 cold 94959.2 | scanned 1000000 sel 100000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 560.8 resolve 17.5 route 0.0 ingress 1358.4 lance 17572.4 fold 370.5 total 20262.6 cold 23697.8 | scanned 1100000 sel 100000 bytes 4417936 ( 19.5% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 16.6 route 6867.5 ingress 2.7 lance 5541.1 fold 311.2 total 12753.0 cold 13697.2 | scanned 100000 sel 100000 bytes 2032128 ( 9.0% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 26.0 route 7356.1 ingress 0.1 lance 93129.2 fold 3662.1 total 107773.0 cold 104394.0 | scanned 1000000 sel 100000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 780.5 resolve 26.0 route 0.0 ingress 0.0 lance 95865.0 fold 1887.0 total 102766.2 cold 90885.9 | scanned 1000000 sel 100000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 543.8 resolve 18.5 route 0.0 ingress 1331.9 lance 17479.1 fold 344.5 total 20164.0 cold 23682.2 | scanned 1100000 sel 100000 bytes 4417936 ( 19.5% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 17.2 route 6906.1 ingress 1.5 lance 5080.9 fold 318.9 total 12649.9 cold 12776.6 | scanned 100000 sel 100000 bytes 2032128 ( 9.0% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 26.9 route 7117.3 ingress 0.1 lance 89599.6 fold 3680.5 total 103492.4 cold 111295.5 | scanned 1000000 sel 100000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 50.0% actual 50.061% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) - A-full Lance-backed | where 817.1 resolve 12.4 route 0.0 ingress 0.0 lance 15548.2 fold 827.2 total 17781.6 cold 21762.5 | scanned 1000000 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1017.4 resolve 17.0 route 0.0 ingress 11087.0 lance 114419.7 fold 203.2 total 131388.4 cold 117980.1 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 1037.2 resolve 16.2 route 0.0 ingress 9745.0 lance 107947.8 fold 160.9 total 121538.6 cold 129256.8 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 16.0 route 39325.4 ingress 19027.7 lance 98898.3 fold 222.2 total 157397.7 cold 155933.9 | scanned 500613 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 15.9 route 36297.2 ingress 0.1 lance 15672.3 fold 3455.5 total 56132.7 cold 59943.5 | scanned 1000000 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 981.0 resolve 13.3 route 0.0 ingress 0.0 lance 13632.3 fold 848.2 total 15758.4 cold 18563.0 | scanned 1000000 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1030.0 resolve 18.2 route 0.0 ingress 9789.0 lance 102369.1 fold 154.2 total 116563.5 cold 114075.4 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 1004.1 resolve 16.3 route 0.0 ingress 9520.4 lance 104413.7 fold 219.7 total 116194.1 cold 132559.6 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 16.2 route 38664.3 ingress 9390.8 lance 92917.2 fold 160.9 total 141071.3 cold 141808.7 | scanned 500613 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 15.3 route 36154.5 ingress 0.1 lance 14483.0 fold 2944.8 total 54430.4 cold 54472.3 | scanned 1000000 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 50.0% actual 50.061% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) - A-full Lance-backed | where 891.0 resolve 17.9 route 0.0 ingress 0.0 lance 25421.0 fold 3381.8 total 30361.1 cold 33614.4 | scanned 1000000 sel 500613 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1118.9 resolve 23.2 route 0.0 ingress 10075.8 lance 279938.9 fold 1079.4 total 294164.7 cold 296849.1 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 1105.5 resolve 20.4 route 0.0 ingress 12424.6 lance 297918.3 fold 1011.0 total 313986.4 cold 318853.2 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 19.4 route 39789.7 ingress 20396.0 lance 272929.8 fold 951.2 total 338903.1 cold 312280.1 | scanned 500613 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 19.0 route 36548.9 ingress 0.1 lance 28804.7 fold 6386.1 total 73828.6 cold 72062.8 | scanned 1000000 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 828.1 resolve 15.4 route 0.0 ingress 0.0 lance 27253.5 fold 3093.6 total 31747.1 cold 29476.2 | scanned 1000000 sel 500613 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 970.5 resolve 23.8 route 0.0 ingress 9462.3 lance 252497.3 fold 865.0 total 265124.9 cold 275137.8 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 993.6 resolve 20.5 route 0.0 ingress 9963.5 lance 256271.4 fold 878.8 total 269758.3 cold 289695.7 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 19.4 route 38314.6 ingress 9476.7 lance 248910.2 fold 916.6 total 298587.8 cold 302827.0 | scanned 500613 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 19.3 route 36917.9 ingress 0.1 lance 33232.7 fold 6402.1 total 78087.6 cold 79421.3 | scanned 1000000 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 50.0% actual 50.061% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1147.9 resolve 30.6 route 0.0 ingress 0.0 lance 93009.8 fold 16332.9 total 115590.9 cold 104185.3 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1155.2 resolve 28.2 route 0.0 ingress 9999.2 lance 942878.4 fold 3892.0 total 959523.1 cold 953101.8 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 1013.2 resolve 28.1 route 0.0 ingress 8543.4 lance 897082.5 fold 3348.8 total 912040.5 cold 991048.4 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 35.2 route 44428.9 ingress 19380.4 lance 925837.1 fold 3734.0 total 991881.9 cold 982818.2 | scanned 500613 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 30.0 route 37230.5 ingress 0.1 lance 94530.6 fold 17478.8 total 152697.5 cold 142316.7 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 1017.8 resolve 30.6 route 0.0 ingress 0.0 lance 83342.9 fold 14429.0 total 103228.8 cold 102876.3 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 1011.6 resolve 28.4 route 0.0 ingress 9396.5 lance 903199.7 fold 3419.7 total 919861.2 cold 866934.1 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 1015.8 resolve 28.9 route 0.0 ingress 10729.4 lance 893039.0 fold 3463.9 total 911573.0 cold 893647.0 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 29.2 route 43569.4 ingress 10888.5 lance 945372.6 fold 3976.3 total 1005410.6 cold 961106.3 | scanned 500613 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 29.4 route 37291.1 ingress 0.1 lance 89781.2 fold 18144.1 total 151386.0 cold 170235.8 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 50.0% actual 50.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 686.5 resolve 8.8 route 0.0 ingress 0.0 lance 7299.8 fold 428.1 total 8654.1 cold 9919.0 | scanned 1000000 sel 500000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 430.2 resolve 9.8 route 0.0 ingress 6289.3 lance 15989.0 fold 67.0 total 23235.3 cold 23667.4 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 402.4 resolve 10.2 route 0.0 ingress 6164.2 lance 15044.0 fold 75.5 total 22696.7 cold 23273.7 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 9.8 route 34982.4 ingress 7.6 lance 4012.8 fold 154.8 total 41181.7 cold 41358.9 | scanned 500000 sel 500000 bytes 633744 ( 17.4% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 12.0 route 35495.5 ingress 0.1 lance 14098.8 fold 2533.9 total 52503.2 cold 54110.4 | scanned 1000000 sel 500000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 418.8 resolve 9.8 route 0.0 ingress 0.0 lance 8226.5 fold 400.1 total 9082.7 cold 13241.3 | scanned 1000000 sel 500000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 403.1 resolve 9.5 route 0.0 ingress 5991.0 lance 14257.1 fold 63.3 total 20974.1 cold 24747.8 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 384.0 resolve 9.8 route 0.0 ingress 5990.7 lance 13603.1 fold 70.7 total 20469.7 cold 20034.7 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 8.5 route 34230.8 ingress 3.2 lance 3589.2 fold 95.7 total 37936.5 cold 38125.8 | scanned 500000 sel 500000 bytes 633744 ( 17.4% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 10.5 route 33966.7 ingress 0.1 lance 12953.9 fold 2419.1 total 50044.2 cold 49174.6 | scanned 1000000 sel 500000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 50.0% actual 50.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 617.3 resolve 15.2 route 0.0 ingress 0.0 lance 24583.4 fold 2038.4 total 27722.5 cold 28999.0 | scanned 1000000 sel 500000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 622.7 resolve 13.2 route 0.0 ingress 6227.5 lance 20577.2 fold 506.2 total 28631.5 cold 29495.1 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 641.0 resolve 12.6 route 0.0 ingress 6154.7 lance 17948.4 fold 438.3 total 25697.5 cold 27052.2 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 12.9 route 34156.2 ingress 9.1 lance 8587.2 fold 1070.3 total 43852.7 cold 43435.4 | scanned 500000 sel 500000 bytes 2534976 ( 34.0% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 20.0 route 35715.9 ingress 0.1 lance 27422.1 fold 5519.2 total 70462.0 cold 66352.6 | scanned 1000000 sel 500000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 427.6 resolve 12.3 route 0.0 ingress 0.0 lance 18199.2 fold 1804.5 total 20488.0 cold 22011.9 | scanned 1000000 sel 500000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 479.7 resolve 14.9 route 0.0 ingress 6425.3 lance 20565.7 fold 609.7 total 28928.7 cold 31394.1 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 510.0 resolve 11.7 route 0.0 ingress 6462.4 lance 18562.9 fold 418.8 total 26284.2 cold 32369.5 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 12.2 route 34925.8 ingress 5.4 lance 7436.1 fold 849.5 total 43227.9 cold 48904.4 | scanned 500000 sel 500000 bytes 2534976 ( 34.0% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 15.9 route 34929.9 ingress 0.1 lance 23135.7 fold 4226.4 total 62838.0 cold 63063.0 | scanned 1000000 sel 500000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 50.0% actual 50.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 850.3 resolve 30.3 route 0.0 ingress 0.0 lance 91687.6 fold 8430.7 total 103417.0 cold 103413.3 | scanned 1000000 sel 500000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 755.4 resolve 27.0 route 0.0 ingress 6465.8 lance 50496.5 fold 4115.8 total 63426.1 cold 67691.7 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read allow | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 679.5 resolve 21.3 route 0.0 ingress 6246.2 lance 46078.6 fold 3669.7 total 57705.7 cold 65543.5 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read block | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 22.7 route 35422.7 ingress 7.6 lance 34239.8 fold 3989.5 total 73369.1 cold 70244.1 | scanned 500000 sel 500000 bytes 10139904 ( 44.7% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 25.9 route 34519.5 ingress 0.1 lance 93231.9 fold 10920.5 total 143081.8 cold 134650.4 | scanned 1000000 sel 500000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 763.5 resolve 27.3 route 0.0 ingress 0.0 lance 83641.1 fold 8377.5 total 96273.2 cold 96701.7 | scanned 1000000 sel 500000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 742.5 resolve 22.5 route 0.0 ingress 6497.6 lance 50544.5 fold 3680.0 total 64639.2 cold 63670.8 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read allow | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 742.1 resolve 22.4 route 0.0 ingress 6979.8 lance 45244.4 fold 3704.6 total 59360.6 cold 57815.5 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read block | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 21.5 route 34802.2 ingress 4.7 lance 36990.6 fold 4249.5 total 77508.9 cold 74474.1 | scanned 500000 sel 500000 bytes 10139904 ( 44.7% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 27.0 route 34717.0 ingress 0.1 lance 89344.9 fold 10766.2 total 137978.8 cold 132391.2 | scanned 1000000 sel 500000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) # wrote /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/lancearm/lance_arm/n1000000/lance_arm.json # all oracle and refusal checks passed diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json index 76f4604a5..45e6eaf39 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json @@ -1,108 +1,108 @@ { - "label": "Lance-backed LAB", "n": 10000000, "reps": 3, "attest_cold_us": 809109.9, + "label": "Lance-backed LAB", "n": 10000000, "reps": 3, "attest_cold_us": 784159.9, "owner_gates": ["S-INGRESS", "D4"], "rows": [ - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":10303.4,"resolve":20.8,"route":0.0,"ingress":0.0,"lance":193482.4,"fold":943.3,"total":211134.0,"cold_total":215215.5},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":10474.4,"resolve":15.6,"route":0.0,"ingress":1298.2,"lance":234316.2,"fold":1.8,"total":260668.0,"cold_total":282731.2},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":37968912,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":9.5,"route":4950.8,"ingress":1170.6,"lance":9961.4,"fold":1.6,"total":16124.6,"cold_total":17813.1},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":9.6,"route":5316.4,"ingress":1332.1,"lance":10354.1,"fold":3.1,"total":17020.1,"cold_total":15978.8},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":11024.8,"resolve":24.5,"route":0.0,"ingress":0.0,"lance":311993.8,"fold":2960.8,"total":334054.7,"cold_total":299853.8},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":10080.3,"resolve":24.1,"route":0.0,"ingress":1216.6,"lance":267997.7,"fold":5.8,"total":285434.0,"cold_total":315645.7},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":75927456,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":18.4,"route":5572.3,"ingress":1748.3,"lance":36591.4,"fold":5.5,"total":42500.2,"cold_total":40719.3},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":14.6,"route":5202.3,"ingress":1417.8,"lance":34856.1,"fold":5.1,"total":41989.7,"cold_total":38350.5},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10060.2,"resolve":38.9,"route":0.0,"ingress":0.0,"lance":916107.5,"fold":11357.5,"total":972113.8,"cold_total":990104.2},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10733.1,"resolve":29.2,"route":0.0,"ingress":1297.0,"lance":349417.4,"fold":40.5,"total":368495.2,"cold_total":369888.3},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":227761632,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":24.3,"route":4912.7,"ingress":1186.6,"lance":131631.8,"fold":39.9,"total":138237.3,"cold_total":140243.8},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":33.8,"route":6038.4,"ingress":1754.9,"lance":140805.0,"fold":32.4,"total":148825.4,"cold_total":146025.1},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":7679.8,"resolve":20.4,"route":0.0,"ingress":0.0,"lance":134060.3,"fold":209.3,"total":145737.4,"cold_total":171716.5},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":8047.3,"resolve":14.0,"route":0.0,"ingress":503.9,"lance":191760.9,"fold":2.0,"total":205692.0,"cold_total":213522.9},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28077728,"bytes_vs_A_pct":69.0,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":6.6,"route":684.0,"ingress":1.5,"lance":1176.2,"fold":1.6,"total":1876.1,"cold_total":2658.6},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":5.5,"route":691.3,"ingress":1.3,"lance":1054.4,"fold":1.7,"total":1759.0,"cold_total":1711.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":8560.3,"resolve":24.5,"route":0.0,"ingress":0.0,"lance":325552.8,"fold":538.2,"total":345488.7,"cold_total":326122.6},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":7634.4,"resolve":16.5,"route":0.0,"ingress":524.2,"lance":190998.9,"fold":5.5,"total":207558.1,"cold_total":220201.3},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28120496,"bytes_vs_A_pct":35.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":11.0,"route":786.1,"ingress":2.4,"lance":1522.7,"fold":5.4,"total":2337.7,"cold_total":2839.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.9,"route":718.5,"ingress":1.7,"lance":1175.6,"fold":4.6,"total":1919.4,"cold_total":2068.8},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":8750.3,"resolve":35.8,"route":0.0,"ingress":0.0,"lance":991253.8,"fold":1333.6,"total":1035977.8,"cold_total":1039737.3},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":7794.1,"resolve":23.7,"route":0.0,"ingress":528.5,"lance":191673.4,"fold":30.2,"total":203428.0,"cold_total":190429.9},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28291568,"bytes_vs_A_pct":12.3,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":19.4,"route":707.8,"ingress":1.7,"lance":2567.0,"fold":22.1,"total":3364.7,"cold_total":3879.8},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":14.8,"route":737.7,"ingress":2.6,"lance":2421.9,"fold":22.9,"total":3214.8,"cold_total":2864.1},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":11416.5,"resolve":23.3,"route":0.0,"ingress":0.0,"lance":203178.7,"fold":2105.9,"total":225583.3,"cold_total":202527.4},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":10177.7,"resolve":18.9,"route":0.0,"ingress":5428.0,"lance":243713.1,"fold":11.0,"total":266536.0,"cold_total":306524.4},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":15.0,"route":23687.4,"ingress":13469.1,"lance":34611.0,"fold":10.6,"total":71800.1,"cold_total":88410.3},"rows_scanned":101671,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":15.6,"route":24622.6,"ingress":14664.1,"lance":42098.3,"fold":702.7,"total":80704.5,"cold_total":79845.6},"rows_scanned":170665,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10127.0,"resolve":26.5,"route":0.0,"ingress":0.0,"lance":299408.1,"fold":8113.9,"total":327530.7,"cold_total":354537.9},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10462.7,"resolve":21.2,"route":0.0,"ingress":5719.9,"lance":324377.4,"fold":134.7,"total":348209.4,"cold_total":347788.8},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":21.7,"route":28666.3,"ingress":16269.5,"lance":106063.1,"fold":143.6,"total":152868.0,"cold_total":143233.2},"rows_scanned":101671,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":26.7,"route":30213.3,"ingress":19079.3,"lance":97830.4,"fold":1185.1,"total":150537.3,"cold_total":141421.9},"rows_scanned":170665,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10465.7,"resolve":36.5,"route":0.0,"ingress":0.0,"lance":923997.5,"fold":28492.4,"total":1000911.9,"cold_total":1010671.1},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10068.2,"resolve":29.0,"route":0.0,"ingress":5517.5,"lance":574582.1,"fold":542.9,"total":606038.0,"cold_total":624185.1},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":47.0,"route":29519.6,"ingress":16987.5,"lance":340822.1,"fold":558.0,"total":379892.5,"cold_total":380656.2},"rows_scanned":101671,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":27.2,"route":24291.5,"ingress":14476.3,"lance":311672.7,"fold":2894.6,"total":355250.0,"cold_total":360597.7},"rows_scanned":170665,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":7959.4,"resolve":17.5,"route":0.0,"ingress":0.0,"lance":128661.0,"fold":289.0,"total":140551.4,"cold_total":145622.2},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":8369.8,"resolve":14.0,"route":0.0,"ingress":1582.9,"lance":181396.9,"fold":16.2,"total":201515.0,"cold_total":208344.5},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28191776,"bytes_vs_A_pct":69.2,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":8.9,"route":7011.4,"ingress":2.7,"lance":1905.8,"fold":16.2,"total":9056.6,"cold_total":9474.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":7.9,"route":6895.2,"ingress":2.3,"lance":1749.9,"fold":13.1,"total":8673.1,"cold_total":8835.8},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":7614.0,"resolve":24.3,"route":0.0,"ingress":0.0,"lance":295994.8,"fold":856.3,"total":317325.0,"cold_total":312725.2},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":7655.4,"resolve":16.6,"route":0.0,"ingress":1541.1,"lance":178703.7,"fold":183.1,"total":193697.4,"cold_total":192348.3},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28576688,"bytes_vs_A_pct":36.3,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.1,"route":7119.4,"ingress":2.7,"lance":2401.2,"fold":84.4,"total":9456.6,"cold_total":10601.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":9.3,"route":6990.5,"ingress":2.2,"lance":2333.5,"fold":60.2,"total":9371.9,"cold_total":10101.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":7713.6,"resolve":34.0,"route":0.0,"ingress":0.0,"lance":976632.3,"fold":2993.1,"total":1034965.2,"cold_total":986057.0},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":7872.3,"resolve":24.8,"route":0.0,"ingress":1571.9,"lance":191985.1,"fold":1115.2,"total":207564.8,"cold_total":225119.8},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":30116336,"bytes_vs_A_pct":13.1,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":20.2,"route":6975.2,"ingress":3.4,"lance":5977.1,"fold":691.5,"total":13860.3,"cold_total":17560.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":17.9,"route":7259.1,"ingress":2.8,"lance":6163.1,"fold":524.2,"total":13983.3,"cold_total":13103.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":10155.7,"resolve":22.2,"route":0.0,"ingress":0.0,"lance":186622.4,"fold":6313.1,"total":209771.1,"cold_total":215265.5},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":9974.7,"resolve":17.9,"route":0.0,"ingress":44385.2,"lance":516587.7,"fold":445.1,"total":578405.6,"cold_total":597901.0},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":17.3,"route":95464.3,"ingress":109378.8,"lance":296595.0,"fold":410.1,"total":502389.7,"cold_total":489659.9},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":22.1,"route":92694.4,"ingress":0.1,"lance":180388.2,"fold":28225.4,"total":306880.4,"cold_total":324516.6},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":11031.4,"resolve":30.6,"route":0.0,"ingress":0.0,"lance":321375.7,"fold":26150.5,"total":370518.9,"cold_total":382440.7},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":10305.4,"resolve":28.3,"route":0.0,"ingress":45418.2,"lance":1065877.3,"fold":1994.5,"total":1134078.2,"cold_total":1076888.7},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":19.9,"route":103407.1,"ingress":119960.0,"lance":833890.0,"fold":1837.1,"total":1063140.3,"cold_total":1048035.9},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":29.5,"route":97147.6,"ingress":0.1,"lance":356339.0,"fold":46616.3,"total":508455.3,"cold_total":514471.6},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":10913.9,"resolve":37.6,"route":0.0,"ingress":0.0,"lance":946298.5,"fold":95686.6,"total":1093180.5,"cold_total":1063376.8},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":10574.4,"resolve":34.1,"route":0.0,"ingress":46334.9,"lance":3074846.0,"fold":7744.9,"total":3150294.4,"cold_total":3173415.8},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":38.2,"route":98604.4,"ingress":115463.6,"lance":2789111.5,"fold":8048.2,"total":3019443.5,"cold_total":3055576.5},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":37.3,"route":91563.9,"ingress":0.1,"lance":980865.3,"fold":108818.3,"total":1232465.4,"cold_total":1228371.3},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":8607.8,"resolve":20.5,"route":0.0,"ingress":0.0,"lance":155320.5,"fold":1266.3,"total":169840.2,"cold_total":156140.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":8000.6,"resolve":14.1,"route":0.0,"ingress":21015.9,"lance":183114.2,"fold":373.0,"total":216511.3,"cold_total":211296.5},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":29330960,"bytes_vs_A_pct":72.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":12.6,"route":72860.4,"ingress":13.2,"lance":8413.2,"fold":408.9,"total":81896.6,"cold_total":87134.3},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":1267488,"bytes_vs_A_pct":3.1,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":19.9,"route":73180.9,"ingress":0.1,"lance":172451.4,"fold":23993.2,"total":272917.0,"cold_total":284288.1},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7556.4,"resolve":23.5,"route":0.0,"ingress":0.0,"lance":280049.3,"fold":4638.6,"total":303130.5,"cold_total":307298.2},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7981.6,"resolve":16.5,"route":0.0,"ingress":21167.9,"lance":198575.2,"fold":1801.4,"total":234978.5,"cold_total":236945.4},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":33133424,"bytes_vs_A_pct":42.1,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":15.6,"route":72326.1,"ingress":13.8,"lance":16446.5,"fold":1995.9,"total":91115.6,"cold_total":95864.6},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":5069952,"bytes_vs_A_pct":6.4,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":23.8,"route":71815.6,"ingress":0.1,"lance":338248.3,"fold":24433.8,"total":446557.1,"cold_total":439905.4},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7740.9,"resolve":36.2,"route":0.0,"ingress":0.0,"lance":1014329.4,"fold":19493.3,"total":1077853.2,"cold_total":1066603.0},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7734.1,"resolve":34.0,"route":0.0,"ingress":18902.5,"lance":278922.9,"fold":8528.1,"total":320264.3,"cold_total":324735.0},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":48343280,"bytes_vs_A_pct":21.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":27.8,"route":74008.9,"ingress":13.2,"lance":71128.6,"fold":8203.7,"total":161528.8,"cold_total":160260.0},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":20279808,"bytes_vs_A_pct":8.8,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":39.0,"route":73936.8,"ingress":0.1,"lance":1122052.4,"fold":39350.6,"total":1300127.3,"cold_total":1219831.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10719.4,"resolve":21.0,"route":0.0,"ingress":0.0,"lance":192360.9,"fold":9887.7,"total":220645.7,"cold_total":214372.8},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":13027.7,"resolve":20.6,"route":0.0,"ingress":147885.8,"lance":1264681.8,"fold":2553.2,"total":1440493.9,"cold_total":1366702.8},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":11644.1,"resolve":18.1,"route":0.0,"ingress":155370.6,"lance":1264301.5,"fold":2454.1,"total":1443967.8,"cold_total":1390000.6},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":23.8,"route":413020.4,"ingress":265138.3,"lance":1114157.3,"fold":2647.2,"total":1812509.1,"cold_total":1836722.8},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":23.6,"route":379145.3,"ingress":0.1,"lance":190973.7,"fold":38915.8,"total":616627.0,"cold_total":612960.6},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10367.5,"resolve":27.0,"route":0.0,"ingress":0.0,"lance":294877.8,"fold":35616.2,"total":352738.8,"cold_total":364086.9},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10360.0,"resolve":26.4,"route":0.0,"ingress":148915.0,"lance":3407470.6,"fold":11465.3,"total":3626822.1,"cold_total":3573391.1},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":11011.7,"resolve":25.1,"route":0.0,"ingress":148106.6,"lance":3323058.6,"fold":10011.1,"total":3507409.2,"cold_total":3647731.0},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":28.2,"route":429149.0,"ingress":304834.3,"lance":3217519.7,"fold":10597.0,"total":4035830.9,"cold_total":3761312.0},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":27.2,"route":396047.9,"ingress":0.1,"lance":357557.2,"fold":65416.6,"total":835435.0,"cold_total":815435.2},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":9791.2,"resolve":39.0,"route":0.0,"ingress":0.0,"lance":964873.6,"fold":139004.0,"total":1163500.2,"cold_total":1169210.0},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":10322.2,"resolve":36.2,"route":0.0,"ingress":156145.7,"lance":11223882.2,"fold":39101.5,"total":11483954.2,"cold_total":11703181.2},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":11077.4,"resolve":38.7,"route":0.0,"ingress":152089.1,"lance":11024802.7,"fold":41993.8,"total":11266109.0,"cold_total":11194269.3},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":38.1,"route":433247.8,"ingress":267904.9,"lance":10648074.9,"fold":44655.8,"total":11428847.8,"cold_total":11260166.1},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":39.9,"route":379619.2,"ingress":0.1,"lance":1113109.6,"fold":175777.9,"total":1703210.0,"cold_total":1689868.0},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":7848.3,"resolve":19.6,"route":0.0,"ingress":0.0,"lance":134781.7,"fold":5577.4,"total":153026.7,"cold_total":179169.6},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":7803.7,"resolve":18.8,"route":0.0,"ingress":146219.7,"lance":235038.4,"fold":2854.5,"total":408595.6,"cold_total":487667.2},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":7827.1,"resolve":16.0,"route":0.0,"ingress":140511.9,"lance":228474.7,"fold":2558.1,"total":386873.4,"cold_total":400777.3},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":16.0,"route":382153.3,"ingress":36.3,"lance":43883.8,"fold":2676.2,"total":435760.9,"cold_total":421718.5},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":6329664,"bytes_vs_A_pct":15.5,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":20.7,"route":380864.2,"ingress":0.1,"lance":182737.8,"fold":31575.9,"total":604954.5,"cold_total":601639.7},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8032.5,"resolve":24.7,"route":0.0,"ingress":0.0,"lance":293784.7,"fold":21115.2,"total":335521.6,"cold_total":351990.3},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":7678.5,"resolve":22.3,"route":0.0,"ingress":137644.8,"lance":340742.4,"fold":11316.5,"total":511430.3,"cold_total":471510.9},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":9010.1,"resolve":20.0,"route":0.0,"ingress":161571.5,"lance":304496.2,"fold":10092.4,"total":495553.0,"cold_total":484011.9},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":22.0,"route":373217.7,"ingress":36.8,"lance":133951.4,"fold":11005.7,"total":532690.1,"cold_total":505669.1},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":25318656,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":25.6,"route":372731.6,"ingress":0.1,"lance":369704.0,"fold":45799.8,"total":792887.3,"cold_total":863425.1},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8178.7,"resolve":38.4,"route":0.0,"ingress":0.0,"lance":1059049.8,"fold":86481.4,"total":1196625.3,"cold_total":1203390.6},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":9527.3,"resolve":35.4,"route":0.0,"ingress":153320.2,"lance":680320.8,"fold":41717.6,"total":930447.5,"cold_total":872082.1},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8620.2,"resolve":38.6,"route":0.0,"ingress":191782.1,"lance":723638.9,"fold":40909.9,"total":990657.5,"cold_total":961676.8},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":39.6,"route":377818.4,"ingress":25.0,"lance":505224.4,"fold":41029.0,"total":957842.4,"cold_total":917075.6},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":101274624,"bytes_vs_A_pct":43.9,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":38.8,"route":368828.7,"ingress":0.1,"lance":1019101.3,"fold":111882.0,"total":1561248.3,"cold_total":1560474.3},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":10604.5,"resolve":21.3,"route":0.0,"ingress":0.0,"lance":195610.4,"fold":910.1,"total":218871.8,"cold_total":248872.6},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":12104.3,"resolve":21.7,"route":0.0,"ingress":1653.7,"lance":361305.1,"fold":2.3,"total":384464.6,"cold_total":252931.3},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":37968912,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":11.1,"route":4701.9,"ingress":583.1,"lance":10024.5,"fold":2.0,"total":15416.5,"cold_total":18348.9},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":9.7,"route":4608.5,"ingress":577.2,"lance":9944.5,"fold":2.0,"total":15567.4,"cold_total":16479.7},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":10270.8,"resolve":26.1,"route":0.0,"ingress":0.0,"lance":307619.8,"fold":3159.1,"total":329560.2,"cold_total":327486.8},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":10101.3,"resolve":21.1,"route":0.0,"ingress":1115.0,"lance":299279.6,"fold":5.1,"total":319075.8,"cold_total":795736.7},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":75927456,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":14.8,"route":4674.0,"ingress":586.6,"lance":32178.6,"fold":5.4,"total":37470.0,"cold_total":38813.9},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":13.7,"route":4638.8,"ingress":605.6,"lance":30510.4,"fold":5.7,"total":35784.4,"cold_total":37041.0},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10176.8,"resolve":38.5,"route":0.0,"ingress":0.0,"lance":1001637.3,"fold":10647.2,"total":1045618.6,"cold_total":1564785.9},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10119.1,"resolve":31.7,"route":0.0,"ingress":1341.3,"lance":381186.5,"fold":35.2,"total":402796.4,"cold_total":426910.0},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":227761632,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":25.4,"route":4720.8,"ingress":560.4,"lance":126263.9,"fold":34.3,"total":131587.9,"cold_total":128649.1},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":25.0,"route":4855.6,"ingress":596.9,"lance":118893.5,"fold":40.5,"total":124392.6,"cold_total":150616.7},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":7871.4,"resolve":21.1,"route":0.0,"ingress":0.0,"lance":133907.6,"fold":291.0,"total":145676.3,"cold_total":135584.2},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":8167.7,"resolve":15.2,"route":0.0,"ingress":557.5,"lance":183495.7,"fold":2.5,"total":195631.0,"cold_total":200661.6},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28077728,"bytes_vs_A_pct":69.0,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":10.4,"route":757.9,"ingress":1.3,"lance":1196.4,"fold":2.1,"total":1982.0,"cold_total":2389.8},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":7.8,"route":767.2,"ingress":1.1,"lance":1061.2,"fold":1.9,"total":1835.1,"cold_total":1793.5},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":7753.2,"resolve":24.7,"route":0.0,"ingress":0.0,"lance":292504.0,"fold":536.7,"total":308708.8,"cold_total":346033.9},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":7832.2,"resolve":15.8,"route":0.0,"ingress":457.3,"lance":179587.6,"fold":5.3,"total":194055.6,"cold_total":189390.8},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28120496,"bytes_vs_A_pct":35.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.6,"route":694.6,"ingress":1.2,"lance":1147.0,"fold":4.6,"total":1863.2,"cold_total":2077.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":8.0,"route":696.0,"ingress":1.0,"lance":1171.6,"fold":4.6,"total":1885.1,"cold_total":1853.5},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":7796.2,"resolve":43.0,"route":0.0,"ingress":0.0,"lance":1279262.2,"fold":2073.5,"total":1311710.1,"cold_total":1956666.8},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":7610.1,"resolve":23.8,"route":0.0,"ingress":563.9,"lance":178640.5,"fold":31.6,"total":191638.1,"cold_total":220112.0},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28291568,"bytes_vs_A_pct":12.3,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":15.9,"route":693.6,"ingress":1.2,"lance":2316.2,"fold":26.4,"total":3069.1,"cold_total":3702.3},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":14.3,"route":720.1,"ingress":1.0,"lance":1868.0,"fold":18.7,"total":2632.8,"cold_total":2826.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":10180.7,"resolve":20.4,"route":0.0,"ingress":0.0,"lance":177444.2,"fold":1802.7,"total":193936.1,"cold_total":196070.0},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":10618.7,"resolve":17.1,"route":0.0,"ingress":8666.2,"lance":271392.6,"fold":11.2,"total":303514.4,"cold_total":271725.3},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":12.4,"route":25682.7,"ingress":9053.3,"lance":30579.4,"fold":11.8,"total":65685.1,"cold_total":66387.6},"rows_scanned":101671,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":15.5,"route":24078.2,"ingress":6835.2,"lance":40248.7,"fold":663.6,"total":73177.8,"cold_total":66036.8},"rows_scanned":170665,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10172.4,"resolve":28.2,"route":0.0,"ingress":0.0,"lance":304089.4,"fold":7061.2,"total":328723.7,"cold_total":340691.5},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10183.8,"resolve":19.5,"route":0.0,"ingress":5701.5,"lance":317248.1,"fold":122.6,"total":342081.7,"cold_total":329964.5},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":18.4,"route":23944.6,"ingress":6911.1,"lance":84857.3,"fold":107.3,"total":115941.8,"cold_total":116385.7},"rows_scanned":101671,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":20.7,"route":23823.9,"ingress":6917.3,"lance":90044.3,"fold":1079.8,"total":124954.8,"cold_total":125136.6},"rows_scanned":170665,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10157.6,"resolve":37.4,"route":0.0,"ingress":0.0,"lance":913519.2,"fold":27464.2,"total":975971.5,"cold_total":2118593.4},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10522.4,"resolve":29.1,"route":0.0,"ingress":5488.1,"lance":538217.8,"fold":620.4,"total":562442.4,"cold_total":583820.8},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":29.1,"route":24899.8,"ingress":7176.3,"lance":318617.8,"fold":627.1,"total":350027.1,"cold_total":334809.5},"rows_scanned":101671,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":34.9,"route":32846.0,"ingress":8576.6,"lance":423930.0,"fold":3969.2,"total":469522.9,"cold_total":409701.4},"rows_scanned":170665,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":9319.8,"resolve":30.2,"route":0.0,"ingress":0.0,"lance":180275.6,"fold":451.3,"total":194100.4,"cold_total":202867.6},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":10591.2,"resolve":20.3,"route":0.0,"ingress":1901.0,"lance":245370.5,"fold":17.1,"total":264580.3,"cold_total":283884.7},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28191776,"bytes_vs_A_pct":69.2,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":6.5,"route":6682.1,"ingress":1.4,"lance":1813.5,"fold":10.3,"total":8561.0,"cold_total":8875.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":6.2,"route":6659.9,"ingress":1.4,"lance":1708.2,"fold":10.7,"total":8391.3,"cold_total":8425.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":8062.3,"resolve":22.8,"route":0.0,"ingress":0.0,"lance":283368.4,"fold":964.7,"total":304545.6,"cold_total":308744.7},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":7910.3,"resolve":15.8,"route":0.0,"ingress":1518.6,"lance":173218.1,"fold":136.0,"total":189203.6,"cold_total":187591.7},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28576688,"bytes_vs_A_pct":36.3,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.3,"route":7186.4,"ingress":1.8,"lance":2461.8,"fold":89.1,"total":9526.1,"cold_total":10066.3},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.0,"route":6973.0,"ingress":1.5,"lance":2458.8,"fold":58.6,"total":9596.0,"cold_total":9174.0},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":8451.5,"resolve":34.4,"route":0.0,"ingress":0.0,"lance":994974.1,"fold":3642.2,"total":1038477.0,"cold_total":3061108.3},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":8579.7,"resolve":24.8,"route":0.0,"ingress":1610.3,"lance":211895.4,"fold":755.9,"total":227616.4,"cold_total":212870.1},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":30116336,"bytes_vs_A_pct":13.1,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":18.0,"route":7145.6,"ingress":1.9,"lance":6443.4,"fold":548.1,"total":14191.7,"cold_total":14274.1},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":17.9,"route":9641.9,"ingress":1.4,"lance":7702.5,"fold":466.6,"total":19853.8,"cold_total":14118.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":10200.6,"resolve":25.3,"route":0.0,"ingress":0.0,"lance":181857.5,"fold":5846.3,"total":201475.6,"cold_total":208337.4},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":10188.0,"resolve":19.6,"route":0.0,"ingress":47448.2,"lance":506004.7,"fold":455.1,"total":573987.1,"cold_total":573097.7},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":21.1,"route":96759.8,"ingress":55868.0,"lance":290211.4,"fold":401.4,"total":445607.8,"cold_total":471680.5},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":22.2,"route":99236.3,"ingress":0.1,"lance":172709.2,"fold":31991.2,"total":310325.6,"cold_total":314312.2},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":9962.2,"resolve":27.1,"route":0.0,"ingress":0.0,"lance":290766.1,"fold":22345.6,"total":333068.1,"cold_total":347548.9},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":10067.1,"resolve":22.1,"route":0.0,"ingress":43823.4,"lance":965948.1,"fold":1993.6,"total":1033043.5,"cold_total":1006502.3},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":21.9,"route":96772.9,"ingress":57454.6,"lance":773128.5,"fold":2016.0,"total":931066.0,"cold_total":961729.7},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":28.0,"route":93806.6,"ingress":0.1,"lance":320104.9,"fold":47210.2,"total":474959.5,"cold_total":501543.4},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":10041.7,"resolve":37.4,"route":0.0,"ingress":0.0,"lance":885972.4,"fold":86031.1,"total":1006444.9,"cold_total":1602153.2},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":11203.5,"resolve":30.7,"route":0.0,"ingress":51659.5,"lance":2901665.8,"fold":7954.8,"total":2978742.5,"cold_total":3144643.5},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":32.5,"route":98638.9,"ingress":55939.0,"lance":2814171.6,"fold":7828.8,"total":2980639.6,"cold_total":3012160.1},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":37.7,"route":94060.6,"ingress":0.1,"lance":985803.0,"fold":108035.7,"total":1228008.4,"cold_total":1930362.0},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":8391.7,"resolve":19.8,"route":0.0,"ingress":0.0,"lance":142543.0,"fold":1328.5,"total":156192.7,"cold_total":152648.4},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":9161.5,"resolve":13.6,"route":0.0,"ingress":19281.5,"lance":182682.8,"fold":337.5,"total":217165.1,"cold_total":233894.1},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":29330960,"bytes_vs_A_pct":72.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":12.9,"route":72230.4,"ingress":9.5,"lance":7470.9,"fold":472.8,"total":80189.4,"cold_total":80914.2},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":1267488,"bytes_vs_A_pct":3.1,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":21.3,"route":72554.1,"ingress":0.1,"lance":173849.0,"fold":21846.0,"total":273543.2,"cold_total":268525.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7614.7,"resolve":24.9,"route":0.0,"ingress":0.0,"lance":284073.0,"fold":4877.6,"total":305462.9,"cold_total":324454.7},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7988.2,"resolve":17.4,"route":0.0,"ingress":18783.3,"lance":197066.7,"fold":1852.8,"total":232786.8,"cold_total":224201.4},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":33133424,"bytes_vs_A_pct":42.1,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":15.9,"route":73993.0,"ingress":11.6,"lance":16347.6,"fold":2097.7,"total":93993.7,"cold_total":94322.7},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":5069952,"bytes_vs_A_pct":6.4,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":24.1,"route":71509.0,"ingress":0.1,"lance":319740.7,"fold":24473.1,"total":428882.7,"cold_total":442966.8},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7439.0,"resolve":34.1,"route":0.0,"ingress":0.0,"lance":968765.6,"fold":19311.3,"total":1035375.2,"cold_total":1664460.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7966.1,"resolve":27.8,"route":0.0,"ingress":18953.0,"lance":261831.4,"fold":8471.5,"total":306443.8,"cold_total":350711.5},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":48343280,"bytes_vs_A_pct":21.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":28.7,"route":72748.3,"ingress":8.4,"lance":75057.2,"fold":8491.8,"total":163338.4,"cold_total":161749.9},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":20279808,"bytes_vs_A_pct":8.8,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":35.6,"route":74090.2,"ingress":0.1,"lance":1387515.3,"fold":37799.7,"total":1536086.9,"cold_total":1198206.1},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10668.6,"resolve":21.2,"route":0.0,"ingress":0.0,"lance":189037.7,"fold":9149.6,"total":213585.1,"cold_total":258146.0},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10434.6,"resolve":19.9,"route":0.0,"ingress":157805.9,"lance":1275026.5,"fold":2548.4,"total":1457116.5,"cold_total":1463167.3},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10283.5,"resolve":19.1,"route":0.0,"ingress":140457.9,"lance":1240161.8,"fold":2552.8,"total":1415310.3,"cold_total":1474978.6},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":18.8,"route":406068.0,"ingress":124905.0,"lance":1092283.9,"fold":2532.0,"total":1631658.8,"cold_total":1608919.8},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":22.4,"route":379897.5,"ingress":0.1,"lance":186972.1,"fold":38577.4,"total":613457.8,"cold_total":630698.5},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10384.1,"resolve":25.9,"route":0.0,"ingress":0.0,"lance":293148.2,"fold":36312.9,"total":352529.1,"cold_total":333724.5},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10826.2,"resolve":23.4,"route":0.0,"ingress":142835.3,"lance":3180954.6,"fold":10145.6,"total":3356482.7,"cold_total":3286083.6},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":11394.6,"resolve":23.2,"route":0.0,"ingress":148386.6,"lance":3154953.3,"fold":10177.0,"total":3340402.7,"cold_total":3232648.8},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":24.1,"route":406862.6,"ingress":123402.1,"lance":3050814.1,"fold":10912.3,"total":3610219.4,"cold_total":3614986.4},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":26.0,"route":388160.2,"ingress":0.1,"lance":325318.4,"fold":64014.4,"total":788235.9,"cold_total":812171.8},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":11192.6,"resolve":40.2,"route":0.0,"ingress":0.0,"lance":1029054.7,"fold":144726.5,"total":1217495.8,"cold_total":1512702.7},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":10930.9,"resolve":39.2,"route":0.0,"ingress":138706.3,"lance":10925501.3,"fold":41911.1,"total":11163480.5,"cold_total":11428639.2},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":11308.0,"resolve":38.7,"route":0.0,"ingress":141029.6,"lance":11331486.0,"fold":41719.8,"total":11556960.9,"cold_total":11619834.8},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":39.8,"route":416594.8,"ingress":123161.5,"lance":11019171.5,"fold":42957.8,"total":11634425.9,"cold_total":12050582.7},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":38.9,"route":382661.2,"ingress":0.1,"lance":1006921.9,"fold":168587.0,"total":1609495.9,"cold_total":1677890.9},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":8387.3,"resolve":18.8,"route":0.0,"ingress":0.0,"lance":136721.5,"fold":5402.7,"total":154159.6,"cold_total":158857.3},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":9107.5,"resolve":16.7,"route":0.0,"ingress":151043.8,"lance":225193.3,"fold":2751.2,"total":395866.5,"cold_total":409615.2},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":8008.2,"resolve":15.9,"route":0.0,"ingress":135983.5,"lance":223245.0,"fold":2396.1,"total":379046.1,"cold_total":384567.0},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":16.5,"route":370158.4,"ingress":27.0,"lance":44490.1,"fold":2564.2,"total":418645.9,"cold_total":400381.3},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":6329664,"bytes_vs_A_pct":15.5,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":20.9,"route":370127.1,"ingress":0.1,"lance":180356.2,"fold":29641.7,"total":595103.3,"cold_total":591915.4},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8362.4,"resolve":25.1,"route":0.0,"ingress":0.0,"lance":293660.3,"fold":21568.9,"total":336487.7,"cold_total":338396.4},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8477.4,"resolve":20.7,"route":0.0,"ingress":170297.9,"lance":327759.7,"fold":10651.7,"total":509993.8,"cold_total":492648.1},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8336.3,"resolve":21.9,"route":0.0,"ingress":143129.6,"lance":326572.9,"fold":10206.6,"total":497622.7,"cold_total":524229.0},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":21.2,"route":367890.6,"ingress":29.9,"lance":121113.9,"fold":10652.3,"total":512340.8,"cold_total":515621.6},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":25318656,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":25.6,"route":379682.5,"ingress":0.1,"lance":338371.7,"fold":44741.3,"total":775945.2,"cold_total":743365.9},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8249.7,"resolve":37.7,"route":0.0,"ingress":0.0,"lance":963492.5,"fold":80886.3,"total":1094708.6,"cold_total":1109860.0},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8063.8,"resolve":35.8,"route":0.0,"ingress":146843.8,"lance":692267.6,"fold":45293.4,"total":922238.3,"cold_total":855740.0},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":7926.6,"resolve":43.0,"route":0.0,"ingress":149100.6,"lance":670959.4,"fold":42537.0,"total":893615.2,"cold_total":899936.4},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":38.5,"route":382213.7,"ingress":20.1,"lance":482903.0,"fold":45734.1,"total":930495.1,"cold_total":912487.5},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":101274624,"bytes_vs_A_pct":43.9,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, + {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":37.8,"route":382916.8,"ingress":0.1,"lance":1016705.9,"fold":105164.0,"total":1571810.3,"cold_total":1564201.7},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} ] } diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log index 68d751825..4abaf0b6e 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log @@ -28,135 +28,135 @@ BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / [ok ] other dataset refused [ok ] forged (newer-version) witness refused by seek_from -# attest (cold, once per version): 809109.9 us [COLD/IO, reported] +# attest (cold, once per version): 784159.9 us [COLD/IO, reported] == Measurements (us, median of 3 warm runs; cold = first run) == -- scattered target 0.1% actual 0.099% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10303.4 resolve 20.8 route 0.0 ingress 0.0 lance 193482.4 fold 943.3 total 211134.0 cold 215215.5 | scanned 10000000 sel 9858 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10474.4 resolve 15.6 route 0.0 ingress 1298.2 lance 234316.2 fold 1.8 total 260668.0 cold 282731.2 | scanned 10009858 sel 9858 bytes 37968912 (100.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 9.5 route 4950.8 ingress 1170.6 lance 9961.4 fold 1.6 total 16124.6 cold 17813.1 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 9.6 route 5316.4 ingress 1332.1 lance 10354.1 fold 3.1 total 17020.1 cold 15978.8 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10604.5 resolve 21.3 route 0.0 ingress 0.0 lance 195610.4 fold 910.1 total 218871.8 cold 248872.6 | scanned 10000000 sel 9858 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 12104.3 resolve 21.7 route 0.0 ingress 1653.7 lance 361305.1 fold 2.3 total 384464.6 cold 252931.3 | scanned 10009858 sel 9858 bytes 37968912 (100.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 11.1 route 4701.9 ingress 583.1 lance 10024.5 fold 2.0 total 15416.5 cold 18348.9 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 9.7 route 4608.5 ingress 577.2 lance 9944.5 fold 2.0 total 15567.4 cold 16479.7 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- scattered target 0.1% actual 0.099% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) - A-full Lance-backed | where 11024.8 resolve 24.5 route 0.0 ingress 0.0 lance 311993.8 fold 2960.8 total 334054.7 cold 299853.8 | scanned 10000000 sel 9858 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10080.3 resolve 24.1 route 0.0 ingress 1216.6 lance 267997.7 fold 5.8 total 285434.0 cold 315645.7 | scanned 10009858 sel 9858 bytes 75927456 (120.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 18.4 route 5572.3 ingress 1748.3 lance 36591.4 fold 5.5 total 42500.2 cold 40719.3 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 14.6 route 5202.3 ingress 1417.8 lance 34856.1 fold 5.1 total 41989.7 cold 38350.5 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10270.8 resolve 26.1 route 0.0 ingress 0.0 lance 307619.8 fold 3159.1 total 329560.2 cold 327486.8 | scanned 10000000 sel 9858 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10101.3 resolve 21.1 route 0.0 ingress 1115.0 lance 299279.6 fold 5.1 total 319075.8 cold 795736.7 | scanned 10009858 sel 9858 bytes 75927456 (120.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 14.8 route 4674.0 ingress 586.6 lance 32178.6 fold 5.4 total 37470.0 cold 38813.9 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 13.7 route 4638.8 ingress 605.6 lance 30510.4 fold 5.7 total 35784.4 cold 37041.0 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- scattered target 0.1% actual 0.099% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10060.2 resolve 38.9 route 0.0 ingress 0.0 lance 916107.5 fold 11357.5 total 972113.8 cold 990104.2 | scanned 10000000 sel 9858 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10733.1 resolve 29.2 route 0.0 ingress 1297.0 lance 349417.4 fold 40.5 total 368495.2 cold 369888.3 | scanned 10009858 sel 9858 bytes 227761632 (112.5% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 24.3 route 4912.7 ingress 1186.6 lance 131631.8 fold 39.9 total 138237.3 cold 140243.8 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 33.8 route 6038.4 ingress 1754.9 lance 140805.0 fold 32.4 total 148825.4 cold 146025.1 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10176.8 resolve 38.5 route 0.0 ingress 0.0 lance 1001637.3 fold 10647.2 total 1045618.6 cold 1564785.9 | scanned 10000000 sel 9858 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10119.1 resolve 31.7 route 0.0 ingress 1341.3 lance 381186.5 fold 35.2 total 402796.4 cold 426910.0 | scanned 10009858 sel 9858 bytes 227761632 (112.5% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 25.4 route 4720.8 ingress 560.4 lance 126263.9 fold 34.3 total 131587.9 cold 128649.1 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 25.0 route 4855.6 ingress 596.9 lance 118893.5 fold 40.5 total 124392.6 cold 150616.7 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- clustered target 0.1% actual 0.100% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7679.8 resolve 20.4 route 0.0 ingress 0.0 lance 134060.3 fold 209.3 total 145737.4 cold 171716.5 | scanned 10000000 sel 10000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 8047.3 resolve 14.0 route 0.0 ingress 503.9 lance 191760.9 fold 2.0 total 205692.0 cold 213522.9 | scanned 10010000 sel 10000 bytes 28077728 ( 69.0% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 6.6 route 684.0 ingress 1.5 lance 1176.2 fold 1.6 total 1876.1 cold 2658.6 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 5.5 route 691.3 ingress 1.3 lance 1054.4 fold 1.7 total 1759.0 cold 1711.2 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 7871.4 resolve 21.1 route 0.0 ingress 0.0 lance 133907.6 fold 291.0 total 145676.3 cold 135584.2 | scanned 10000000 sel 10000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 8167.7 resolve 15.2 route 0.0 ingress 557.5 lance 183495.7 fold 2.5 total 195631.0 cold 200661.6 | scanned 10010000 sel 10000 bytes 28077728 ( 69.0% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 10.4 route 757.9 ingress 1.3 lance 1196.4 fold 2.1 total 1982.0 cold 2389.8 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 7.8 route 767.2 ingress 1.1 lance 1061.2 fold 1.9 total 1835.1 cold 1793.5 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- clustered target 0.1% actual 0.100% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8560.3 resolve 24.5 route 0.0 ingress 0.0 lance 325552.8 fold 538.2 total 345488.7 cold 326122.6 | scanned 10000000 sel 10000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7634.4 resolve 16.5 route 0.0 ingress 524.2 lance 190998.9 fold 5.5 total 207558.1 cold 220201.3 | scanned 10010000 sel 10000 bytes 28120496 ( 35.7% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 11.0 route 786.1 ingress 2.4 lance 1522.7 fold 5.4 total 2337.7 cold 2839.7 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 7.9 route 718.5 ingress 1.7 lance 1175.6 fold 4.6 total 1919.4 cold 2068.8 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 7753.2 resolve 24.7 route 0.0 ingress 0.0 lance 292504.0 fold 536.7 total 308708.8 cold 346033.9 | scanned 10000000 sel 10000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7832.2 resolve 15.8 route 0.0 ingress 457.3 lance 179587.6 fold 5.3 total 194055.6 cold 189390.8 | scanned 10010000 sel 10000 bytes 28120496 ( 35.7% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 7.6 route 694.6 ingress 1.2 lance 1147.0 fold 4.6 total 1863.2 cold 2077.7 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 8.0 route 696.0 ingress 1.0 lance 1171.6 fold 4.6 total 1885.1 cold 1853.5 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- clustered target 0.1% actual 0.100% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8750.3 resolve 35.8 route 0.0 ingress 0.0 lance 991253.8 fold 1333.6 total 1035977.8 cold 1039737.3 | scanned 10000000 sel 10000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7794.1 resolve 23.7 route 0.0 ingress 528.5 lance 191673.4 fold 30.2 total 203428.0 cold 190429.9 | scanned 10010000 sel 10000 bytes 28291568 ( 12.3% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 19.4 route 707.8 ingress 1.7 lance 2567.0 fold 22.1 total 3364.7 cold 3879.8 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 14.8 route 737.7 ingress 2.6 lance 2421.9 fold 22.9 total 3214.8 cold 2864.1 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 7796.2 resolve 43.0 route 0.0 ingress 0.0 lance 1279262.2 fold 2073.5 total 1311710.1 cold 1956666.8 | scanned 10000000 sel 10000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7610.1 resolve 23.8 route 0.0 ingress 563.9 lance 178640.5 fold 31.6 total 191638.1 cold 220112.0 | scanned 10010000 sel 10000 bytes 28291568 ( 12.3% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 15.9 route 693.6 ingress 1.2 lance 2316.2 fold 26.4 total 3069.1 cold 3702.3 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 14.3 route 720.1 ingress 1.0 lance 1868.0 fold 18.7 total 2632.8 cold 2826.2 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) -- scattered target 1.0% actual 1.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) - A-full Lance-backed | where 11416.5 resolve 23.3 route 0.0 ingress 0.0 lance 203178.7 fold 2105.9 total 225583.3 cold 202527.4 | scanned 10000000 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10177.7 resolve 18.9 route 0.0 ingress 5428.0 lance 243713.1 fold 11.0 total 266536.0 cold 306524.4 | scanned 10101671 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 15.0 route 23687.4 ingress 13469.1 lance 34611.0 fold 10.6 total 71800.1 cold 88410.3 | scanned 101671 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 15.6 route 24622.6 ingress 14664.1 lance 42098.3 fold 702.7 total 80704.5 cold 79845.6 | scanned 170665 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10180.7 resolve 20.4 route 0.0 ingress 0.0 lance 177444.2 fold 1802.7 total 193936.1 cold 196070.0 | scanned 10000000 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10618.7 resolve 17.1 route 0.0 ingress 8666.2 lance 271392.6 fold 11.2 total 303514.4 cold 271725.3 | scanned 10101671 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 12.4 route 25682.7 ingress 9053.3 lance 30579.4 fold 11.8 total 65685.1 cold 66387.6 | scanned 101671 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 15.5 route 24078.2 ingress 6835.2 lance 40248.7 fold 663.6 total 73177.8 cold 66036.8 | scanned 170665 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- scattered target 1.0% actual 1.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10127.0 resolve 26.5 route 0.0 ingress 0.0 lance 299408.1 fold 8113.9 total 327530.7 cold 354537.9 | scanned 10000000 sel 101671 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10462.7 resolve 21.2 route 0.0 ingress 5719.9 lance 324377.4 fold 134.7 total 348209.4 cold 347788.8 | scanned 10101671 sel 101671 bytes 75948192 (120.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 21.7 route 28666.3 ingress 16269.5 lance 106063.1 fold 143.6 total 152868.0 cold 143233.2 | scanned 101671 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 26.7 route 30213.3 ingress 19079.3 lance 97830.4 fold 1185.1 total 150537.3 cold 141421.9 | scanned 170665 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10172.4 resolve 28.2 route 0.0 ingress 0.0 lance 304089.4 fold 7061.2 total 328723.7 cold 340691.5 | scanned 10000000 sel 101671 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10183.8 resolve 19.5 route 0.0 ingress 5701.5 lance 317248.1 fold 122.6 total 342081.7 cold 329964.5 | scanned 10101671 sel 101671 bytes 75948192 (120.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 18.4 route 23944.6 ingress 6911.1 lance 84857.3 fold 107.3 total 115941.8 cold 116385.7 | scanned 101671 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 20.7 route 23823.9 ingress 6917.3 lance 90044.3 fold 1079.8 total 124954.8 cold 125136.6 | scanned 170665 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 1.0% actual 1.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10465.7 resolve 36.5 route 0.0 ingress 0.0 lance 923997.5 fold 28492.4 total 1000911.9 cold 1010671.1 | scanned 10000000 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10068.2 resolve 29.0 route 0.0 ingress 5517.5 lance 574582.1 fold 542.9 total 606038.0 cold 624185.1 | scanned 10101671 sel 101671 bytes 227844576 (112.5% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 47.0 route 29519.6 ingress 16987.5 lance 340822.1 fold 558.0 total 379892.5 cold 380656.2 | scanned 101671 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 27.2 route 24291.5 ingress 14476.3 lance 311672.7 fold 2894.6 total 355250.0 cold 360597.7 | scanned 170665 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10157.6 resolve 37.4 route 0.0 ingress 0.0 lance 913519.2 fold 27464.2 total 975971.5 cold 2118593.4 | scanned 10000000 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10522.4 resolve 29.1 route 0.0 ingress 5488.1 lance 538217.8 fold 620.4 total 562442.4 cold 583820.8 | scanned 10101671 sel 101671 bytes 227844576 (112.5% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 29.1 route 24899.8 ingress 7176.3 lance 318617.8 fold 627.1 total 350027.1 cold 334809.5 | scanned 101671 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 34.9 route 32846.0 ingress 8576.6 lance 423930.0 fold 3969.2 total 469522.9 cold 409701.4 | scanned 170665 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 1.0% actual 1.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7959.4 resolve 17.5 route 0.0 ingress 0.0 lance 128661.0 fold 289.0 total 140551.4 cold 145622.2 | scanned 10000000 sel 100000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 8369.8 resolve 14.0 route 0.0 ingress 1582.9 lance 181396.9 fold 16.2 total 201515.0 cold 208344.5 | scanned 10100000 sel 100000 bytes 28191776 ( 69.2% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 8.9 route 7011.4 ingress 2.7 lance 1905.8 fold 16.2 total 9056.6 cold 9474.7 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 7.9 route 6895.2 ingress 2.3 lance 1749.9 fold 13.1 total 8673.1 cold 8835.8 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 9319.8 resolve 30.2 route 0.0 ingress 0.0 lance 180275.6 fold 451.3 total 194100.4 cold 202867.6 | scanned 10000000 sel 100000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10591.2 resolve 20.3 route 0.0 ingress 1901.0 lance 245370.5 fold 17.1 total 264580.3 cold 283884.7 | scanned 10100000 sel 100000 bytes 28191776 ( 69.2% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 6.5 route 6682.1 ingress 1.4 lance 1813.5 fold 10.3 total 8561.0 cold 8875.7 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 6.2 route 6659.9 ingress 1.4 lance 1708.2 fold 10.7 total 8391.3 cold 8425.6 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- clustered target 1.0% actual 1.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7614.0 resolve 24.3 route 0.0 ingress 0.0 lance 295994.8 fold 856.3 total 317325.0 cold 312725.2 | scanned 10000000 sel 100000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7655.4 resolve 16.6 route 0.0 ingress 1541.1 lance 178703.7 fold 183.1 total 193697.4 cold 192348.3 | scanned 10100000 sel 100000 bytes 28576688 ( 36.3% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 10.1 route 7119.4 ingress 2.7 lance 2401.2 fold 84.4 total 9456.6 cold 10601.4 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 9.3 route 6990.5 ingress 2.2 lance 2333.5 fold 60.2 total 9371.9 cold 10101.6 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 8062.3 resolve 22.8 route 0.0 ingress 0.0 lance 283368.4 fold 964.7 total 304545.6 cold 308744.7 | scanned 10000000 sel 100000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7910.3 resolve 15.8 route 0.0 ingress 1518.6 lance 173218.1 fold 136.0 total 189203.6 cold 187591.7 | scanned 10100000 sel 100000 bytes 28576688 ( 36.3% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 10.3 route 7186.4 ingress 1.8 lance 2461.8 fold 89.1 total 9526.1 cold 10066.3 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 10.0 route 6973.0 ingress 1.5 lance 2458.8 fold 58.6 total 9596.0 cold 9174.0 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- clustered target 1.0% actual 1.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7713.6 resolve 34.0 route 0.0 ingress 0.0 lance 976632.3 fold 2993.1 total 1034965.2 cold 986057.0 | scanned 10000000 sel 100000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7872.3 resolve 24.8 route 0.0 ingress 1571.9 lance 191985.1 fold 1115.2 total 207564.8 cold 225119.8 | scanned 10100000 sel 100000 bytes 30116336 ( 13.1% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 20.2 route 6975.2 ingress 3.4 lance 5977.1 fold 691.5 total 13860.3 cold 17560.7 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 17.9 route 7259.1 ingress 2.8 lance 6163.1 fold 524.2 total 13983.3 cold 13103.4 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 8451.5 resolve 34.4 route 0.0 ingress 0.0 lance 994974.1 fold 3642.2 total 1038477.0 cold 3061108.3 | scanned 10000000 sel 100000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 8579.7 resolve 24.8 route 0.0 ingress 1610.3 lance 211895.4 fold 755.9 total 227616.4 cold 212870.1 | scanned 10100000 sel 100000 bytes 30116336 ( 13.1% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 18.0 route 7145.6 ingress 1.9 lance 6443.4 fold 548.1 total 14191.7 cold 14274.1 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 17.9 route 9641.9 ingress 1.4 lance 7702.5 fold 466.6 total 19853.8 cold 14118.4 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) -- scattered target 10.0% actual 10.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10155.7 resolve 22.2 route 0.0 ingress 0.0 lance 186622.4 fold 6313.1 total 209771.1 cold 215265.5 | scanned 10000000 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 9974.7 resolve 17.9 route 0.0 ingress 44385.2 lance 516587.7 fold 445.1 total 578405.6 cold 597901.0 | scanned 11001669 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 17.3 route 95464.3 ingress 109378.8 lance 296595.0 fold 410.1 total 502389.7 cold 489659.9 | scanned 1001669 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 22.1 route 92694.4 ingress 0.1 lance 180388.2 fold 28225.4 total 306880.4 cold 324516.6 | scanned 10000000 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10200.6 resolve 25.3 route 0.0 ingress 0.0 lance 181857.5 fold 5846.3 total 201475.6 cold 208337.4 | scanned 10000000 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10188.0 resolve 19.6 route 0.0 ingress 47448.2 lance 506004.7 fold 455.1 total 573987.1 cold 573097.7 | scanned 11001669 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 21.1 route 96759.8 ingress 55868.0 lance 290211.4 fold 401.4 total 445607.8 cold 471680.5 | scanned 1001669 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 22.2 route 99236.3 ingress 0.1 lance 172709.2 fold 31991.2 total 310325.6 cold 314312.2 | scanned 10000000 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 10.0% actual 10.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) - A-full Lance-backed | where 11031.4 resolve 30.6 route 0.0 ingress 0.0 lance 321375.7 fold 26150.5 total 370518.9 cold 382440.7 | scanned 10000000 sel 1001669 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10305.4 resolve 28.3 route 0.0 ingress 45418.2 lance 1065877.3 fold 1994.5 total 1134078.2 cold 1076888.7 | scanned 11001669 sel 1001669 bytes 75948192 (120.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 19.9 route 103407.1 ingress 119960.0 lance 833890.0 fold 1837.1 total 1063140.3 cold 1048035.9 | scanned 1001669 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 29.5 route 97147.6 ingress 0.1 lance 356339.0 fold 46616.3 total 508455.3 cold 514471.6 | scanned 10000000 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 9962.2 resolve 27.1 route 0.0 ingress 0.0 lance 290766.1 fold 22345.6 total 333068.1 cold 347548.9 | scanned 10000000 sel 1001669 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10067.1 resolve 22.1 route 0.0 ingress 43823.4 lance 965948.1 fold 1993.6 total 1033043.5 cold 1006502.3 | scanned 11001669 sel 1001669 bytes 75948192 (120.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 21.9 route 96772.9 ingress 57454.6 lance 773128.5 fold 2016.0 total 931066.0 cold 961729.7 | scanned 1001669 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 28.0 route 93806.6 ingress 0.1 lance 320104.9 fold 47210.2 total 474959.5 cold 501543.4 | scanned 10000000 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 10.0% actual 10.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10913.9 resolve 37.6 route 0.0 ingress 0.0 lance 946298.5 fold 95686.6 total 1093180.5 cold 1063376.8 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10574.4 resolve 34.1 route 0.0 ingress 46334.9 lance 3074846.0 fold 7744.9 total 3150294.4 cold 3173415.8 | scanned 11001669 sel 1001669 bytes 227844576 (112.5% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 38.2 route 98604.4 ingress 115463.6 lance 2789111.5 fold 8048.2 total 3019443.5 cold 3055576.5 | scanned 1001669 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 37.3 route 91563.9 ingress 0.1 lance 980865.3 fold 108818.3 total 1232465.4 cold 1228371.3 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10041.7 resolve 37.4 route 0.0 ingress 0.0 lance 885972.4 fold 86031.1 total 1006444.9 cold 1602153.2 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 11203.5 resolve 30.7 route 0.0 ingress 51659.5 lance 2901665.8 fold 7954.8 total 2978742.5 cold 3144643.5 | scanned 11001669 sel 1001669 bytes 227844576 (112.5% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 32.5 route 98638.9 ingress 55939.0 lance 2814171.6 fold 7828.8 total 2980639.6 cold 3012160.1 | scanned 1001669 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 37.7 route 94060.6 ingress 0.1 lance 985803.0 fold 108035.7 total 1228008.4 cold 1930362.0 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 10.0% actual 10.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8607.8 resolve 20.5 route 0.0 ingress 0.0 lance 155320.5 fold 1266.3 total 169840.2 cold 156140.9 | scanned 10000000 sel 1000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 8000.6 resolve 14.1 route 0.0 ingress 21015.9 lance 183114.2 fold 373.0 total 216511.3 cold 211296.5 | scanned 11000000 sel 1000000 bytes 29330960 ( 72.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 12.6 route 72860.4 ingress 13.2 lance 8413.2 fold 408.9 total 81896.6 cold 87134.3 | scanned 1000000 sel 1000000 bytes 1267488 ( 3.1% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 19.9 route 73180.9 ingress 0.1 lance 172451.4 fold 23993.2 total 272917.0 cold 284288.1 | scanned 10000000 sel 1000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 8391.7 resolve 19.8 route 0.0 ingress 0.0 lance 142543.0 fold 1328.5 total 156192.7 cold 152648.4 | scanned 10000000 sel 1000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 9161.5 resolve 13.6 route 0.0 ingress 19281.5 lance 182682.8 fold 337.5 total 217165.1 cold 233894.1 | scanned 11000000 sel 1000000 bytes 29330960 ( 72.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 12.9 route 72230.4 ingress 9.5 lance 7470.9 fold 472.8 total 80189.4 cold 80914.2 | scanned 1000000 sel 1000000 bytes 1267488 ( 3.1% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 21.3 route 72554.1 ingress 0.1 lance 173849.0 fold 21846.0 total 273543.2 cold 268525.9 | scanned 10000000 sel 1000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 10.0% actual 10.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7556.4 resolve 23.5 route 0.0 ingress 0.0 lance 280049.3 fold 4638.6 total 303130.5 cold 307298.2 | scanned 10000000 sel 1000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7981.6 resolve 16.5 route 0.0 ingress 21167.9 lance 198575.2 fold 1801.4 total 234978.5 cold 236945.4 | scanned 11000000 sel 1000000 bytes 33133424 ( 42.1% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 15.6 route 72326.1 ingress 13.8 lance 16446.5 fold 1995.9 total 91115.6 cold 95864.6 | scanned 1000000 sel 1000000 bytes 5069952 ( 6.4% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 23.8 route 71815.6 ingress 0.1 lance 338248.3 fold 24433.8 total 446557.1 cold 439905.4 | scanned 10000000 sel 1000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 7614.7 resolve 24.9 route 0.0 ingress 0.0 lance 284073.0 fold 4877.6 total 305462.9 cold 324454.7 | scanned 10000000 sel 1000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7988.2 resolve 17.4 route 0.0 ingress 18783.3 lance 197066.7 fold 1852.8 total 232786.8 cold 224201.4 | scanned 11000000 sel 1000000 bytes 33133424 ( 42.1% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 15.9 route 73993.0 ingress 11.6 lance 16347.6 fold 2097.7 total 93993.7 cold 94322.7 | scanned 1000000 sel 1000000 bytes 5069952 ( 6.4% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 24.1 route 71509.0 ingress 0.1 lance 319740.7 fold 24473.1 total 428882.7 cold 442966.8 | scanned 10000000 sel 1000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 10.0% actual 10.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7740.9 resolve 36.2 route 0.0 ingress 0.0 lance 1014329.4 fold 19493.3 total 1077853.2 cold 1066603.0 | scanned 10000000 sel 1000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7734.1 resolve 34.0 route 0.0 ingress 18902.5 lance 278922.9 fold 8528.1 total 320264.3 cold 324735.0 | scanned 11000000 sel 1000000 bytes 48343280 ( 21.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 27.8 route 74008.9 ingress 13.2 lance 71128.6 fold 8203.7 total 161528.8 cold 160260.0 | scanned 1000000 sel 1000000 bytes 20279808 ( 8.8% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 39.0 route 73936.8 ingress 0.1 lance 1122052.4 fold 39350.6 total 1300127.3 cold 1219831.9 | scanned 10000000 sel 1000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 7439.0 resolve 34.1 route 0.0 ingress 0.0 lance 968765.6 fold 19311.3 total 1035375.2 cold 1664460.9 | scanned 10000000 sel 1000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 7966.1 resolve 27.8 route 0.0 ingress 18953.0 lance 261831.4 fold 8471.5 total 306443.8 cold 350711.5 | scanned 11000000 sel 1000000 bytes 48343280 ( 21.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 28.7 route 72748.3 ingress 8.4 lance 75057.2 fold 8491.8 total 163338.4 cold 161749.9 | scanned 1000000 sel 1000000 bytes 20279808 ( 8.8% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 35.6 route 74090.2 ingress 0.1 lance 1387515.3 fold 37799.7 total 1536086.9 cold 1198206.1 | scanned 10000000 sel 1000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 50.0% actual 50.061% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10719.4 resolve 21.0 route 0.0 ingress 0.0 lance 192360.9 fold 9887.7 total 220645.7 cold 214372.8 | scanned 10000000 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 13027.7 resolve 20.6 route 0.0 ingress 147885.8 lance 1264681.8 fold 2553.2 total 1440493.9 cold 1366702.8 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 11644.1 resolve 18.1 route 0.0 ingress 155370.6 lance 1264301.5 fold 2454.1 total 1443967.8 cold 1390000.6 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 23.8 route 413020.4 ingress 265138.3 lance 1114157.3 fold 2647.2 total 1812509.1 cold 1836722.8 | scanned 5006105 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 23.6 route 379145.3 ingress 0.1 lance 190973.7 fold 38915.8 total 616627.0 cold 612960.6 | scanned 10000000 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10668.6 resolve 21.2 route 0.0 ingress 0.0 lance 189037.7 fold 9149.6 total 213585.1 cold 258146.0 | scanned 10000000 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10434.6 resolve 19.9 route 0.0 ingress 157805.9 lance 1275026.5 fold 2548.4 total 1457116.5 cold 1463167.3 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 10283.5 resolve 19.1 route 0.0 ingress 140457.9 lance 1240161.8 fold 2552.8 total 1415310.3 cold 1474978.6 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 18.8 route 406068.0 ingress 124905.0 lance 1092283.9 fold 2532.0 total 1631658.8 cold 1608919.8 | scanned 5006105 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 22.4 route 379897.5 ingress 0.1 lance 186972.1 fold 38577.4 total 613457.8 cold 630698.5 | scanned 10000000 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 50.0% actual 50.061% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10367.5 resolve 27.0 route 0.0 ingress 0.0 lance 294877.8 fold 35616.2 total 352738.8 cold 364086.9 | scanned 10000000 sel 5006105 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10360.0 resolve 26.4 route 0.0 ingress 148915.0 lance 3407470.6 fold 11465.3 total 3626822.1 cold 3573391.1 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 11011.7 resolve 25.1 route 0.0 ingress 148106.6 lance 3323058.6 fold 10011.1 total 3507409.2 cold 3647731.0 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 28.2 route 429149.0 ingress 304834.3 lance 3217519.7 fold 10597.0 total 4035830.9 cold 3761312.0 | scanned 5006105 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 27.2 route 396047.9 ingress 0.1 lance 357557.2 fold 65416.6 total 835435.0 cold 815435.2 | scanned 10000000 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 10384.1 resolve 25.9 route 0.0 ingress 0.0 lance 293148.2 fold 36312.9 total 352529.1 cold 333724.5 | scanned 10000000 sel 5006105 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10826.2 resolve 23.4 route 0.0 ingress 142835.3 lance 3180954.6 fold 10145.6 total 3356482.7 cold 3286083.6 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 11394.6 resolve 23.2 route 0.0 ingress 148386.6 lance 3154953.3 fold 10177.0 total 3340402.7 cold 3232648.8 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 24.1 route 406862.6 ingress 123402.1 lance 3050814.1 fold 10912.3 total 3610219.4 cold 3614986.4 | scanned 5006105 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 26.0 route 388160.2 ingress 0.1 lance 325318.4 fold 64014.4 total 788235.9 cold 812171.8 | scanned 10000000 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- scattered target 50.0% actual 50.061% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) - A-full Lance-backed | where 9791.2 resolve 39.0 route 0.0 ingress 0.0 lance 964873.6 fold 139004.0 total 1163500.2 cold 1169210.0 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10322.2 resolve 36.2 route 0.0 ingress 156145.7 lance 11223882.2 fold 39101.5 total 11483954.2 cold 11703181.2 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 11077.4 resolve 38.7 route 0.0 ingress 152089.1 lance 11024802.7 fold 41993.8 total 11266109.0 cold 11194269.3 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 38.1 route 433247.8 ingress 267904.9 lance 10648074.9 fold 44655.8 total 11428847.8 cold 11260166.1 | scanned 5006105 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 39.9 route 379619.2 ingress 0.1 lance 1113109.6 fold 175777.9 total 1703210.0 cold 1689868.0 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 11192.6 resolve 40.2 route 0.0 ingress 0.0 lance 1029054.7 fold 144726.5 total 1217495.8 cold 1512702.7 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 10930.9 resolve 39.2 route 0.0 ingress 138706.3 lance 10925501.3 fold 41911.1 total 11163480.5 cold 11428639.2 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 11308.0 resolve 38.7 route 0.0 ingress 141029.6 lance 11331486.0 fold 41719.8 total 11556960.9 cold 11619834.8 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 39.8 route 416594.8 ingress 123161.5 lance 11019171.5 fold 42957.8 total 11634425.9 cold 12050582.7 | scanned 5006105 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 38.9 route 382661.2 ingress 0.1 lance 1006921.9 fold 168587.0 total 1609495.9 cold 1677890.9 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 50.0% actual 50.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7848.3 resolve 19.6 route 0.0 ingress 0.0 lance 134781.7 fold 5577.4 total 153026.7 cold 179169.6 | scanned 10000000 sel 5000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7803.7 resolve 18.8 route 0.0 ingress 146219.7 lance 235038.4 fold 2854.5 total 408595.6 cold 487667.2 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 7827.1 resolve 16.0 route 0.0 ingress 140511.9 lance 228474.7 fold 2558.1 total 386873.4 cold 400777.3 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 16.0 route 382153.3 ingress 36.3 lance 43883.8 fold 2676.2 total 435760.9 cold 421718.5 | scanned 5000000 sel 5000000 bytes 6329664 ( 15.5% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 20.7 route 380864.2 ingress 0.1 lance 182737.8 fold 31575.9 total 604954.5 cold 601639.7 | scanned 10000000 sel 5000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 8387.3 resolve 18.8 route 0.0 ingress 0.0 lance 136721.5 fold 5402.7 total 154159.6 cold 158857.3 | scanned 10000000 sel 5000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 9107.5 resolve 16.7 route 0.0 ingress 151043.8 lance 225193.3 fold 2751.2 total 395866.5 cold 409615.2 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 8008.2 resolve 15.9 route 0.0 ingress 135983.5 lance 223245.0 fold 2396.1 total 379046.1 cold 384567.0 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 16.5 route 370158.4 ingress 27.0 lance 44490.1 fold 2564.2 total 418645.9 cold 400381.3 | scanned 5000000 sel 5000000 bytes 6329664 ( 15.5% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 20.9 route 370127.1 ingress 0.1 lance 180356.2 fold 29641.7 total 595103.3 cold 591915.4 | scanned 10000000 sel 5000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 50.0% actual 50.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8032.5 resolve 24.7 route 0.0 ingress 0.0 lance 293784.7 fold 21115.2 total 335521.6 cold 351990.3 | scanned 10000000 sel 5000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7678.5 resolve 22.3 route 0.0 ingress 137644.8 lance 340742.4 fold 11316.5 total 511430.3 cold 471510.9 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 9010.1 resolve 20.0 route 0.0 ingress 161571.5 lance 304496.2 fold 10092.4 total 495553.0 cold 484011.9 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 22.0 route 373217.7 ingress 36.8 lance 133951.4 fold 11005.7 total 532690.1 cold 505669.1 | scanned 5000000 sel 5000000 bytes 25318656 ( 32.2% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 25.6 route 372731.6 ingress 0.1 lance 369704.0 fold 45799.8 total 792887.3 cold 863425.1 | scanned 10000000 sel 5000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 8362.4 resolve 25.1 route 0.0 ingress 0.0 lance 293660.3 fold 21568.9 total 336487.7 cold 338396.4 | scanned 10000000 sel 5000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 8477.4 resolve 20.7 route 0.0 ingress 170297.9 lance 327759.7 fold 10651.7 total 509993.8 cold 492648.1 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 8336.3 resolve 21.9 route 0.0 ingress 143129.6 lance 326572.9 fold 10206.6 total 497622.7 cold 524229.0 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 21.2 route 367890.6 ingress 29.9 lance 121113.9 fold 10652.3 total 512340.8 cold 515621.6 | scanned 5000000 sel 5000000 bytes 25318656 ( 32.2% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 25.6 route 379682.5 ingress 0.1 lance 338371.7 fold 44741.3 total 775945.2 cold 743365.9 | scanned 10000000 sel 5000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) -- clustered target 50.0% actual 50.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8178.7 resolve 38.4 route 0.0 ingress 0.0 lance 1059049.8 fold 86481.4 total 1196625.3 cold 1203390.6 | scanned 10000000 sel 5000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 9527.3 resolve 35.4 route 0.0 ingress 153320.2 lance 680320.8 fold 41717.6 total 930447.5 cold 872082.1 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 8620.2 resolve 38.6 route 0.0 ingress 191782.1 lance 723638.9 fold 40909.9 total 990657.5 cold 961676.8 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 39.6 route 377818.4 ingress 25.0 lance 505224.4 fold 41029.0 total 957842.4 cold 917075.6 | scanned 5000000 sel 5000000 bytes 101274624 ( 43.9% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 38.8 route 368828.7 ingress 0.1 lance 1019101.3 fold 111882.0 total 1561248.3 cold 1560474.3 | scanned 10000000 sel 5000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + A-full Lance-backed | where 8249.7 resolve 37.7 route 0.0 ingress 0.0 lance 963492.5 fold 80886.3 total 1094708.6 cold 1109860.0 | scanned 10000000 sel 5000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-allow Lance-backed | where 8063.8 resolve 35.8 route 0.0 ingress 146843.8 lance 692267.6 fold 45293.4 total 922238.3 cold 855740.0 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + B-block Lance-backed | where 7926.6 resolve 43.0 route 0.0 ingress 149100.6 lance 670959.4 fold 42537.0 total 893615.2 cold 899936.4 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) + C-exact Lance-backed | where 0.0 resolve 38.5 route 382213.7 ingress 20.1 lance 482903.0 fold 45734.1 total 930495.1 cold 912487.5 | scanned 5000000 sel 5000000 bytes 101274624 ( 43.9% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) + C-default Lance-backed | where 0.0 resolve 37.8 route 382916.8 ingress 0.1 lance 1016705.9 fold 105164.0 total 1571810.3 cold 1564201.7 | scanned 10000000 sel 5000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) # wrote /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/lancearm/lance_arm/n10000000/lance_arm.json # all oracle and refusal checks passed From 8cc09f6d4f739fb50b8b2f853ca14de83ea14802 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:53:40 +0000 Subject: [PATCH 21/23] lab: compress D-GLOBAL-WHERE P2 measurements (-5,927 lines, nothing lost) The measurement data headed for main is reduced without dropping any number that is cited or used: - where_duckdb.json (1M, 10M): one record per line instead of one field per line, 2,072 -> 116 lines each. The JSON round-trip is asserted equal, and compare_where.py regenerates both compare_where.md files byte for byte from the compacted files. - Deleted the raw console logs: - wk1m/wk10m/bw: their per-case data is in where_ours.json and where_duckdb.json. - cw: it is exactly the two compare_where.md files concatenated. - proj1m/proj10m: their data is in project.json. - results/run_summary.log keeps the one thing only those logs held: the FAILED-GATE totals and the oracle verdict lines (353/648 and 23/41). - Deleted the 10M EXPLAIN plans, which repeat the 1M ones. None was cited. Citations of cw.log now point at the same lines of compare_where.md. The remaining ms figures in ENGINEERING-PARITY.md and LANCE-TRACE.md are converted to us. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../ENGINEERING-PARITY.md | 12 +- .../LANCE-TRACE.md | 4 +- .../results/bw.log | 223 -- .../results/cw.log | 338 --- .../results/proj10m.log | 117 - .../results/proj1m.log | 99 - .../results/where/n1000000/where_duckdb.json | 2187 +---------------- .../n10000000/explain/k17_medium_and.txt | 143 -- .../n10000000/explain/k1_medium_single.txt | 127 - .../where/n10000000/explain/k3_medium_and.txt | 131 - .../where/n10000000/explain/k8_medium_and.txt | 136 - .../results/where/n10000000/where_duckdb.json | 2187 +---------------- .../results/wk10m.log | 762 ------ .../results/wk1m.log | 470 ---- 14 files changed, 238 insertions(+), 6698 deletions(-) delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/bw.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/cw.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log diff --git a/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md b/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md index cfae6ada0..219894546 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md @@ -71,14 +71,14 @@ Notes on P3 and P4: ### 4. Short-circuit for EXISTS (P2 filter pushdown and LIMIT; the P2-probe evidence) - **(a) Problem.** Stop as soon as the answer is known. -- **(b) DuckDB mechanism and lifetime.** EXISTS ran in about 0.9–2.7 ms, flat in K (`results/cw.log:25-51`). This suggests a scan that stops at the first qualifying chunk. **Lifetime: per query.** The mechanism is CLAIMED-from-timing; I did not read the operator. +- **(b) DuckDB mechanism and lifetime.** EXISTS ran in about 900–2,700 µs, flat in K (`results/where/n1000000/compare_where.md:25-51`). This suggests a scan that stops at the first qualifying chunk. **Lifetime: per query.** The mechanism is CLAIMED-from-timing; I did not read the operator. - **(c) Our equivalent.** - `Terminal::Any` (`mask-risc/src/ir.rs:292`). - The executor loops over every tile (`exec.rs:1632`) and does `any |= mask_any(..)` with **no break** (`exec.rs:1793-1794`). VERIFIED-IN-CODE: the loop and the OR; I did not trace every Any path. - ndarray `mask_any` has no early exit (local `ndarray/src/simd_masking_ops.rs:4864-4870`; this is gap G8, CROSSWALK). - **(d) Status.** **MISSING WIRING.** It is one break per tile, after the first tile with a set bit. No new capability is needed. -- **(e) Falsifier.** P2 probe, `cw.log`: - - At K ≥ 8 our `any` costs about the same as our `count` (1.4–3.9 ms), while DuckDB EXISTS costs 0.88–2.7 ms. +- **(e) Falsifier.** P2 probe, `results/where/n1000000/compare_where.md`: + - At K ≥ 8 our `any` costs about the same as our `count` (1,400–3,900 µs), while DuckDB EXISTS costs 880–2,700 µs. - 17 LOSS rows, e.g. `k24_large_and` at a ratio of 0.36. - After the break, `any` should fall with the position of the first hit, not with N. @@ -96,7 +96,7 @@ Notes on P3 and P4: - Resident data needs no pruning: it is already in memory. - **(d) Status.** ALREADY WORKS (storage), with **MISSING WIRING**: - one coordinate→`_rowid` authority, plus bulk word→`RowAddrTreeMap` (CROSSWALK A.5; S-INGRESS OPEN); - - statistics folding for tautologies or contradictions: the case `adv_contradictory_17` lands at PARITY rather than a win (`cw.log:61`). + - statistics folding for tautologies or contradictions: the case `adv_contradictory_17` lands at PARITY rather than a win (`results/where/n1000000/compare_where.md:61`). - **(e) Falsifier.** - H14d: an empty R reads 0 B; clustered 1 % reads 0.19×; uniform 1 % reads 1.00× (CROSSWALK A.3). - The integrated DR64→Lance→Quack path is **unmeasured**. @@ -109,7 +109,7 @@ Notes on P3 and P4: - A mask fold costs per word, not per surviving row, so a sparse mask does not run underfull. It costs N/64 words regardless of density. - `materialize_rows` is egress only (CROSSWALK #16). - **(d) Status.** INTENTIONALLY DIFFERENT: the representation removes the problem. The open question is the sparse end. With very few survivors, whole-word passes are wasted: D-DR-FOLD found "A's per-row lane term" and that C wins when "the chain dies early". That remedy is item 3, not compaction. -- **(e) Falsifier.** At very low survivor density, a fold of K predicates costs K·N/64 words while survivors≪N/64. The `tiny` rows in `cw.log` show our count flat in population (e.g. k24 tiny 3.8 ms vs large 4.2 ms). Prediction: compaction would not help that; switching direction (item 3) would. +- **(e) Falsifier.** At very low survivor density, a fold of K predicates costs K·N/64 words while survivors≪N/64. The `tiny` rows in `results/where/n1000000/compare_where.md` show our count flat in population (e.g. k24 tiny 3,800 µs vs large 4,200 µs). Prediction: compaction would not help that; switching direction (item 3) would. ### Routing (P2-probe composition) @@ -142,7 +142,7 @@ We **cannot** skip it: ## Ranked assimilation candidates (producer → missing edge → consumer → test → owner gate) -1. `Terminal::Any` → per-tile early break (`exec.rs:1793`) → Quack EXISTS → `cw.log` K≥8 EXISTS cases, plus a can-stay-silent test on an empty mask → mask-risc owner. +1. `Terminal::Any` → per-tile early break (`exec.rs:1793`) → Quack EXISTS → the K≥8 EXISTS cases in `results/where/*/compare_where.md`, plus a can-stay-silent test on an empty mask → mask-risc owner. 2. Presence density (popcount of resident planes) → choice of evaluation direction in the lowering → Quack multi-hop / W4 → P0 `multi_skewed`/`multi_dense` W4 + the D-DR-FOLD sweep → Quack owner (D-DR-FOLD D1 ruling). 3. P1 Arm C derived index → a frame-scoped binding reused across queries → composition / route stage → `comp_both.log` route column at sel 50k → DRF/D-GLOBAL-WHERE owner. 4. DR mask → one coordinate→`_rowid` authority plus bulk `RowAddrTreeMap` → Lance masked fetch → H14d cells + the integrated path (unmeasured) → Lance-seam owner, gated on the S-INGRESS ruling. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md b/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md index af7cd6f12..c2d14acb1 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md @@ -79,10 +79,10 @@ No production (workspace `src/`) caller of `with_row_addr_prefilter` exists in ` - #1789: chunk-count predictor fails; lance-io merges at 4 KiB on local temp dirs vs 64 KiB cloud default. **f) Where time goes** -- Storage: not timed by rule (A.3 `:262-264`); bytes from page cache only (dr-fold-map `:5`). #1633: full read 9.81–30.71 ms, Arm B warm 0.37–38.98 ms, attest 6.7–9.8 ms (ms figures, quoted from PR body, not gated). +- Storage: not timed by rule (A.3 `:262-264`); bytes from page cache only (dr-fold-map `:5`). #1633: full read 9,810–30,710 µs, Arm B warm 370–38,980 µs, attest 6,700–9,800 µs (quoted from the PR body, not gated). - DR routing: P0 REPORT `:112` — cold losses on every `multi_*` dataset come from "**addressing**: … `MapTable::locate` per edge endpoint … O(tiles) per id"; P0 entry `:18`: "Routing once and reusing costs 5 µs against 650–970 µs." P1 `comp_both.log:18-28` (N=1M): `route` 480.6 µs → 282,447.8 µs, `fetch` (in-memory generator) 68–14,086 µs, `fold/set` 60–4,358 µs, `discover` 209–641 µs; FAILED-GATE on 6 of 10 rows. Route dominates every case and grows with scatter (route +7,397.6 µs/set scatter vs +215.2 contig, `:42-43`). - Mask ingress: never timed on the Lance side except `lance_source_probe` `mask_ms` (`:376-378`); A.4 lists `C_mask` as an OPEN seam. -- Fold: ns/word scale in H14d (2–10 ns/word stage 2, ~6 ns/lane load); in P1 compose, fold/set reaches ms only because sets are 50k–200k ids (`comp_both.log:20-28`). +- Fold: ns/word scale in H14d (2–10 ns/word stage 2, ~6 ns/lane load); in P1 compose, fold/set exceeds 1,000 µs only because sets are 50k–200k ids (`comp_both.log:20-28`). ## Step 4 — classification diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/bw.log b/.claude/probes/2026-11-03-d-global-where-p1/results/bw.log deleted file mode 100644 index d60562951..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/bw.log +++ /dev/null @@ -1,223 +0,0 @@ -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 built in 432942 us, analyze 362 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k1_tiny_single count=1000 warm 1918.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k1_medium_single count=10000 warm 1739.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k1_large_single count=500005 warm 2580.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_tiny_and count=765 warm 4638.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_medium_and count=10139 warm 3490.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_large_and count=499628 warm 3341.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_tiny_or count=999 warm 2403.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_medium_or count=10000 warm 6476.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_large_or count=500615 warm 21854.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_tiny_mixed count=428 warm 3714.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_medium_mixed count=9819 warm 4009.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k3_large_mixed count=499424 warm 15868.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_tiny_and count=46 warm 4496.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_medium_and count=10097 warm 6335.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_large_and count=498124 warm 7755.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_tiny_or count=999 warm 3547.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_medium_or count=9997 warm 16571.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_large_or count=498831 warm 30636.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_tiny_mixed count=91 warm 14878.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_medium_mixed count=9901 warm 27575.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k8_large_mixed count=500157 warm 74454.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_tiny_and count=45 warm 15133.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_medium_and count=9754 warm 17023.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_large_and count=499819 warm 20204.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_tiny_or count=1000 warm 4772.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_medium_or count=10000 warm 22157.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_large_or count=505114 warm 46298.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_tiny_mixed count=46 warm 14384.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_medium_mixed count=10098 warm 32478.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k17_large_mixed count=498269 warm 139929.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_tiny_and count=50 warm 14418.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_medium_and count=9900 warm 21674.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_large_and count=502071 warm 25627.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_tiny_or count=1001 warm 5061.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_medium_or count=9995 warm 23987.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_large_or count=495651 warm 54222.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_tiny_mixed count=48 warm 77685.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_medium_mixed count=9953 warm 105626.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 k24_large_mixed count=500471 warm 210186.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_one_everything count=10000 warm 1736.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_one_nothing count=1002 warm 3253.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_or_one_everything count=1000000 warm 568.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_or_one_nothing count=1000 warm 2203.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_16_nonselective count=827152 warm 21284.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_16_collapse_one count=46 warm 6147.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_correlated_2 count=500001 warm 2401.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_correlated_5 count=490001 warm 2414.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_contradictory_2 count=0 warm 349.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 adv_contradictory_17 count=0 warm 602.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_and count=99875 warm 2862.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_not count=450007 warm 2190.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_or count=190006 warm 9313.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_not_and count=850017 warm 26557.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=1 null_and_5 count=267454 warm 4991.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 built in 407967 us, analyze 425 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k1_tiny_single count=1000 warm 1139.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k1_medium_single count=10000 warm 1194.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k1_large_single count=500005 warm 1018.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_tiny_and count=765 warm 1775.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_medium_and count=10139 warm 1711.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_large_and count=499628 warm 1989.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_tiny_or count=999 warm 1615.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_medium_or count=10000 warm 3302.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_large_or count=500615 warm 7746.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_tiny_mixed count=428 warm 2406.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_medium_mixed count=9819 warm 2341.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k3_large_mixed count=499424 warm 6041.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_tiny_and count=46 warm 2556.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_medium_and count=10097 warm 3211.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_large_and count=498124 warm 3575.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_tiny_or count=999 warm 2206.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_medium_or count=9997 warm 7392.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_large_or count=498831 warm 10587.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_tiny_mixed count=91 warm 6487.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_medium_mixed count=9901 warm 10984.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k8_large_mixed count=500157 warm 26765.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_tiny_and count=45 warm 5477.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_medium_and count=9754 warm 7021.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_large_and count=499819 warm 9519.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_tiny_or count=1000 warm 3657.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_medium_or count=10000 warm 9796.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_large_or count=505114 warm 17303.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_tiny_mixed count=46 warm 7023.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_medium_mixed count=10098 warm 14138.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k17_large_mixed count=498269 warm 49926.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_tiny_and count=50 warm 5905.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_medium_and count=9900 warm 7744.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_large_and count=502071 warm 9555.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_tiny_or count=1001 warm 2949.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_medium_or count=9995 warm 9341.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_large_or count=495651 warm 21958.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_tiny_mixed count=48 warm 26730.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_medium_mixed count=9953 warm 36972.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 k24_large_mixed count=500471 warm 60307.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_one_everything count=10000 warm 1192.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_one_nothing count=1002 warm 1669.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_or_one_everything count=1000000 warm 714.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_or_one_nothing count=1000 warm 1582.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_16_nonselective count=827152 warm 7983.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_16_collapse_one count=46 warm 3516.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_correlated_2 count=500001 warm 1566.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_correlated_5 count=490001 warm 1658.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_contradictory_2 count=0 warm 554.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 adv_contradictory_17 count=0 warm 1155.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_and count=99875 warm 1765.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_not count=450007 warm 1289.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_or count=190006 warm 3894.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_not_and count=850017 warm 9881.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000 threads=4 null_and_5 count=267454 warm 2810.4 us -wrote 108 records to /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n1000000/where_duckdb.json -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 built in 5653755 us, analyze 943 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k1_tiny_single count=0 warm 477.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k1_medium_single count=100002 warm 16065.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k1_large_single count=5000008 warm 14682.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_tiny_and count=0 warm 36607.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_medium_and count=101386 warm 34347.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_large_and count=4996187 warm 41119.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_tiny_or count=0 warm 539.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_medium_or count=100001 warm 66221.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_large_or count=5006214 warm 192171.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_tiny_mixed count=0 warm 40150.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_medium_mixed count=98184 warm 47956.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k3_large_mixed count=4994319 warm 145146.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_tiny_and count=470 warm 54096.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_medium_and count=100924 warm 83866.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_large_and count=4981051 warm 108897.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_tiny_or count=0 warm 702.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_medium_or count=99996 warm 173318.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_large_or count=4988280 warm 310465.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_tiny_mixed count=935 warm 150918.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_medium_mixed count=99047 warm 263585.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k8_large_mixed count=5001665 warm 717301.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_tiny_and count=467 warm 142113.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_medium_and count=97561 warm 159095.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_large_and count=4998174 warm 212825.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_tiny_or count=0 warm 1041.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_medium_or count=100002 warm 225787.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_large_or count=5051202 warm 478393.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_tiny_mixed count=467 warm 136162.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_medium_mixed count=100925 warm 293818.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k17_large_mixed count=4982809 warm 1382934.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_tiny_and count=472 warm 147036.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_medium_and count=99057 warm 188568.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_large_and count=5020727 warm 248329.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_tiny_or count=0 warm 1002.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_medium_or count=99996 warm 227149.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_large_or count=4956413 warm 572694.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_tiny_mixed count=470 warm 657116.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_medium_mixed count=99512 warm 932183.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 k24_large_mixed count=5004671 warm 2090124.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_one_everything count=100002 warm 14886.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_one_nothing count=10002 warm 25638.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_or_one_everything count=10000000 warm 847.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_or_one_nothing count=10000 warm 22805.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_16_nonselective count=8271472 warm 217536.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_16_collapse_one count=472 warm 64305.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_correlated_2 count=5000004 warm 28390.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_correlated_5 count=4900007 warm 31018.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_contradictory_2 count=0 warm 727.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 adv_contradictory_17 count=0 warm 711.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_and count=999196 warm 36063.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_not count=4499990 warm 20619.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_or count=1900011 warm 99873.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_not_and count=8500703 warm 268063.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=1 null_and_5 count=2674492 warm 70334.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 built in 4332828 us, analyze 613 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k1_tiny_single count=0 warm 749.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k1_medium_single count=100002 warm 4115.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k1_large_single count=5000008 warm 4483.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_tiny_and count=0 warm 10953.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_medium_and count=101386 warm 9979.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_large_and count=4996187 warm 12053.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_tiny_or count=0 warm 648.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_medium_or count=100001 warm 18505.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_large_or count=5006214 warm 50145.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_tiny_mixed count=0 warm 10858.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_medium_mixed count=98184 warm 13830.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k3_large_mixed count=4994319 warm 37466.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_tiny_and count=470 warm 16602.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_medium_and count=100924 warm 26988.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_large_and count=4981051 warm 30166.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_tiny_or count=0 warm 798.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_medium_or count=99996 warm 51723.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_large_or count=4988280 warm 84262.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_tiny_mixed count=935 warm 43857.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_medium_mixed count=99047 warm 78663.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k8_large_mixed count=5001665 warm 187067.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_tiny_and count=467 warm 41400.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_medium_and count=97561 warm 43895.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_large_and count=4998174 warm 57312.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_tiny_or count=0 warm 1239.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_medium_or count=100002 warm 70731.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_large_or count=5051202 warm 132258.5 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_tiny_mixed count=467 warm 37984.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_medium_mixed count=100925 warm 82346.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k17_large_mixed count=4982809 warm 363912.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_tiny_and count=472 warm 42430.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_medium_and count=99057 warm 55181.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_large_and count=5020727 warm 68975.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_tiny_or count=0 warm 1637.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_medium_or count=99996 warm 88748.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_large_or count=4956413 warm 215605.7 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_tiny_mixed count=470 warm 183991.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_medium_mixed count=99512 warm 268751.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 k24_large_mixed count=5004671 warm 556772.8 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_one_everything count=100002 warm 3725.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_one_nothing count=10002 warm 7062.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_or_one_everything count=10000000 warm 633.2 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_or_one_nothing count=10000 warm 5287.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_16_nonselective count=8271472 warm 57095.4 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_16_collapse_one count=472 warm 18712.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_correlated_2 count=5000004 warm 7181.1 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_correlated_5 count=4900007 warm 6878.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_contradictory_2 count=0 warm 656.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 adv_contradictory_17 count=0 warm 790.0 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_and count=999196 warm 8346.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_not count=4499990 warm 5210.3 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_or count=1900011 warm 26963.6 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_not_and count=8500703 warm 74116.9 us -/tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000 threads=4 null_and_5 count=2674492 warm 17936.4 us -wrote 108 records to /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/p2out/where/n10000000/where_duckdb.json -rc=0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/cw.log b/.claude/probes/2026-11-03-d-global-where-p1/results/cw.log deleted file mode 100644 index 7a290262b..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/cw.log +++ /dev/null @@ -1,338 +0,0 @@ -# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 1,000,000 - -Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). - -Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 1,000), k3_tiny_and (target 50, achieved 765), k3_tiny_or (target 50, achieved 999), k3_tiny_mixed (target 50, achieved 428), k8_tiny_or (target 50, achieved 999), k17_tiny_or (target 50, achieved 1,000), k24_tiny_or (target 50, achieved 1,001) - -DuckDB build + ANALYZE: threads 1: 433,303 us (build 432,942, analyze 362); threads 4: 408,392 us (build 407,967, analyze 425) - -### N = 1,000,000, DuckDB threads = 1 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1918.3 | 1981.6 | 589.4 | 13.64 | WIN | 14.09 | WIN | 4.13 | WIN | -| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1739.0 | 1799.0 | 852.7 | 12.55 | WIN | 12.98 | WIN | 6.18 | WIN | -| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 2580.9 | 2118.7 | 744.5 | 18.37 | WIN | 15.08 | WIN | 5.13 | WIN | -| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 4638.3 | 4933.6 | 842.4 | 8.17 | WIN | 8.69 | WIN | 1.48 | WIN | -| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 3490.4 | 4234.6 | 902.7 | 6.60 | WIN | 8.01 | WIN | 1.44 | WIN | -| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 3341.9 | 3411.8 | 874.7 | 6.29 | WIN | 6.42 | WIN | 1.67 | WIN | -| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 2403.1 | 2950.3 | 965.6 | 4.13 | WIN | 5.07 | WIN | 1.67 | WIN | -| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 6476.5 | 6880.9 | 691.1 | 11.61 | WIN | 12.34 | WIN | 1.26 | WIN | -| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 21854.9 | 20115.1 | 728.7 | 41.26 | WIN | 37.97 | WIN | 1.40 | WIN | -| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 3714.8 | 3736.2 | 730.0 | 6.79 | WIN | 6.83 | WIN | 1.34 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 4009.3 | 4073.9 | 721.6 | 7.47 | WIN | 7.59 | WIN | 1.36 | WIN | -| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 15868.0 | 14564.6 | 1095.7 | 30.74 | WIN | 28.22 | WIN | 2.15 | WIN | -| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 4496.9 | 4455.4 | 1017.4 | 4.69 | WIN | 4.64 | WIN | 1.05 | PARITY | -| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 6335.4 | 6355.1 | 881.7 | 4.65 | WIN | 4.66 | WIN | 0.65 | LOSS | -| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 7755.4 | 8069.1 | 881.5 | 5.41 | WIN | 5.63 | WIN | 0.62 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 3547.2 | 3593.4 | 870.5 | 2.48 | WIN | 2.51 | WIN | 0.61 | LOSS | -| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 16571.5 | 17463.0 | 954.4 | 10.83 | WIN | 11.41 | WIN | 0.64 | LOSS | -| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 30636.8 | 30176.8 | 946.6 | 21.62 | WIN | 21.29 | WIN | 0.67 | LOSS | -| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 14878.0 | 14745.0 | 1692.6 | 10.41 | WIN | 10.32 | WIN | 1.22 | WIN | -| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 27575.4 | 28051.8 | 1012.8 | 19.71 | WIN | 20.05 | WIN | 0.73 | LOSS | -| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 74454.8 | 75137.7 | 1078.1 | 49.87 | WIN | 50.33 | WIN | 0.71 | LOSS | -| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 15133.9 | 20282.9 | 2743.6 | 5.33 | WIN | 7.14 | WIN | 0.95 | PARITY | -| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 17023.7 | 15953.3 | 1162.3 | 5.85 | WIN | 5.48 | WIN | 0.40 | LOSS | -| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 20204.8 | 20222.8 | 1175.4 | 7.28 | WIN | 7.28 | WIN | 0.43 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 4772.1 | 5143.0 | 1062.8 | 1.68 | WIN | 1.81 | WIN | 0.37 | LOSS | -| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 22157.3 | 22382.8 | 1163.2 | 7.77 | WIN | 7.84 | WIN | 0.42 | LOSS | -| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 46298.8 | 55727.1 | 1836.9 | 16.54 | WIN | 19.91 | WIN | 0.66 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 14384.5 | 14225.7 | 2724.9 | 6.05 | WIN | 5.98 | WIN | 1.18 | WIN | -| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 32478.6 | 31778.7 | 1308.0 | 9.99 | WIN | 9.77 | WIN | 0.37 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 139929.3 | 137801.1 | 1552.6 | 49.30 | WIN | 48.55 | WIN | 0.53 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 14418.2 | 14223.2 | 1653.5 | 3.77 | WIN | 3.72 | WIN | 0.43 | LOSS | -| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 21674.5 | 26902.6 | 1422.5 | 5.45 | WIN | 6.76 | WIN | 0.38 | LOSS | -| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 25627.8 | 25957.0 | 1403.9 | 6.16 | WIN | 6.24 | WIN | 0.36 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 5061.8 | 5118.6 | 1249.9 | 1.36 | WIN | 1.37 | WIN | 0.33 | LOSS | -| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 23987.1 | 24625.8 | 1328.4 | 6.46 | WIN | 6.63 | WIN | 0.36 | LOSS | -| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 54222.9 | 81416.4 | 2195.6 | 14.46 | WIN | 21.72 | WIN | 0.58 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 77685.0 | 74593.2 | 1816.2 | 20.06 | WIN | 19.26 | WIN | 0.47 | LOSS | -| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 105626.4 | 102196.2 | 1680.8 | 28.30 | WIN | 27.38 | WIN | 0.44 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 210186.7 | 206403.2 | 2679.3 | 54.10 | WIN | 53.13 | WIN | 0.70 | LOSS | -| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1736.4 | 1791.5 | 629.8 | 6.10 | WIN | 6.29 | WIN | 2.13 | WIN | -| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 3253.2 | 3392.3 | 913.9 | 11.22 | WIN | 11.70 | WIN | 3.20 | WIN | -| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 568.5 | - | 635.3 | 1.70 | WIN | - | n/a | 2.02 | WIN | -| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 2203.6 | 2167.9 | 637.7 | 6.97 | WIN | 6.86 | WIN | 1.99 | WIN | -| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 21284.3 | 29563.1 | 1162.1 | 7.76 | WIN | 10.78 | WIN | 0.42 | LOSS | -| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 6147.6 | 6055.4 | 1327.0 | 6.41 | WIN | 6.32 | WIN | 1.37 | WIN | -| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 2401.5 | 2445.3 | 598.1 | 7.59 | WIN | 7.73 | WIN | 1.91 | WIN | -| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 2414.2 | 2579.0 | 652.2 | 3.94 | WIN | 4.21 | WIN | 1.03 | PARITY | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 349.8 | 492.8 | 464.3 | 1.29 | WIN | 1.81 | WIN | 1.74 | WIN | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 602.0 | 701.8 | 740.1 | 0.92 | PARITY | 1.07 | PARITY | 1.11 | WIN | -| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 2862.6 | 3037.3 | 679.7 | 8.26 | WIN | 8.77 | WIN | 2.00 | WIN | -| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 2190.0 | 2244.8 | 570.5 | 11.74 | WIN | 12.03 | WIN | 3.06 | WIN | -| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 9313.9 | 9174.3 | 662.5 | 26.97 | WIN | 26.57 | WIN | 1.86 | WIN | -| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 26557.3 | 27339.2 | 731.3 | 72.53 | WIN | 74.67 | WIN | 2.09 | WIN | -| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 4991.5 | 5394.2 | 802.3 | 5.36 | WIN | 5.79 | WIN | 0.86 | LOSS | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 1,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 692.0 | 9803.4 | 14.17 | WIN | 1997.3 | 28440.0 | 14.24 | WIN | 9.55 | -| count vs duck count, engine | 692.0 | 9860.8 | 14.25 | WIN | 1997.3 | 29328.2 | 14.68 | WIN | 9.89 | -| any vs duck exists, wall | 693.9 | 879.6 | 1.27 | WIN | 1995.5 | 1262.4 | 0.63 | LOSS | 0.83 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 139.9 | 2079.4 | 14.86 | WIN | 0.34 | -| 2-4 | 9 | 544.2 | 7310.8 | 13.43 | WIN | 0.46 | -| 5-16 | 9 | 1383.8 | 20694.6 | 14.96 | WIN | 0.14 | -| 17+ | 18 | 3340.2 | 47270.7 | 14.15 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. - -### N = 1,000,000, DuckDB threads = 4 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1139.3 | 1264.4 | 927.9 | 8.10 | WIN | 8.99 | WIN | 6.50 | WIN | -| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1194.6 | 1195.2 | 875.1 | 8.62 | WIN | 8.63 | WIN | 6.35 | WIN | -| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 1018.2 | 1065.5 | 967.3 | 7.25 | WIN | 7.58 | WIN | 6.66 | WIN | -| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 1775.7 | 1627.2 | 1010.9 | 3.13 | WIN | 2.87 | WIN | 1.78 | WIN | -| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 1711.6 | 1854.9 | 1328.7 | 3.24 | WIN | 3.51 | WIN | 2.12 | WIN | -| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 1989.3 | 2067.8 | 1078.6 | 3.74 | WIN | 3.89 | WIN | 2.06 | WIN | -| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 1615.3 | 1660.1 | 1073.6 | 2.77 | WIN | 2.85 | WIN | 1.86 | WIN | -| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 3302.2 | 3247.2 | 1109.5 | 5.92 | WIN | 5.82 | WIN | 2.03 | WIN | -| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 7746.1 | 7615.0 | 1427.3 | 14.62 | WIN | 14.38 | WIN | 2.74 | WIN | -| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 2406.5 | 2385.2 | 1093.4 | 4.40 | WIN | 4.36 | WIN | 2.00 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 2341.8 | 2395.3 | 1109.9 | 4.36 | WIN | 4.46 | WIN | 2.10 | WIN | -| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 6041.2 | 6048.1 | 1085.5 | 11.70 | WIN | 11.72 | WIN | 2.13 | WIN | -| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 2556.5 | 2602.2 | 1608.9 | 2.66 | WIN | 2.71 | WIN | 1.67 | WIN | -| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 3211.5 | 3379.6 | 1232.4 | 2.36 | WIN | 2.48 | WIN | 0.90 | PARITY | -| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 3575.6 | 3563.6 | 1244.8 | 2.50 | WIN | 2.49 | WIN | 0.87 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 2206.0 | 2246.3 | 1314.8 | 1.54 | WIN | 1.57 | WIN | 0.92 | PARITY | -| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 7392.8 | 6884.2 | 1253.4 | 4.83 | WIN | 4.50 | WIN | 0.84 | LOSS | -| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 10587.5 | 10985.8 | 1334.6 | 7.47 | WIN | 7.75 | WIN | 0.95 | PARITY | -| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 6487.3 | 4835.1 | 2416.9 | 4.54 | WIN | 3.38 | WIN | 1.74 | WIN | -| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 10984.4 | 11573.4 | 1398.7 | 7.85 | WIN | 8.27 | WIN | 1.01 | PARITY | -| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 26765.5 | 27626.3 | 1583.2 | 17.93 | WIN | 18.50 | WIN | 1.04 | PARITY | -| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 5477.6 | 5055.0 | 2799.7 | 1.93 | WIN | 1.78 | WIN | 0.97 | PARITY | -| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 7021.7 | 6300.4 | 1972.2 | 2.41 | WIN | 2.17 | WIN | 0.68 | LOSS | -| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 9519.3 | 8798.6 | 2216.5 | 3.43 | WIN | 3.17 | WIN | 0.80 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 3657.2 | 3620.7 | 2005.9 | 1.29 | WIN | 1.28 | WIN | 0.70 | LOSS | -| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 9796.8 | 9902.8 | 1761.3 | 3.43 | WIN | 3.47 | WIN | 0.64 | LOSS | -| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 17303.5 | 17122.6 | 2216.9 | 6.18 | WIN | 6.12 | WIN | 0.80 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 7023.1 | 6161.9 | 3655.1 | 2.95 | WIN | 2.59 | WIN | 1.58 | WIN | -| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 14138.3 | 14204.1 | 2318.8 | 4.35 | WIN | 4.37 | WIN | 0.65 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 49926.1 | 50849.2 | 2620.3 | 17.59 | WIN | 17.92 | WIN | 0.90 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 5905.0 | 5666.5 | 2537.2 | 1.54 | WIN | 1.48 | WIN | 0.65 | LOSS | -| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 7744.7 | 7598.1 | 2176.2 | 1.95 | WIN | 1.91 | WIN | 0.58 | LOSS | -| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 9555.7 | 10058.7 | 1779.0 | 2.30 | WIN | 2.42 | WIN | 0.46 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 2949.7 | 2996.9 | 1687.7 | 0.79 | LOSS | 0.80 | LOSS | 0.44 | LOSS | -| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 9341.3 | 10687.1 | 2293.1 | 2.52 | WIN | 2.88 | WIN | 0.62 | LOSS | -| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 21958.3 | 18904.6 | 1900.8 | 5.86 | WIN | 5.04 | WIN | 0.50 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 26730.1 | 25867.3 | 7325.5 | 6.90 | WIN | 6.68 | WIN | 1.90 | WIN | -| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 36972.9 | 38432.2 | 2156.4 | 9.91 | WIN | 10.30 | WIN | 0.56 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 60307.6 | 66207.1 | 2320.7 | 15.52 | WIN | 17.04 | WIN | 0.61 | LOSS | -| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1192.5 | 1300.1 | 994.1 | 4.19 | WIN | 4.56 | WIN | 3.36 | WIN | -| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 1669.5 | 1835.7 | 1048.4 | 5.76 | WIN | 6.33 | WIN | 3.67 | WIN | -| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 714.9 | - | 802.7 | 2.14 | WIN | - | n/a | 2.56 | WIN | -| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 1582.3 | 1662.7 | 974.0 | 5.01 | WIN | 5.26 | WIN | 3.04 | WIN | -| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 7983.7 | 7986.8 | 1664.9 | 2.91 | WIN | 2.91 | WIN | 0.60 | LOSS | -| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 3516.8 | 3556.4 | 2077.6 | 3.67 | WIN | 3.71 | WIN | 2.15 | WIN | -| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 1566.7 | 1488.7 | 986.1 | 4.95 | WIN | 4.71 | WIN | 3.16 | WIN | -| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 1658.9 | 1662.9 | 1049.8 | 2.71 | WIN | 2.72 | WIN | 1.66 | WIN | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 554.7 | 597.6 | 740.4 | 2.04 | WIN | 2.20 | WIN | 2.77 | WIN | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 1155.3 | 824.1 | 985.5 | 1.76 | WIN | 1.25 | WIN | 1.48 | WIN | -| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 1765.1 | 1708.6 | 963.5 | 5.10 | WIN | 4.93 | WIN | 2.84 | WIN | -| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 1289.7 | 1252.5 | 845.3 | 6.91 | WIN | 6.71 | WIN | 4.54 | WIN | -| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 3894.8 | 4046.3 | 1001.5 | 11.28 | WIN | 11.72 | WIN | 2.81 | WIN | -| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 9881.9 | 9599.8 | 1034.7 | 26.99 | WIN | 26.22 | WIN | 2.96 | WIN | -| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 2810.4 | 2845.1 | 1117.8 | 3.02 | WIN | 3.05 | WIN | 1.19 | WIN | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 1,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 692.0 | 4023.8 | 5.81 | WIN | 1997.3 | 10548.1 | 5.28 | WIN | 4.30 | -| count vs duck count, engine | 692.0 | 4051.2 | 5.85 | WIN | 1997.3 | 10629.6 | 5.32 | WIN | 4.27 | -| any vs duck exists, wall | 693.9 | 1202.0 | 1.73 | WIN | 1995.5 | 1851.8 | 0.93 | PARITY | 1.19 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 139.9 | 1117.4 | 7.99 | WIN | 0.34 | -| 2-4 | 9 | 544.2 | 3214.4 | 5.91 | WIN | 0.46 | -| 5-16 | 9 | 1383.8 | 8196.3 | 5.92 | WIN | 0.14 | -| 17+ | 18 | 3340.2 | 16962.7 | 5.08 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. - - -# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 10,000,000 - -Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). - -Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 0), k3_tiny_and (target 50, achieved 0), k3_tiny_or (target 50, achieved 0), k3_tiny_mixed (target 50, achieved 0), k8_tiny_and (target 50, achieved 470), k8_tiny_or (target 50, achieved 0), k8_tiny_mixed (target 50, achieved 935), k17_tiny_and (target 50, achieved 467), k17_tiny_or (target 50, achieved 0), k17_tiny_mixed (target 50, achieved 467), k24_tiny_and (target 50, achieved 472), k24_tiny_or (target 50, achieved 0), k24_tiny_mixed (target 50, achieved 470) - -DuckDB build + ANALYZE: threads 1: 5,654,699 us (build 5,653,755, analyze 943); threads 4: 4,333,441 us (build 4,332,828, analyze 613) - -### N = 10,000,000, DuckDB threads = 1 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 477.0 | 592.1 | 591.0 | 0.28 | LOSS | 0.35 | LOSS | 0.36 | LOSS | -| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 16065.5 | 22896.0 | 920.9 | 9.54 | WIN | 13.59 | WIN | 0.54 | LOSS | -| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 14682.0 | 16553.4 | 627.6 | 8.40 | WIN | 9.47 | WIN | 0.36 | LOSS | -| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 36607.8 | 37059.9 | 40659.1 | 7.07 | WIN | 7.16 | WIN | 7.63 | WIN | -| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 34347.9 | 36076.6 | 699.2 | 6.34 | WIN | 6.66 | WIN | 0.13 | LOSS | -| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 41119.5 | 41982.1 | 713.7 | 7.83 | WIN | 8.00 | WIN | 0.13 | LOSS | -| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 539.0 | 582.3 | 606.5 | 0.10 | LOSS | 0.11 | LOSS | 0.11 | LOSS | -| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 66221.3 | 65374.4 | 1148.4 | 13.13 | WIN | 12.96 | WIN | 0.23 | LOSS | -| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 192171.0 | 191457.4 | 813.0 | 37.57 | WIN | 37.43 | WIN | 0.16 | LOSS | -| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 40150.0 | 55077.6 | 52672.7 | 7.39 | WIN | 10.14 | WIN | 9.31 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 47956.4 | 52098.6 | 791.7 | 8.08 | WIN | 8.78 | WIN | 0.14 | LOSS | -| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 145146.5 | 147578.6 | 816.5 | 25.93 | WIN | 26.36 | WIN | 0.15 | LOSS | -| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 54096.7 | 60818.1 | 1617.4 | 2.25 | WIN | 2.53 | WIN | 0.07 | LOSS | -| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 83866.3 | 82393.0 | 958.7 | 2.30 | WIN | 2.26 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 108897.6 | 106359.7 | 946.6 | 2.95 | WIN | 2.89 | WIN | 0.03 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 702.6 | 944.2 | 1262.4 | 0.02 | LOSS | 0.03 | LOSS | 0.03 | LOSS | -| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 173318.7 | 171537.3 | 957.7 | 4.75 | WIN | 4.70 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 310465.8 | 300716.6 | 995.7 | 8.66 | WIN | 8.39 | WIN | 0.03 | LOSS | -| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 150918.1 | 146203.9 | 1770.6 | 4.14 | WIN | 4.01 | WIN | 0.05 | LOSS | -| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 263585.0 | 291324.8 | 1106.1 | 7.17 | WIN | 7.93 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 717301.7 | 687487.8 | 1228.8 | 15.43 | WIN | 14.79 | WIN | 0.03 | LOSS | -| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 142113.7 | 145205.5 | 2076.0 | 1.91 | WIN | 1.96 | WIN | 0.03 | LOSS | -| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 159095.2 | 169152.2 | 1784.8 | 2.16 | WIN | 2.30 | WIN | 0.02 | LOSS | -| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 212825.2 | 222076.1 | 1341.8 | 2.84 | WIN | 2.96 | WIN | 0.02 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1041.1 | 932.3 | 1473.9 | 0.01 | LOSS | 0.01 | LOSS | 0.02 | LOSS | -| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 225787.9 | 239839.7 | 1347.3 | 3.06 | WIN | 3.25 | WIN | 0.02 | LOSS | -| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 478393.1 | 542011.3 | 1349.0 | 6.62 | WIN | 7.50 | WIN | 0.02 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 136162.5 | 132247.9 | 2176.5 | 3.26 | WIN | 3.16 | WIN | 0.04 | LOSS | -| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 293818.0 | 298033.9 | 1420.6 | 4.00 | WIN | 4.06 | WIN | 0.02 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 1382934.4 | 1401588.6 | 2389.6 | 18.53 | WIN | 18.78 | WIN | 0.03 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 147036.4 | 137556.3 | 1684.9 | 1.57 | WIN | 1.47 | WIN | 0.02 | LOSS | -| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 188568.6 | 187580.2 | 1508.9 | 2.11 | WIN | 2.10 | WIN | 0.02 | LOSS | -| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 248329.8 | 243513.3 | 1504.5 | 2.89 | WIN | 2.83 | WIN | 0.02 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1002.4 | 1046.2 | 1129.8 | 0.01 | LOSS | 0.01 | LOSS | 0.01 | LOSS | -| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 227149.9 | 239568.3 | 1463.5 | 2.51 | WIN | 2.65 | WIN | 0.02 | LOSS | -| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 572694.7 | 558926.0 | 1600.6 | 6.41 | WIN | 6.26 | WIN | 0.02 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 657116.1 | 567573.7 | 1916.5 | 7.24 | WIN | 6.25 | WIN | 0.02 | LOSS | -| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 932183.2 | 981755.7 | 1784.2 | 10.40 | WIN | 10.95 | WIN | 0.02 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 2090124.5 | 1985161.1 | 2006.5 | 24.37 | WIN | 23.15 | WIN | 0.02 | LOSS | -| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 14886.8 | 24485.8 | 972.8 | 4.09 | WIN | 6.72 | WIN | 0.28 | LOSS | -| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 25638.5 | 29261.4 | 1090.4 | 9.14 | WIN | 10.44 | WIN | 0.27 | LOSS | -| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 847.4 | - | 922.9 | 0.24 | LOSS | - | n/a | 0.27 | LOSS | -| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 22805.1 | 23057.3 | 713.4 | 6.65 | WIN | 6.72 | WIN | 0.21 | LOSS | -| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 217536.6 | 234985.9 | 1441.2 | 3.00 | WIN | 3.24 | WIN | 0.02 | LOSS | -| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 64305.0 | 64808.0 | 1413.1 | 3.23 | WIN | 3.26 | WIN | 0.07 | LOSS | -| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 28390.5 | 30240.1 | 668.0 | 8.04 | WIN | 8.56 | WIN | 0.19 | LOSS | -| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 31018.7 | 32148.3 | 782.3 | 2.53 | WIN | 2.62 | WIN | 0.06 | LOSS | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 727.8 | 683.2 | 856.1 | 0.25 | LOSS | 0.23 | LOSS | 0.29 | LOSS | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 711.0 | 789.9 | 821.3 | 0.09 | LOSS | 0.11 | LOSS | 0.10 | LOSS | -| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 36063.3 | 36621.3 | 1035.5 | 7.72 | WIN | 7.84 | WIN | 0.18 | LOSS | -| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 20619.5 | 20156.2 | 775.5 | 9.46 | WIN | 9.25 | WIN | 0.36 | LOSS | -| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 99873.4 | 132234.7 | 1117.0 | 21.32 | WIN | 28.23 | WIN | 0.28 | LOSS | -| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 268063.0 | 316992.9 | 787.3 | 67.76 | WIN | 80.13 | WIN | 0.20 | LOSS | -| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 70334.6 | 73451.0 | 814.6 | 3.21 | WIN | 3.35 | WIN | 0.04 | LOSS | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 10,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 12904.5 | 90393.4 | 7.00 | WIN | 46547.9 | 271667.0 | 5.84 | WIN | 3.06 | -| count vs duck count, engine | 12904.5 | 92188.6 | 7.14 | WIN | 46547.9 | 270997.0 | 5.82 | WIN | 3.19 | -| any vs duck exists, wall | 12913.8 | 5567.0 | 0.43 | LOSS | 46604.5 | 3637.5 | 0.08 | LOSS | 0.06 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 1707.2 | 10408.2 | 6.10 | WIN | 0.34 | -| 2-4 | 9 | 5367.4 | 67139.9 | 12.51 | WIN | 0.46 | -| 5-16 | 9 | 36199.5 | 207017.0 | 5.72 | WIN | 0.14 | -| 17+ | 18 | 79785.8 | 449798.7 | 5.64 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. - -### N = 10,000,000, DuckDB threads = 4 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 749.2 | 608.7 | 740.3 | 0.44 | LOSS | 0.36 | LOSS | 0.44 | LOSS | -| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 4115.6 | 4174.6 | 878.1 | 2.44 | WIN | 2.48 | WIN | 0.52 | LOSS | -| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 4483.3 | 4355.8 | 913.8 | 2.56 | WIN | 2.49 | WIN | 0.52 | LOSS | -| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 10953.8 | 10635.1 | 10197.0 | 2.12 | WIN | 2.05 | WIN | 1.91 | WIN | -| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 9979.6 | 10728.6 | 1034.5 | 1.84 | WIN | 1.98 | WIN | 0.19 | LOSS | -| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 12053.1 | 12181.6 | 1018.2 | 2.30 | WIN | 2.32 | WIN | 0.19 | LOSS | -| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 648.2 | 678.1 | 750.1 | 0.12 | LOSS | 0.13 | LOSS | 0.14 | LOSS | -| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 18505.3 | 18795.1 | 1011.7 | 3.67 | WIN | 3.73 | WIN | 0.20 | LOSS | -| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 50145.2 | 54685.3 | 1035.6 | 9.80 | WIN | 10.69 | WIN | 0.20 | LOSS | -| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 10858.1 | 10898.2 | 11380.8 | 2.00 | WIN | 2.01 | WIN | 2.01 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 13830.3 | 12542.5 | 976.2 | 2.33 | WIN | 2.11 | WIN | 0.17 | LOSS | -| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 37466.7 | 40296.9 | 1052.1 | 6.69 | WIN | 7.20 | WIN | 0.20 | LOSS | -| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 16602.2 | 19904.8 | 1921.7 | 0.69 | LOSS | 0.83 | LOSS | 0.09 | LOSS | -| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 26988.8 | 24283.4 | 1249.7 | 0.74 | LOSS | 0.67 | LOSS | 0.03 | LOSS | -| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 30166.4 | 29397.2 | 1241.5 | 0.82 | LOSS | 0.80 | LOSS | 0.03 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 798.1 | 851.8 | 1022.5 | 0.02 | LOSS | 0.02 | LOSS | 0.03 | LOSS | -| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 51723.3 | 46573.0 | 1226.4 | 1.42 | WIN | 1.28 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 84262.8 | 89431.8 | 1399.6 | 2.35 | WIN | 2.50 | WIN | 0.04 | LOSS | -| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 43857.1 | 43639.9 | 2757.2 | 1.20 | WIN | 1.20 | WIN | 0.07 | LOSS | -| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 78663.7 | 87577.5 | 1337.5 | 2.14 | WIN | 2.38 | WIN | 0.04 | LOSS | -| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 187067.9 | 192926.0 | 1470.6 | 4.02 | WIN | 4.15 | WIN | 0.03 | LOSS | -| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 41400.9 | 37266.6 | 2457.8 | 0.56 | LOSS | 0.50 | LOSS | 0.03 | LOSS | -| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 43895.3 | 45147.6 | 1538.0 | 0.60 | LOSS | 0.61 | LOSS | 0.02 | LOSS | -| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 57312.3 | 55350.1 | 1651.6 | 0.76 | LOSS | 0.74 | LOSS | 0.02 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1239.1 | 1011.0 | 1299.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | -| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 70731.7 | 71277.0 | 1534.5 | 0.96 | PARITY | 0.97 | PARITY | 0.02 | LOSS | -| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 132258.5 | 128086.9 | 1600.5 | 1.83 | WIN | 1.77 | WIN | 0.02 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 37984.4 | 42628.1 | 3366.9 | 0.91 | PARITY | 1.02 | PARITY | 0.07 | LOSS | -| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 82346.8 | 85098.5 | 1813.5 | 1.12 | WIN | 1.16 | WIN | 0.02 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 363912.1 | 367205.7 | 2557.8 | 4.88 | WIN | 4.92 | WIN | 0.03 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 42430.7 | 53442.5 | 2717.2 | 0.45 | LOSS | 0.57 | LOSS | 0.03 | LOSS | -| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 55181.2 | 65205.9 | 2579.0 | 0.62 | LOSS | 0.73 | LOSS | 0.03 | LOSS | -| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 68975.0 | 69978.9 | 2407.8 | 0.80 | LOSS | 0.81 | LOSS | 0.03 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1637.8 | 1171.0 | 1724.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | -| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 88748.3 | 104740.6 | 3027.8 | 0.98 | PARITY | 1.16 | WIN | 0.04 | LOSS | -| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 215605.7 | 212426.9 | 3283.8 | 2.41 | WIN | 2.38 | WIN | 0.04 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 183991.0 | 179896.0 | 7625.6 | 2.03 | WIN | 1.98 | WIN | 0.08 | LOSS | -| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 268751.0 | 291474.1 | 2621.0 | 3.00 | WIN | 3.25 | WIN | 0.03 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 556772.8 | 516854.5 | 2286.9 | 6.49 | WIN | 6.03 | WIN | 0.03 | LOSS | -| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 3725.4 | 4034.9 | 901.8 | 1.02 | PARITY | 1.11 | WIN | 0.26 | LOSS | -| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 7062.0 | 7261.5 | 1009.7 | 2.52 | WIN | 2.59 | WIN | 0.25 | LOSS | -| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 633.2 | - | 771.4 | 0.18 | LOSS | - | n/a | 0.22 | LOSS | -| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 5287.0 | 5569.3 | 916.4 | 1.54 | WIN | 1.62 | WIN | 0.26 | LOSS | -| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 57095.4 | 59265.9 | 1649.1 | 0.79 | LOSS | 0.82 | LOSS | 0.02 | LOSS | -| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 18712.3 | 19949.1 | 2643.1 | 0.94 | PARITY | 1.00 | PARITY | 0.13 | LOSS | -| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 7181.1 | 6992.3 | 921.0 | 2.03 | WIN | 1.98 | WIN | 0.26 | LOSS | -| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 6878.6 | 6917.5 | 949.2 | 0.56 | LOSS | 0.56 | LOSS | 0.07 | LOSS | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 656.9 | 676.6 | 947.9 | 0.22 | LOSS | 0.23 | LOSS | 0.33 | LOSS | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 790.0 | 882.2 | 949.5 | 0.11 | LOSS | 0.12 | LOSS | 0.12 | LOSS | -| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 8346.3 | 8109.7 | 961.5 | 1.79 | WIN | 1.74 | WIN | 0.17 | LOSS | -| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 5210.3 | 5399.1 | 1018.5 | 2.39 | WIN | 2.48 | WIN | 0.47 | LOSS | -| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 26963.6 | 27898.9 | 1347.2 | 5.76 | WIN | 5.96 | WIN | 0.33 | LOSS | -| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 74116.9 | 74124.0 | 1188.5 | 18.74 | WIN | 18.74 | WIN | 0.30 | LOSS | -| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 17936.4 | 17825.6 | 1060.5 | 0.82 | LOSS | 0.81 | LOSS | 0.05 | LOSS | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 10,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 12904.5 | 25265.7 | 1.96 | WIN | 46547.9 | 77105.0 | 1.66 | WIN | 1.07 | -| count vs duck count, engine | 12904.5 | 25875.0 | 2.01 | WIN | 46547.9 | 78036.6 | 1.68 | WIN | 1.08 | -| any vs duck exists, wall | 12913.8 | 2107.0 | 0.16 | LOSS | 46604.5 | 2325.8 | 0.05 | LOSS | 0.07 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 1707.2 | 3116.0 | 1.83 | WIN | 0.34 | -| 2-4 | 9 | 5367.4 | 18271.1 | 3.40 | WIN | 0.46 | -| 5-16 | 9 | 36199.5 | 57792.3 | 1.60 | WIN | 0.14 | -| 17+ | 18 | 79785.8 | 128509.7 | 1.61 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. - - diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log deleted file mode 100644 index 1a0213d81..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/proj10m.log +++ /dev/null @@ -1,117 +0,0 @@ -== N = 10000000 == -COLD (reported, not gate) build us: U 17748485 P 5121691 S 531017 (P aliases U's 16 full lanes, S aliases U's 48 lanes; those are not charged again) -storage bytes: U 2580000000 (64 lanes, over budget) P 1280000000 (32 lanes) S 1952800008 (48 lanes + 16 presence + 3200002 compact values) -R1 p20 < 300 U=10000000 P=REFUSED(p20: constant 300 outside packed u8 range 0..=255) S=10000000 oracle=10000000 -R1 p20 = -1 U=0 P=REFUSED(p20: constant -1 outside packed u8 range 0..=255) S=0 oracle=0 -R1 p20 >= 256 U=0 P=REFUSED(p20: constant 256 outside packed u8 range 0..=255) S=0 oracle=0 -R1 p50 < 70000 U=199997 P=REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534) S=199997 oracle=199997 -R1-silent p20 < 200 P=7813421 oracle=7813421 -R1-silent p20 = 255 P=39256 oracle=39256 -R1-silent p50 >= 100 P=179873 oracle=179873 -R2 U count(p50 >= 0)=199997 presence=199997 N=10000000 -R2 P count(p50 >= 0)=199997 presence=199997 N=10000000 -R2 S count(p50 >= 0)=199997 presence=199997 N=10000000 -R3 70000 -> Err(SparseValueUnencodable { v: 70000 }), -3 -> Err(SparseValueUnencodable { v: -3 }), (999,absent) -> Ok(1000) -case k1_full_and K=1 mix=full oracle count 7499962 -FAILED-GATE n=10000000 k1_full_and U warm 1721.4 us - U lanes 1 planes 0 ext_loops 0 prep 9 us (COLD) warm 1721.39 us alloc 0 B -FAILED-GATE n=10000000 k1_full_and P warm 1712.2 us - P lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 1712.18 us alloc 0 B -FAILED-GATE n=10000000 k1_full_and S warm 1705.6 us - S lanes 1 planes 0 ext_loops 0 prep 4 us (COLD) warm 1705.61 us alloc 0 B -case k1_packed_and K=1 mix=packed oracle count 7813278 -FAILED-GATE n=10000000 k1_packed_and U warm 1706.5 us - U lanes 1 planes 0 ext_loops 0 prep 6 us (COLD) warm 1706.48 us alloc 0 B -FAILED-GATE n=10000000 k1_packed_and P warm 3072.4 us - P lanes 1 planes 1 ext_loops 1 prep 119 us (COLD) warm 3072.41 us alloc 0 B -FAILED-GATE n=10000000 k1_packed_and S warm 1909.8 us - S lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 1909.80 us alloc 0 B -case k1_sparse_and K=1 mix=sparse oracle count 200003 -FAILED-GATE n=10000000 k1_sparse_and U warm 1944.2 us - U lanes 1 planes 1 ext_loops 0 prep 8 us (COLD) warm 1944.19 us alloc 0 B -FAILED-GATE n=10000000 k1_sparse_and P warm 3058.1 us - P lanes 1 planes 1 ext_loops 1 prep 140 us (COLD) warm 3058.10 us alloc 0 B - S lanes 1 planes 1 ext_loops 1 prep 32 us (COLD) warm 500.82 us alloc 0 B -case k1_mixed_and K=1 mix=mixed oracle count 7499962 -FAILED-GATE n=10000000 k1_mixed_and U warm 1790.6 us - U lanes 1 planes 0 ext_loops 0 prep 7 us (COLD) warm 1790.62 us alloc 0 B -FAILED-GATE n=10000000 k1_mixed_and P warm 2110.8 us - P lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 2110.79 us alloc 0 B -FAILED-GATE n=10000000 k1_mixed_and S warm 2188.5 us - S lanes 1 planes 0 ext_loops 0 prep 5 us (COLD) warm 2188.51 us alloc 0 B -case k4_full_and K=4 mix=full oracle count 1405719 -FAILED-GATE n=10000000 k4_full_and U warm 27231.2 us - U lanes 4 planes 0 ext_loops 0 prep 14 us (COLD) warm 27231.18 us alloc 0 B -FAILED-GATE n=10000000 k4_full_and P warm 24755.3 us - P lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 24755.32 us alloc 0 B -FAILED-GATE n=10000000 k4_full_and S warm 24269.4 us - S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 24269.39 us alloc 0 B -case k4_packed_and K=4 mix=packed oracle count 5057028 -FAILED-GATE n=10000000 k4_packed_and U warm 24657.9 us - U lanes 4 planes 0 ext_loops 0 prep 10 us (COLD) warm 24657.86 us alloc 0 B -FAILED-GATE n=10000000 k4_packed_and P warm 11958.2 us - P lanes 1 planes 4 ext_loops 4 prep 454 us (COLD) warm 11958.18 us alloc 0 B -FAILED-GATE n=10000000 k4_packed_and S warm 24026.0 us - S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 24026.02 us alloc 0 B -case k4_sparse_and K=4 mix=sparse oracle count 0 -FAILED-GATE n=10000000 k4_sparse_and U warm 20467.7 us - U lanes 4 planes 4 ext_loops 0 prep 13 us (COLD) warm 20467.68 us alloc 0 B -FAILED-GATE n=10000000 k4_sparse_and P warm 25431.8 us - P lanes 2 planes 4 ext_loops 4 prep 247 us (COLD) warm 25431.77 us alloc 0 B -FAILED-GATE n=10000000 k4_sparse_and S warm 3354.6 us - S lanes 4 planes 4 ext_loops 4 prep 188 us (COLD) warm 3354.57 us alloc 0 B -case k4_mixed_and K=4 mix=mixed oracle count 58423 -FAILED-GATE n=10000000 k4_mixed_and U warm 21536.8 us - U lanes 4 planes 1 ext_loops 0 prep 12 us (COLD) warm 21536.79 us alloc 0 B -FAILED-GATE n=10000000 k4_mixed_and P warm 27878.9 us - P lanes 4 planes 2 ext_loops 2 prep 122 us (COLD) warm 27878.89 us alloc 0 B -FAILED-GATE n=10000000 k4_mixed_and S warm 15334.4 us - S lanes 4 planes 1 ext_loops 1 prep 30 us (COLD) warm 15334.40 us alloc 0 B -case k16_full_and K=16 mix=full oracle count 1732 -FAILED-GATE n=10000000 k16_full_and U warm 74776.6 us - U lanes 16 planes 0 ext_loops 0 prep 11 us (COLD) warm 74776.62 us alloc 0 B -FAILED-GATE n=10000000 k16_full_and P warm 76772.2 us - P lanes 16 planes 0 ext_loops 0 prep 10 us (COLD) warm 76772.21 us alloc 0 B -FAILED-GATE n=10000000 k16_full_and S warm 88821.3 us - S lanes 16 planes 0 ext_loops 0 prep 11 us (COLD) warm 88821.28 us alloc 0 B -case k16_packed_and K=16 mix=packed oracle count 886838 -FAILED-GATE n=10000000 k16_packed_and U warm 110142.4 us - U lanes 16 planes 0 ext_loops 0 prep 14 us (COLD) warm 110142.42 us alloc 0 B -FAILED-GATE n=10000000 k16_packed_and P warm 102580.2 us - P lanes 4 planes 16 ext_loops 16 prep 1590 us (COLD) warm 102580.15 us alloc 0 B -FAILED-GATE n=10000000 k16_packed_and S warm 105085.2 us - S lanes 16 planes 0 ext_loops 0 prep 12 us (COLD) warm 105085.25 us alloc 0 B -case k16_sparse_and K=16 mix=sparse oracle count 0 -FAILED-GATE n=10000000 k16_sparse_and U warm 80098.0 us - U lanes 16 planes 16 ext_loops 0 prep 21 us (COLD) warm 80098.03 us alloc 0 B -FAILED-GATE n=10000000 k16_sparse_and P warm 116692.5 us - P lanes 8 planes 16 ext_loops 16 prep 1533 us (COLD) warm 116692.49 us alloc 0 B -FAILED-GATE n=10000000 k16_sparse_and S warm 14440.3 us - S lanes 16 planes 16 ext_loops 16 prep 969 us (COLD) warm 14440.31 us alloc 0 B -case k16_mixed_and K=16 mix=mixed oracle count 0 -FAILED-GATE n=10000000 k16_mixed_and U warm 52875.0 us - U lanes 16 planes 5 ext_loops 0 prep 22 us (COLD) warm 52875.02 us alloc 0 B -FAILED-GATE n=10000000 k16_mixed_and P warm 114941.0 us - P lanes 11 planes 10 ext_loops 10 prep 810 us (COLD) warm 114941.04 us alloc 0 B -FAILED-GATE n=10000000 k16_mixed_and S warm 60669.9 us - S lanes 16 planes 5 ext_loops 5 prep 290 us (COLD) warm 60669.85 us alloc 0 B -case k4_mixed_or K=4 mix=mixed oracle count 9732172 -FAILED-GATE n=10000000 k4_mixed_or U warm 21360.1 us - U lanes 4 planes 1 ext_loops 0 prep 11 us (COLD) warm 21360.14 us alloc 0 B -FAILED-GATE n=10000000 k4_mixed_or P warm 24842.3 us - P lanes 4 planes 2 ext_loops 2 prep 151 us (COLD) warm 24842.33 us alloc 0 B -FAILED-GATE n=10000000 k4_mixed_or S warm 15257.1 us - S lanes 4 planes 1 ext_loops 1 prep 28 us (COLD) warm 15257.11 us alloc 0 B -case k16_mixed_or K=16 mix=mixed oracle count 10000000 -FAILED-GATE n=10000000 k16_mixed_or U warm 84284.7 us - U lanes 16 planes 5 ext_loops 0 prep 21 us (COLD) warm 84284.69 us alloc 0 B -FAILED-GATE n=10000000 k16_mixed_or P warm 110218.8 us - P lanes 11 planes 10 ext_loops 10 prep 948 us (COLD) warm 110218.82 us alloc 0 B -FAILED-GATE n=10000000 k16_mixed_or S warm 68168.1 us - S lanes 16 planes 5 ext_loops 5 prep 304 us (COLD) warm 68168.12 us alloc 0 B -N=10000000: 41 FAILED-GATE values (warm >= 1000 us, reported), 0 failures -PROJECT ALL ANSWERS MATCH THE ORACLE, ALL REFUSALS FIRED - -real 0m51.242s -user 0m35.178s -sys 0m15.689s diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log deleted file mode 100644 index 9f5171fe9..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/proj1m.log +++ /dev/null @@ -1,99 +0,0 @@ -== N = 1000000 == -COLD (reported, not gate) build us: U 708712 P 218233 S 30069 (P aliases U's 16 full lanes, S aliases U's 48 lanes; those are not charged again) -storage bytes: U 258000000 (64 lanes, over budget) P 128000000 (32 lanes) S 195280008 (48 lanes + 16 presence + 320002 compact values) -R1 p20 < 300 U=1000000 P=REFUSED(p20: constant 300 outside packed u8 range 0..=255) S=1000000 oracle=1000000 -R1 p20 = -1 U=0 P=REFUSED(p20: constant -1 outside packed u8 range 0..=255) S=0 oracle=0 -R1 p20 >= 256 U=0 P=REFUSED(p20: constant 256 outside packed u8 range 0..=255) S=0 oracle=0 -R1 p50 < 70000 U=19997 P=REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534) S=19997 oracle=19997 -R1-silent p20 < 200 P=781347 oracle=781347 -R1-silent p20 = 255 P=3791 oracle=3791 -R1-silent p50 >= 100 P=17998 oracle=17998 -R2 U count(p50 >= 0)=19997 presence=19997 N=1000000 -R2 P count(p50 >= 0)=19997 presence=19997 N=1000000 -R2 S count(p50 >= 0)=19997 presence=19997 N=1000000 -R3 70000 -> Err(SparseValueUnencodable { v: 70000 }), -3 -> Err(SparseValueUnencodable { v: -3 }), (999,absent) -> Ok(1000) -case k1_full_and K=1 mix=full oracle count 749742 - U lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 201.00 us alloc 0 B - P lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 204.02 us alloc 0 B - S lanes 1 planes 0 ext_loops 0 prep 2 us (COLD) warm 189.64 us alloc 0 B -case k1_packed_and K=1 mix=packed oracle count 780635 - U lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 184.62 us alloc 0 B - P lanes 1 planes 1 ext_loops 1 prep 11 us (COLD) warm 481.61 us alloc 0 B - S lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 184.11 us alloc 0 B -case k1_sparse_and K=1 mix=sparse oracle count 20000 - U lanes 1 planes 1 ext_loops 0 prep 5 us (COLD) warm 229.98 us alloc 0 B - P lanes 1 planes 1 ext_loops 1 prep 8 us (COLD) warm 492.57 us alloc 0 B - S lanes 1 planes 1 ext_loops 1 prep 5 us (COLD) warm 70.00 us alloc 0 B -case k1_mixed_and K=1 mix=mixed oracle count 749742 - U lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 186.30 us alloc 0 B - P lanes 1 planes 0 ext_loops 0 prep 3 us (COLD) warm 192.98 us alloc 0 B - S lanes 1 planes 0 ext_loops 0 prep 2 us (COLD) warm 204.19 us alloc 0 B -case k4_full_and K=4 mix=full oracle count 140953 -FAILED-GATE n=1000000 k4_full_and U warm 1275.1 us - U lanes 4 planes 0 ext_loops 0 prep 12 us (COLD) warm 1275.13 us alloc 0 B -FAILED-GATE n=1000000 k4_full_and P warm 1241.2 us - P lanes 4 planes 0 ext_loops 0 prep 9 us (COLD) warm 1241.24 us alloc 0 B -FAILED-GATE n=1000000 k4_full_and S warm 1195.8 us - S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 1195.84 us alloc 0 B -case k4_packed_and K=4 mix=packed oracle count 505593 -FAILED-GATE n=1000000 k4_packed_and U warm 1294.0 us - U lanes 4 planes 0 ext_loops 0 prep 13 us (COLD) warm 1294.00 us alloc 0 B -FAILED-GATE n=1000000 k4_packed_and P warm 1213.2 us - P lanes 1 planes 4 ext_loops 4 prep 170 us (COLD) warm 1213.21 us alloc 0 B - S lanes 4 planes 0 ext_loops 0 prep 8 us (COLD) warm 792.08 us alloc 0 B -case k4_sparse_and K=4 mix=sparse oracle count 0 - U lanes 4 planes 4 ext_loops 0 prep 11 us (COLD) warm 654.41 us alloc 0 B -FAILED-GATE n=1000000 k4_sparse_and P warm 1240.2 us - P lanes 2 planes 4 ext_loops 4 prep 117 us (COLD) warm 1240.22 us alloc 0 B - S lanes 4 planes 4 ext_loops 4 prep 65 us (COLD) warm 267.08 us alloc 0 B -case k4_mixed_and K=4 mix=mixed oracle count 5826 - U lanes 4 planes 1 ext_loops 0 prep 10 us (COLD) warm 722.14 us alloc 0 B -FAILED-GATE n=1000000 k4_mixed_and P warm 1033.5 us - P lanes 4 planes 2 ext_loops 2 prep 25 us (COLD) warm 1033.52 us alloc 0 B - S lanes 4 planes 1 ext_loops 1 prep 13 us (COLD) warm 552.34 us alloc 0 B -case k16_full_and K=16 mix=full oracle count 169 -FAILED-GATE n=1000000 k16_full_and U warm 2507.9 us - U lanes 16 planes 0 ext_loops 0 prep 11 us (COLD) warm 2507.91 us alloc 0 B -FAILED-GATE n=1000000 k16_full_and P warm 2517.7 us - P lanes 16 planes 0 ext_loops 0 prep 10 us (COLD) warm 2517.67 us alloc 0 B -FAILED-GATE n=1000000 k16_full_and S warm 2562.0 us - S lanes 16 planes 0 ext_loops 0 prep 9 us (COLD) warm 2561.99 us alloc 0 B -case k16_packed_and K=16 mix=packed oracle count 89163 -FAILED-GATE n=1000000 k16_packed_and U warm 10100.5 us - U lanes 16 planes 0 ext_loops 0 prep 12 us (COLD) warm 10100.52 us alloc 0 B -FAILED-GATE n=1000000 k16_packed_and P warm 4984.7 us - P lanes 4 planes 16 ext_loops 16 prep 731 us (COLD) warm 4984.67 us alloc 0 B -FAILED-GATE n=1000000 k16_packed_and S warm 5594.2 us - S lanes 16 planes 0 ext_loops 0 prep 9 us (COLD) warm 5594.17 us alloc 0 B -case k16_sparse_and K=16 mix=sparse oracle count 0 -FAILED-GATE n=1000000 k16_sparse_and U warm 4284.8 us - U lanes 16 planes 16 ext_loops 0 prep 25 us (COLD) warm 4284.82 us alloc 0 B -FAILED-GATE n=1000000 k16_sparse_and P warm 7255.7 us - P lanes 8 planes 16 ext_loops 16 prep 667 us (COLD) warm 7255.74 us alloc 0 B -FAILED-GATE n=1000000 k16_sparse_and S warm 1686.7 us - S lanes 16 planes 16 ext_loops 16 prep 489 us (COLD) warm 1686.68 us alloc 0 B -case k16_mixed_and K=16 mix=mixed oracle count 0 -FAILED-GATE n=1000000 k16_mixed_and U warm 2476.9 us - U lanes 16 planes 5 ext_loops 0 prep 19 us (COLD) warm 2476.90 us alloc 0 B -FAILED-GATE n=1000000 k16_mixed_and P warm 6819.2 us - P lanes 11 planes 10 ext_loops 10 prep 398 us (COLD) warm 6819.18 us alloc 0 B -FAILED-GATE n=1000000 k16_mixed_and S warm 2488.9 us - S lanes 16 planes 5 ext_loops 5 prep 147 us (COLD) warm 2488.94 us alloc 0 B -case k4_mixed_or K=4 mix=mixed oracle count 973024 - U lanes 4 planes 1 ext_loops 0 prep 9 us (COLD) warm 774.00 us alloc 0 B -FAILED-GATE n=1000000 k4_mixed_or P warm 1007.9 us - P lanes 4 planes 2 ext_loops 2 prep 31 us (COLD) warm 1007.87 us alloc 0 B - S lanes 4 planes 1 ext_loops 1 prep 13 us (COLD) warm 606.90 us alloc 0 B -case k16_mixed_or K=16 mix=mixed oracle count 1000000 -FAILED-GATE n=1000000 k16_mixed_or U warm 2939.0 us - U lanes 16 planes 5 ext_loops 0 prep 17 us (COLD) warm 2939.02 us alloc 0 B -FAILED-GATE n=1000000 k16_mixed_or P warm 4174.4 us - P lanes 11 planes 10 ext_loops 10 prep 324 us (COLD) warm 4174.44 us alloc 0 B -FAILED-GATE n=1000000 k16_mixed_or S warm 2322.6 us - S lanes 16 planes 5 ext_loops 5 prep 80 us (COLD) warm 2322.57 us alloc 0 B -N=1000000: 23 FAILED-GATE values (warm >= 1000 us, reported), 0 failures -PROJECT ALL ANSWERS MATCH THE ORACLE, ALL REFUSALS FIRED - -real 0m4.203s -user 0m4.005s -sys 0m0.175s diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json index 6d53ec2b6..8efb943c1 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json @@ -1,2073 +1,116 @@ { - "n": 1000000, - "duckdb_version": "2.0.0", - "runs": 31, - "load": { - "1": { - "build_us": 432941.514, - "analyze_us": 361.902, - "load_us": 433303.416, - "mem_bytes": 82446632 - }, - "4": { - "build_us": 407966.601, - "analyze_us": 425.116, - "load_us": 408391.717, - "mem_bytes": 82446632 - } - }, - "records": [ - { - "id": "k1_tiny_single", - "threads": 1, - "count": 1000, - "exists": true, - "count_cold_us": 5621.02, - "count_warm_med_us": 1918.268, - "count_warm_p10_us": 1664.774, - "count_warm_p90_us": 2485.728, - "count_engine_med_us": 1981.609, - "exists_cold_us": 1378.305, - "exists_warm_med_us": 589.417, - "exists_warm_p10_us": 510.031, - "exists_warm_p90_us": 702.132, - "exists_engine_med_us": 674.559, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k1_medium_single", - "threads": 1, - "count": 10000, - "exists": true, - "count_cold_us": 2687.324, - "count_warm_med_us": 1738.972, - "count_warm_p10_us": 1630.374, - "count_warm_p90_us": 2045.268, - "count_engine_med_us": 1798.954, - "exists_cold_us": 1908.953, - "exists_warm_med_us": 852.655, - "exists_warm_p10_us": 813.352, - "exists_warm_p90_us": 926.575, - "exists_engine_med_us": 898.931, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k1_large_single", - "threads": 1, - "count": 500005, - "exists": true, - "count_cold_us": 3934.294, - "count_warm_med_us": 2580.879, - "count_warm_p10_us": 1633.903, - "count_warm_p90_us": 3405.558, - "count_engine_med_us": 2118.66, - "exists_cold_us": 1670.479, - "exists_warm_med_us": 744.503, - "exists_warm_p10_us": 690.84, - "exists_warm_p90_us": 815.906, - "exists_engine_med_us": 812.895, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_tiny_and", - "threads": 1, - "count": 765, - "exists": true, - "count_cold_us": 6869.788, - "count_warm_med_us": 4638.318, - "count_warm_p10_us": 3131.511, - "count_warm_p90_us": 4788.883, - "count_engine_med_us": 4933.59, - "exists_cold_us": 1946.865, - "exists_warm_med_us": 842.384, - "exists_warm_p10_us": 725.3, - "exists_warm_p90_us": 906.546, - "exists_engine_med_us": 786.595, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_medium_and", - "threads": 1, - "count": 10139, - "exists": true, - "count_cold_us": 4540.33, - "count_warm_med_us": 3490.399, - "count_warm_p10_us": 2999.365, - "count_warm_p90_us": 4342.667, - "count_engine_med_us": 4234.648, - "exists_cold_us": 2295.528, - "exists_warm_med_us": 902.736, - "exists_warm_p10_us": 693.118, - "exists_warm_p90_us": 1075.683, - "exists_engine_med_us": 1052.391, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_large_and", - "threads": 1, - "count": 499628, - "exists": true, - "count_cold_us": 7351.869, - "count_warm_med_us": 3341.871, - "count_warm_p10_us": 3212.788, - "count_warm_p90_us": 3895.041, - "count_engine_med_us": 3411.843, - "exists_cold_us": 2005.698, - "exists_warm_med_us": 874.733, - "exists_warm_p10_us": 691.211, - "exists_warm_p90_us": 920.28, - "exists_engine_med_us": 962.231, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_tiny_or", - "threads": 1, - "count": 999, - "exists": true, - "count_cold_us": 4991.015, - "count_warm_med_us": 2403.109, - "count_warm_p10_us": 2231.592, - "count_warm_p90_us": 3704.63, - "count_engine_med_us": 2950.291, - "exists_cold_us": 2220.248, - "exists_warm_med_us": 965.596, - "exists_warm_p10_us": 763.012, - "exists_warm_p90_us": 1038.172, - "exists_engine_med_us": 799.273, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_medium_or", - "threads": 1, - "count": 10000, - "exists": true, - "count_cold_us": 8215.602, - "count_warm_med_us": 6476.471, - "count_warm_p10_us": 5925.722, - "count_warm_p90_us": 8647.368, - "count_engine_med_us": 6880.935, - "exists_cold_us": 1558.995, - "exists_warm_med_us": 691.077, - "exists_warm_p10_us": 657.335, - "exists_warm_p90_us": 804.854, - "exists_engine_med_us": 816.07, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_large_or", - "threads": 1, - "count": 500615, - "exists": true, - "count_cold_us": 26836.568, - "count_warm_med_us": 21854.879, - "count_warm_p10_us": 19720.203, - "count_warm_p90_us": 26873.995, - "count_engine_med_us": 20115.064, - "exists_cold_us": 2044.355, - "exists_warm_med_us": 728.655, - "exists_warm_p10_us": 667.007, - "exists_warm_p90_us": 829.44, - "exists_engine_med_us": 945.821, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_tiny_mixed", - "threads": 1, - "count": 428, - "exists": true, - "count_cold_us": 6459.539, - "count_warm_med_us": 3714.813, - "count_warm_p10_us": 3433.579, - "count_warm_p90_us": 4239.921, - "count_engine_med_us": 3736.24, - "exists_cold_us": 1638.374, - "exists_warm_med_us": 730.017, - "exists_warm_p10_us": 681.321, - "exists_warm_p90_us": 901.651, - "exists_engine_med_us": 735.94, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_medium_mixed", - "threads": 1, - "count": 9819, - "exists": true, - "count_cold_us": 7609.299, - "count_warm_med_us": 4009.266, - "count_warm_p10_us": 3846.237, - "count_warm_p90_us": 5154.643, - "count_engine_med_us": 4073.93, - "exists_cold_us": 1724.633, - "exists_warm_med_us": 721.591, - "exists_warm_p10_us": 670.985, - "exists_warm_p90_us": 786.934, - "exists_engine_med_us": 791.989, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k3_large_mixed", - "threads": 1, - "count": 499424, - "exists": true, - "count_cold_us": 16725.484, - "count_warm_med_us": 15868.025, - "count_warm_p10_us": 14599.471, - "count_warm_p90_us": 19770.281, - "count_engine_med_us": 14564.578, - "exists_cold_us": 1721.867, - "exists_warm_med_us": 1095.727, - "exists_warm_p10_us": 1075.439, - "exists_warm_p90_us": 1180.951, - "exists_engine_med_us": 1149.461, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_tiny_and", - "threads": 1, - "count": 46, - "exists": true, - "count_cold_us": 9540.841, - "count_warm_med_us": 4496.883, - "count_warm_p10_us": 4310.876, - "count_warm_p90_us": 5309.017, - "count_engine_med_us": 4455.384, - "exists_cold_us": 2254.435, - "exists_warm_med_us": 1017.438, - "exists_warm_p10_us": 969.966, - "exists_warm_p90_us": 1208.107, - "exists_engine_med_us": 1109.475, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_medium_and", - "threads": 1, - "count": 10097, - "exists": true, - "count_cold_us": 16134.646, - "count_warm_med_us": 6335.387, - "count_warm_p10_us": 5982.254, - "count_warm_p90_us": 7914.624, - "count_engine_med_us": 6355.062, - "exists_cold_us": 2010.991, - "exists_warm_med_us": 881.729, - "exists_warm_p10_us": 828.76, - "exists_warm_p90_us": 987.085, - "exists_engine_med_us": 985.948, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_large_and", - "threads": 1, - "count": 498124, - "exists": true, - "count_cold_us": 11245.263, - "count_warm_med_us": 7755.427, - "count_warm_p10_us": 7474.505, - "count_warm_p90_us": 9139.924, - "count_engine_med_us": 8069.13, - "exists_cold_us": 1984.443, - "exists_warm_med_us": 881.543, - "exists_warm_p10_us": 834.376, - "exists_warm_p90_us": 966.274, - "exists_engine_med_us": 1011.495, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_tiny_or", - "threads": 1, - "count": 999, - "exists": true, - "count_cold_us": 5411.93, - "count_warm_med_us": 3547.239, - "count_warm_p10_us": 3202.172, - "count_warm_p90_us": 5062.949, - "count_engine_med_us": 3593.424, - "exists_cold_us": 2142.36, - "exists_warm_med_us": 870.539, - "exists_warm_p10_us": 771.103, - "exists_warm_p90_us": 986.619, - "exists_engine_med_us": 983.942, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_medium_or", - "threads": 1, - "count": 9997, - "exists": true, - "count_cold_us": 18002.665, - "count_warm_med_us": 16571.528, - "count_warm_p10_us": 16181.984, - "count_warm_p90_us": 17253.63, - "count_engine_med_us": 17463.041, - "exists_cold_us": 2154.29, - "exists_warm_med_us": 954.432, - "exists_warm_p10_us": 872.336, - "exists_warm_p90_us": 1249.496, - "exists_engine_med_us": 1001.275, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_large_or", - "threads": 1, - "count": 498831, - "exists": true, - "count_cold_us": 34061.571, - "count_warm_med_us": 30636.811, - "count_warm_p10_us": 28571.636, - "count_warm_p90_us": 36864.446, - "count_engine_med_us": 30176.751, - "exists_cold_us": 2333.781, - "exists_warm_med_us": 946.629, - "exists_warm_p10_us": 868.968, - "exists_warm_p90_us": 1260.095, - "exists_engine_med_us": 1033.414, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_tiny_mixed", - "threads": 1, - "count": 91, - "exists": true, - "count_cold_us": 16960.131, - "count_warm_med_us": 14877.962, - "count_warm_p10_us": 13790.313, - "count_warm_p90_us": 15550.625, - "count_engine_med_us": 14745.011, - "exists_cold_us": 3406.78, - "exists_warm_med_us": 1692.633, - "exists_warm_p10_us": 1581.798, - "exists_warm_p90_us": 1929.946, - "exists_engine_med_us": 1733.869, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_medium_mixed", - "threads": 1, - "count": 9901, - "exists": true, - "count_cold_us": 27592.097, - "count_warm_med_us": 27575.353, - "count_warm_p10_us": 26171.446, - "count_warm_p90_us": 29242.31, - "count_engine_med_us": 28051.768, - "exists_cold_us": 2416.416, - "exists_warm_med_us": 1012.835, - "exists_warm_p10_us": 960.249, - "exists_warm_p90_us": 1305.44, - "exists_engine_med_us": 1059.963, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k8_large_mixed", - "threads": 1, - "count": 500157, - "exists": true, - "count_cold_us": 68844.088, - "count_warm_med_us": 74454.825, - "count_warm_p10_us": 70365.371, - "count_warm_p90_us": 97094.385, - "count_engine_med_us": 75137.697, - "exists_cold_us": 2708.76, - "exists_warm_med_us": 1078.064, - "exists_warm_p10_us": 1031.732, - "exists_warm_p90_us": 1164.504, - "exists_engine_med_us": 1167.654, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_tiny_and", - "threads": 1, - "count": 45, - "exists": true, - "count_cold_us": 16202.592, - "count_warm_med_us": 15133.874, - "count_warm_p10_us": 14374.722, - "count_warm_p90_us": 19165.231, - "count_engine_med_us": 20282.867, - "exists_cold_us": 5610.741, - "exists_warm_med_us": 2743.646, - "exists_warm_p10_us": 2577.949, - "exists_warm_p90_us": 2852.861, - "exists_engine_med_us": 2885.269, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_medium_and", - "threads": 1, - "count": 9754, - "exists": true, - "count_cold_us": 25486.78, - "count_warm_med_us": 17023.66, - "count_warm_p10_us": 15979.292, - "count_warm_p90_us": 23307.744, - "count_engine_med_us": 15953.307, - "exists_cold_us": 2747.474, - "exists_warm_med_us": 1162.258, - "exists_warm_p10_us": 1130.052, - "exists_warm_p90_us": 1217.573, - "exists_engine_med_us": 1256.687, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_large_and", - "threads": 1, - "count": 499819, - "exists": true, - "count_cold_us": 22168.435, - "count_warm_med_us": 20204.788, - "count_warm_p10_us": 19763.982, - "count_warm_p90_us": 20634.618, - "count_engine_med_us": 20222.754, - "exists_cold_us": 2873.398, - "exists_warm_med_us": 1175.414, - "exists_warm_p10_us": 1135.837, - "exists_warm_p90_us": 1229.116, - "exists_engine_med_us": 1276.66, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_tiny_or", - "threads": 1, - "count": 1000, - "exists": true, - "count_cold_us": 7369.699, - "count_warm_med_us": 4772.097, - "count_warm_p10_us": 4656.188, - "count_warm_p90_us": 5127.916, - "count_engine_med_us": 5143.049, - "exists_cold_us": 2540.492, - "exists_warm_med_us": 1062.784, - "exists_warm_p10_us": 1018.665, - "exists_warm_p90_us": 1117.372, - "exists_engine_med_us": 1092.258, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_medium_or", - "threads": 1, - "count": 10000, - "exists": true, - "count_cold_us": 23230.197, - "count_warm_med_us": 22157.313, - "count_warm_p10_us": 21868.098, - "count_warm_p90_us": 22501.192, - "count_engine_med_us": 22382.752, - "exists_cold_us": 3032.605, - "exists_warm_med_us": 1163.192, - "exists_warm_p10_us": 1131.756, - "exists_warm_p90_us": 1234.55, - "exists_engine_med_us": 1303.469, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_large_or", - "threads": 1, - "count": 505114, - "exists": true, - "count_cold_us": 47711.883, - "count_warm_med_us": 46298.771, - "count_warm_p10_us": 45491.27, - "count_warm_p90_us": 51725.46, - "count_engine_med_us": 55727.066, - "exists_cold_us": 4926.418, - "exists_warm_med_us": 1836.948, - "exists_warm_p10_us": 1671.241, - "exists_warm_p90_us": 1981.891, - "exists_engine_med_us": 1954.071, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_tiny_mixed", - "threads": 1, - "count": 46, - "exists": true, - "count_cold_us": 24675.944, - "count_warm_med_us": 14384.487, - "count_warm_p10_us": 13272.878, - "count_warm_p90_us": 16296.74, - "count_engine_med_us": 14225.721, - "exists_cold_us": 3785.414, - "exists_warm_med_us": 2724.867, - "exists_warm_p10_us": 2040.199, - "exists_warm_p90_us": 2854.447, - "exists_engine_med_us": 2929.972, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_medium_mixed", - "threads": 1, - "count": 10098, - "exists": true, - "count_cold_us": 39410.82, - "count_warm_med_us": 32478.567, - "count_warm_p10_us": 29958.474, - "count_warm_p90_us": 53496.706, - "count_engine_med_us": 31778.696, - "exists_cold_us": 3258.594, - "exists_warm_med_us": 1307.972, - "exists_warm_p10_us": 1239.962, - "exists_warm_p90_us": 1407.918, - "exists_engine_med_us": 1441.465, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k17_large_mixed", - "threads": 1, - "count": 498269, - "exists": true, - "count_cold_us": 142454.265, - "count_warm_med_us": 139929.269, - "count_warm_p10_us": 134117.766, - "count_warm_p90_us": 158886.723, - "count_engine_med_us": 137801.093, - "exists_cold_us": 3647.101, - "exists_warm_med_us": 1552.611, - "exists_warm_p10_us": 1489.89, - "exists_warm_p90_us": 1769.508, - "exists_engine_med_us": 1686.952, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_tiny_and", - "threads": 1, - "count": 50, - "exists": true, - "count_cold_us": 17641.321, - "count_warm_med_us": 14418.189, - "count_warm_p10_us": 13936.973, - "count_warm_p90_us": 18710.458, - "count_engine_med_us": 14223.188, - "exists_cold_us": 3650.751, - "exists_warm_med_us": 1653.497, - "exists_warm_p10_us": 1543.602, - "exists_warm_p90_us": 1767.134, - "exists_engine_med_us": 1790.24, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_medium_and", - "threads": 1, - "count": 9900, - "exists": true, - "count_cold_us": 21216.388, - "count_warm_med_us": 21674.499, - "count_warm_p10_us": 19298.841, - "count_warm_p90_us": 27764.023, - "count_engine_med_us": 26902.611, - "exists_cold_us": 5445.38, - "exists_warm_med_us": 1422.526, - "exists_warm_p10_us": 1325.954, - "exists_warm_p90_us": 1700.82, - "exists_engine_med_us": 1493.422, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_large_and", - "threads": 1, - "count": 502071, - "exists": true, - "count_cold_us": 25831.832, - "count_warm_med_us": 25627.766, - "count_warm_p10_us": 24582.431, - "count_warm_p90_us": 28365.457, - "count_engine_med_us": 25956.963, - "exists_cold_us": 3650.659, - "exists_warm_med_us": 1403.908, - "exists_warm_p10_us": 1346.015, - "exists_warm_p90_us": 1530.948, - "exists_engine_med_us": 1557.699, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_tiny_or", - "threads": 1, - "count": 1001, - "exists": true, - "count_cold_us": 8322.418, - "count_warm_med_us": 5061.799, - "count_warm_p10_us": 4852.95, - "count_warm_p90_us": 5657.831, - "count_engine_med_us": 5118.637, - "exists_cold_us": 2915.999, - "exists_warm_med_us": 1249.935, - "exists_warm_p10_us": 1183.317, - "exists_warm_p90_us": 1430.973, - "exists_engine_med_us": 1279.631, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_medium_or", - "threads": 1, - "count": 9995, - "exists": true, - "count_cold_us": 25718.424, - "count_warm_med_us": 23987.106, - "count_warm_p10_us": 23126.553, - "count_warm_p90_us": 25852.548, - "count_engine_med_us": 24625.849, - "exists_cold_us": 3275.745, - "exists_warm_med_us": 1328.44, - "exists_warm_p10_us": 1267.951, - "exists_warm_p90_us": 1438.991, - "exists_engine_med_us": 1471.951, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_large_or", - "threads": 1, - "count": 495651, - "exists": true, - "count_cold_us": 54881.129, - "count_warm_med_us": 54222.904, - "count_warm_p10_us": 53622.71, - "count_warm_p90_us": 55982.012, - "count_engine_med_us": 81416.402, - "exists_cold_us": 6229.084, - "exists_warm_med_us": 2195.592, - "exists_warm_p10_us": 2084.728, - "exists_warm_p90_us": 2528.694, - "exists_engine_med_us": 2425.142, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_tiny_mixed", - "threads": 1, - "count": 48, - "exists": true, - "count_cold_us": 123521.158, - "count_warm_med_us": 77685.022, - "count_warm_p10_us": 72891.08, - "count_warm_p90_us": 102411.137, - "count_engine_med_us": 74593.209, - "exists_cold_us": 4258.935, - "exists_warm_med_us": 1816.249, - "exists_warm_p10_us": 1717.845, - "exists_warm_p90_us": 2018.048, - "exists_engine_med_us": 2741.898, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_medium_mixed", - "threads": 1, - "count": 9953, - "exists": true, - "count_cold_us": 131059.566, - "count_warm_med_us": 105626.418, - "count_warm_p10_us": 99976.015, - "count_warm_p90_us": 116641.335, - "count_engine_med_us": 102196.236, - "exists_cold_us": 4111.142, - "exists_warm_med_us": 1680.779, - "exists_warm_p10_us": 1596.774, - "exists_warm_p90_us": 1792.727, - "exists_engine_med_us": 1730.832, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k24_large_mixed", - "threads": 1, - "count": 500471, - "exists": true, - "count_cold_us": 209853.379, - "count_warm_med_us": 210186.662, - "count_warm_p10_us": 197581.16, - "count_warm_p90_us": 234217.23, - "count_engine_med_us": 206403.2, - "exists_cold_us": 4406.125, - "exists_warm_med_us": 2679.321, - "exists_warm_p10_us": 1943.773, - "exists_warm_p90_us": 3062.055, - "exists_engine_med_us": 2770.185, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_one_everything", - "threads": 1, - "count": 10000, - "exists": true, - "count_cold_us": 3034.182, - "count_warm_med_us": 1736.448, - "count_warm_p10_us": 1659.073, - "count_warm_p90_us": 1935.356, - "count_engine_med_us": 1791.541, - "exists_cold_us": 1478.856, - "exists_warm_med_us": 629.836, - "exists_warm_p10_us": 566.683, - "exists_warm_p90_us": 701.735, - "exists_engine_med_us": 748.566, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_one_nothing", - "threads": 1, - "count": 1002, - "exists": true, - "count_cold_us": 3788.993, - "count_warm_med_us": 3253.244, - "count_warm_p10_us": 2534.098, - "count_warm_p90_us": 3774.961, - "count_engine_med_us": 3392.335, - "exists_cold_us": 2286.797, - "exists_warm_med_us": 913.852, - "exists_warm_p10_us": 865.013, - "exists_warm_p90_us": 1002.148, - "exists_engine_med_us": 820.601, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_or_one_everything", - "threads": 1, - "count": 1000000, - "exists": true, - "count_cold_us": 1262.123, - "count_warm_med_us": 568.531, - "count_warm_p10_us": 498.743, - "count_warm_p90_us": 719.076, - "count_engine_med_us": null, - "exists_cold_us": 1937.927, - "exists_warm_med_us": 635.29, - "exists_warm_p10_us": 558.798, - "exists_warm_p90_us": 775.435, - "exists_engine_med_us": 963.684, - "count_stats_folded": true, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_or_one_nothing", - "threads": 1, - "count": 1000, - "exists": true, - "count_cold_us": 4059.881, - "count_warm_med_us": 2203.604, - "count_warm_p10_us": 2115.246, - "count_warm_p90_us": 2545.933, - "count_engine_med_us": 2167.889, - "exists_cold_us": 1465.336, - "exists_warm_med_us": 637.66, - "exists_warm_p10_us": 597.412, - "exists_warm_p90_us": 740.77, - "exists_engine_med_us": 741.717, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_16_nonselective", - "threads": 1, - "count": 827152, - "exists": true, - "count_cold_us": 23302.189, - "count_warm_med_us": 21284.303, - "count_warm_p10_us": 20601.012, - "count_warm_p90_us": 24906.072, - "count_engine_med_us": 29563.096, - "exists_cold_us": 4501.747, - "exists_warm_med_us": 1162.091, - "exists_warm_p10_us": 1108.71, - "exists_warm_p90_us": 1373.85, - "exists_engine_med_us": 1254.943, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_16_collapse_one", - "threads": 1, - "count": 46, - "exists": true, - "count_cold_us": 9459.374, - "count_warm_med_us": 6147.6, - "count_warm_p10_us": 5905.801, - "count_warm_p90_us": 6747.282, - "count_engine_med_us": 6055.354, - "exists_cold_us": 2764.82, - "exists_warm_med_us": 1327.042, - "exists_warm_p10_us": 1272.855, - "exists_warm_p90_us": 1419.722, - "exists_engine_med_us": 1441.89, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_correlated_2", - "threads": 1, - "count": 500001, - "exists": true, - "count_cold_us": 3911.092, - "count_warm_med_us": 2401.495, - "count_warm_p10_us": 2310.692, - "count_warm_p90_us": 3189.221, - "count_engine_med_us": 2445.337, - "exists_cold_us": 1500.974, - "exists_warm_med_us": 598.06, - "exists_warm_p10_us": 555.788, - "exists_warm_p90_us": 652.864, - "exists_engine_med_us": 681.895, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_correlated_5", - "threads": 1, - "count": 490001, - "exists": true, - "count_cold_us": 3959.837, - "count_warm_med_us": 2414.168, - "count_warm_p10_us": 2346.142, - "count_warm_p90_us": 2572.887, - "count_engine_med_us": 2578.969, - "exists_cold_us": 1650.402, - "exists_warm_med_us": 652.238, - "exists_warm_p10_us": 606.425, - "exists_warm_p90_us": 728.564, - "exists_engine_med_us": 765.972, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_contradictory_2", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 1072.203, - "count_warm_med_us": 349.842, - "count_warm_p10_us": 303.266, - "count_warm_p90_us": 407.16, - "count_engine_med_us": 492.805, - "exists_cold_us": 1251.658, - "exists_warm_med_us": 464.347, - "exists_warm_p10_us": 404.765, - "exists_warm_p90_us": 564.221, - "exists_engine_med_us": 568.654, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "adv_contradictory_17", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 2091.671, - "count_warm_med_us": 602.046, - "count_warm_p10_us": 548.46, - "count_warm_p90_us": 718.82, - "count_engine_med_us": 701.824, - "exists_cold_us": 2023.746, - "exists_warm_med_us": 740.08, - "exists_warm_p10_us": 689.568, - "exists_warm_p90_us": 869.389, - "exists_engine_med_us": 828.795, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "null_and", - "threads": 1, - "count": 99875, - "exists": true, - "count_cold_us": 5474.963, - "count_warm_med_us": 2862.637, - "count_warm_p10_us": 2786.077, - "count_warm_p90_us": 3162.635, - "count_engine_med_us": 3037.276, - "exists_cold_us": 1588.523, - "exists_warm_med_us": 679.676, - "exists_warm_p10_us": 596.754, - "exists_warm_p90_us": 811.967, - "exists_engine_med_us": 714.659, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "null_not", - "threads": 1, - "count": 450007, - "exists": true, - "count_cold_us": 3099.19, - "count_warm_med_us": 2189.983, - "count_warm_p10_us": 2113.491, - "count_warm_p90_us": 2367.238, - "count_engine_med_us": 2244.78, - "exists_cold_us": 1335.75, - "exists_warm_med_us": 570.477, - "exists_warm_p10_us": 530.092, - "exists_warm_p90_us": 655.469, - "exists_engine_med_us": 673.707, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "null_or", - "threads": 1, - "count": 190006, - "exists": true, - "count_cold_us": 10721.345, - "count_warm_med_us": 9313.864, - "count_warm_p10_us": 8953.027, - "count_warm_p90_us": 10159.407, - "count_engine_med_us": 9174.331, - "exists_cold_us": 1482.311, - "exists_warm_med_us": 662.509, - "exists_warm_p10_us": 604.777, - "exists_warm_p90_us": 718.458, - "exists_engine_med_us": 736.322, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "null_not_and", - "threads": 1, - "count": 850017, - "exists": true, - "count_cold_us": 26742.237, - "count_warm_med_us": 26557.319, - "count_warm_p10_us": 26172.274, - "count_warm_p90_us": 27141.901, - "count_engine_med_us": 27339.153, - "exists_cold_us": 1781.198, - "exists_warm_med_us": 731.315, - "exists_warm_p10_us": 706.061, - "exists_warm_p90_us": 812.344, - "exists_engine_med_us": 798.048, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "null_and_5", - "threads": 1, - "count": 267454, - "exists": true, - "count_cold_us": 7590.344, - "count_warm_med_us": 4991.545, - "count_warm_p10_us": 4890.714, - "count_warm_p90_us": 5216.832, - "count_engine_med_us": 5394.244, - "exists_cold_us": 1811.56, - "exists_warm_med_us": 802.284, - "exists_warm_p10_us": 729.042, - "exists_warm_p90_us": 907.866, - "exists_engine_med_us": 838.597, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 105.69 - }, - { - "id": "k1_tiny_single", - "threads": 4, - "count": 1000, - "exists": true, - "count_cold_us": 2051.446, - "count_warm_med_us": 1139.302, - "count_warm_p10_us": 1047.484, - "count_warm_p90_us": 1222.874, - "count_engine_med_us": 1264.418, - "exists_cold_us": 1814.257, - "exists_warm_med_us": 927.862, - "exists_warm_p10_us": 828.252, - "exists_warm_p90_us": 1064.624, - "exists_engine_med_us": 1001.866, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k1_medium_single", - "threads": 4, - "count": 10000, - "exists": true, - "count_cold_us": 2089.718, - "count_warm_med_us": 1194.581, - "count_warm_p10_us": 1085.681, - "count_warm_p90_us": 1294.614, - "count_engine_med_us": 1195.199, - "exists_cold_us": 1760.333, - "exists_warm_med_us": 875.089, - "exists_warm_p10_us": 807.288, - "exists_warm_p90_us": 940.238, - "exists_engine_med_us": 979.626, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k1_large_single", - "threads": 4, - "count": 500005, - "exists": true, - "count_cold_us": 2235.404, - "count_warm_med_us": 1018.219, - "count_warm_p10_us": 936.083, - "count_warm_p90_us": 1232.827, - "count_engine_med_us": 1065.453, - "exists_cold_us": 1620.918, - "exists_warm_med_us": 967.318, - "exists_warm_p10_us": 877.973, - "exists_warm_p90_us": 1057.094, - "exists_engine_med_us": 1040.404, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_tiny_and", - "threads": 4, - "count": 765, - "exists": true, - "count_cold_us": 3195.431, - "count_warm_med_us": 1775.709, - "count_warm_p10_us": 1688.38, - "count_warm_p90_us": 1957.75, - "count_engine_med_us": 1627.183, - "exists_cold_us": 1957.465, - "exists_warm_med_us": 1010.927, - "exists_warm_p10_us": 954.17, - "exists_warm_p90_us": 1130.881, - "exists_engine_med_us": 1094.858, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_medium_and", - "threads": 4, - "count": 10139, - "exists": true, - "count_cold_us": 2807.626, - "count_warm_med_us": 1711.584, - "count_warm_p10_us": 1520.262, - "count_warm_p90_us": 1892.006, - "count_engine_med_us": 1854.879, - "exists_cold_us": 2689.931, - "exists_warm_med_us": 1328.67, - "exists_warm_p10_us": 1220.539, - "exists_warm_p90_us": 1416.199, - "exists_engine_med_us": 1095.426, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_large_and", - "threads": 4, - "count": 499628, - "exists": true, - "count_cold_us": 3105.366, - "count_warm_med_us": 1989.321, - "count_warm_p10_us": 1543.828, - "count_warm_p90_us": 2190.608, - "count_engine_med_us": 2067.779, - "exists_cold_us": 2237.78, - "exists_warm_med_us": 1078.591, - "exists_warm_p10_us": 1008.038, - "exists_warm_p90_us": 1144.278, - "exists_engine_med_us": 1187.228, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_tiny_or", - "threads": 4, - "count": 999, - "exists": true, - "count_cold_us": 2730.076, - "count_warm_med_us": 1615.276, - "count_warm_p10_us": 1494.063, - "count_warm_p90_us": 1791.116, - "count_engine_med_us": 1660.12, - "exists_cold_us": 2107.772, - "exists_warm_med_us": 1073.628, - "exists_warm_p10_us": 1030.014, - "exists_warm_p90_us": 1144.556, - "exists_engine_med_us": 1271.973, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_medium_or", - "threads": 4, - "count": 10000, - "exists": true, - "count_cold_us": 4434.174, - "count_warm_med_us": 3302.192, - "count_warm_p10_us": 3153.088, - "count_warm_p90_us": 3696.75, - "count_engine_med_us": 3247.238, - "exists_cold_us": 2101.432, - "exists_warm_med_us": 1109.456, - "exists_warm_p10_us": 1001.397, - "exists_warm_p90_us": 1383.876, - "exists_engine_med_us": 1547.226, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_large_or", - "threads": 4, - "count": 500615, - "exists": true, - "count_cold_us": 8795.092, - "count_warm_med_us": 7746.15, - "count_warm_p10_us": 7482.265, - "count_warm_p90_us": 7968.991, - "count_engine_med_us": 7614.983, - "exists_cold_us": 2801.644, - "exists_warm_med_us": 1427.287, - "exists_warm_p10_us": 1344.996, - "exists_warm_p90_us": 1544.828, - "exists_engine_med_us": 1516.904, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_tiny_mixed", - "threads": 4, - "count": 428, - "exists": true, - "count_cold_us": 3923.748, - "count_warm_med_us": 2406.544, - "count_warm_p10_us": 2317.715, - "count_warm_p90_us": 2574.692, - "count_engine_med_us": 2385.183, - "exists_cold_us": 2072.512, - "exists_warm_med_us": 1093.364, - "exists_warm_p10_us": 1040.778, - "exists_warm_p90_us": 1166.52, - "exists_engine_med_us": 1321.461, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_medium_mixed", - "threads": 4, - "count": 9819, - "exists": true, - "count_cold_us": 3839.905, - "count_warm_med_us": 2341.783, - "count_warm_p10_us": 2229.363, - "count_warm_p90_us": 2506.224, - "count_engine_med_us": 2395.295, - "exists_cold_us": 2333.16, - "exists_warm_med_us": 1109.859, - "exists_warm_p10_us": 1026.468, - "exists_warm_p90_us": 1245.635, - "exists_engine_med_us": 1182.935, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k3_large_mixed", - "threads": 4, - "count": 499424, - "exists": true, - "count_cold_us": 7204.736, - "count_warm_med_us": 6041.18, - "count_warm_p10_us": 4763.863, - "count_warm_p90_us": 6222.741, - "count_engine_med_us": 6048.111, - "exists_cold_us": 2104.018, - "exists_warm_med_us": 1085.521, - "exists_warm_p10_us": 1008.872, - "exists_warm_p90_us": 1141.359, - "exists_engine_med_us": 1212.161, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_tiny_and", - "threads": 4, - "count": 46, - "exists": true, - "count_cold_us": 4280.941, - "count_warm_med_us": 2556.513, - "count_warm_p10_us": 2399.973, - "count_warm_p90_us": 2675.363, - "count_engine_med_us": 2602.181, - "exists_cold_us": 2645.51, - "exists_warm_med_us": 1608.903, - "exists_warm_p10_us": 1484.047, - "exists_warm_p90_us": 1853.389, - "exists_engine_med_us": 1672.461, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_medium_and", - "threads": 4, - "count": 10097, - "exists": true, - "count_cold_us": 5027.646, - "count_warm_med_us": 3211.493, - "count_warm_p10_us": 2994.026, - "count_warm_p90_us": 3527.366, - "count_engine_med_us": 3379.622, - "exists_cold_us": 2473.372, - "exists_warm_med_us": 1232.362, - "exists_warm_p10_us": 1131.308, - "exists_warm_p90_us": 1443.902, - "exists_engine_med_us": 1378.106, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_large_and", - "threads": 4, - "count": 498124, - "exists": true, - "count_cold_us": 5572.477, - "count_warm_med_us": 3575.619, - "count_warm_p10_us": 2844.698, - "count_warm_p90_us": 4011.171, - "count_engine_med_us": 3563.639, - "exists_cold_us": 2888.924, - "exists_warm_med_us": 1244.84, - "exists_warm_p10_us": 1157.03, - "exists_warm_p90_us": 1343.834, - "exists_engine_med_us": 1392.66, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_tiny_or", - "threads": 4, - "count": 999, - "exists": true, - "count_cold_us": 4309.99, - "count_warm_med_us": 2206.007, - "count_warm_p10_us": 2022.095, - "count_warm_p90_us": 2511.203, - "count_engine_med_us": 2246.272, - "exists_cold_us": 2421.226, - "exists_warm_med_us": 1314.814, - "exists_warm_p10_us": 1155.73, - "exists_warm_p90_us": 1529.093, - "exists_engine_med_us": 1563.59, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_medium_or", - "threads": 4, - "count": 9997, - "exists": true, - "count_cold_us": 9644.462, - "count_warm_med_us": 7392.779, - "count_warm_p10_us": 6823.181, - "count_warm_p90_us": 7643.443, - "count_engine_med_us": 6884.187, - "exists_cold_us": 2606.072, - "exists_warm_med_us": 1253.41, - "exists_warm_p10_us": 1134.624, - "exists_warm_p90_us": 1444.511, - "exists_engine_med_us": 1388.4, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_large_or", - "threads": 4, - "count": 498831, - "exists": true, - "count_cold_us": 12006.155, - "count_warm_med_us": 10587.485, - "count_warm_p10_us": 8223.412, - "count_warm_p90_us": 11633.76, - "count_engine_med_us": 10985.822, - "exists_cold_us": 2504.608, - "exists_warm_med_us": 1334.602, - "exists_warm_p10_us": 1267.497, - "exists_warm_p90_us": 1488.594, - "exists_engine_med_us": 1473.929, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_tiny_mixed", - "threads": 4, - "count": 91, - "exists": true, - "count_cold_us": 7968.694, - "count_warm_med_us": 6487.266, - "count_warm_p10_us": 4581.427, - "count_warm_p90_us": 6857.16, - "count_engine_med_us": 4835.117, - "exists_cold_us": 6122.52, - "exists_warm_med_us": 2416.905, - "exists_warm_p10_us": 2224.268, - "exists_warm_p90_us": 2900.962, - "exists_engine_med_us": 3100.147, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_medium_mixed", - "threads": 4, - "count": 9901, - "exists": true, - "count_cold_us": 14334.661, - "count_warm_med_us": 10984.387, - "count_warm_p10_us": 9385.988, - "count_warm_p90_us": 11914.26, - "count_engine_med_us": 11573.364, - "exists_cold_us": 2824.801, - "exists_warm_med_us": 1398.743, - "exists_warm_p10_us": 1286.367, - "exists_warm_p90_us": 1768.929, - "exists_engine_med_us": 1399.969, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k8_large_mixed", - "threads": 4, - "count": 500157, - "exists": true, - "count_cold_us": 21671.676, - "count_warm_med_us": 26765.531, - "count_warm_p10_us": 21639.71, - "count_warm_p90_us": 27992.222, - "count_engine_med_us": 27626.252, - "exists_cold_us": 3364.576, - "exists_warm_med_us": 1583.201, - "exists_warm_p10_us": 1433.349, - "exists_warm_p90_us": 1908.026, - "exists_engine_med_us": 1809.757, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_tiny_and", - "threads": 4, - "count": 45, - "exists": true, - "count_cold_us": 8819.918, - "count_warm_med_us": 5477.55, - "count_warm_p10_us": 4989.976, - "count_warm_p90_us": 7065.617, - "count_engine_med_us": 5054.952, - "exists_cold_us": 4590.027, - "exists_warm_med_us": 2799.713, - "exists_warm_p10_us": 2592.24, - "exists_warm_p90_us": 3296.993, - "exists_engine_med_us": 3688.541, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_medium_and", - "threads": 4, - "count": 9754, - "exists": true, - "count_cold_us": 9762.722, - "count_warm_med_us": 7021.685, - "count_warm_p10_us": 6561.543, - "count_warm_p90_us": 8643.787, - "count_engine_med_us": 6300.369, - "exists_cold_us": 3214.666, - "exists_warm_med_us": 1972.197, - "exists_warm_p10_us": 1566.449, - "exists_warm_p90_us": 2584.399, - "exists_engine_med_us": 2577.064, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_large_and", - "threads": 4, - "count": 499819, - "exists": true, - "count_cold_us": 12377.317, - "count_warm_med_us": 9519.303, - "count_warm_p10_us": 8655.784, - "count_warm_p90_us": 10377.119, - "count_engine_med_us": 8798.607, - "exists_cold_us": 4590.415, - "exists_warm_med_us": 2216.522, - "exists_warm_p10_us": 2098.891, - "exists_warm_p90_us": 2523.831, - "exists_engine_med_us": 2597.633, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_tiny_or", - "threads": 4, - "count": 1000, - "exists": true, - "count_cold_us": 6267.727, - "count_warm_med_us": 3657.177, - "count_warm_p10_us": 3421.061, - "count_warm_p90_us": 4938.33, - "count_engine_med_us": 3620.673, - "exists_cold_us": 5632.256, - "exists_warm_med_us": 2005.934, - "exists_warm_p10_us": 1937.813, - "exists_warm_p90_us": 2287.978, - "exists_engine_med_us": 2058.107, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_medium_or", - "threads": 4, - "count": 10000, - "exists": true, - "count_cold_us": 12281.654, - "count_warm_med_us": 9796.78, - "count_warm_p10_us": 8676.409, - "count_warm_p90_us": 10790.623, - "count_engine_med_us": 9902.796, - "exists_cold_us": 3459.617, - "exists_warm_med_us": 1761.301, - "exists_warm_p10_us": 1623.266, - "exists_warm_p90_us": 1932.543, - "exists_engine_med_us": 1806.484, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_large_or", - "threads": 4, - "count": 505114, - "exists": true, - "count_cold_us": 21666.706, - "count_warm_med_us": 17303.52, - "count_warm_p10_us": 16878.824, - "count_warm_p90_us": 18495.066, - "count_engine_med_us": 17122.599, - "exists_cold_us": 4903.486, - "exists_warm_med_us": 2216.949, - "exists_warm_p10_us": 1622.52, - "exists_warm_p90_us": 2419.524, - "exists_engine_med_us": 2124.395, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_tiny_mixed", - "threads": 4, - "count": 46, - "exists": true, - "count_cold_us": 9872.719, - "count_warm_med_us": 7023.065, - "count_warm_p10_us": 6287.103, - "count_warm_p90_us": 8149.885, - "count_engine_med_us": 6161.872, - "exists_cold_us": 5047.583, - "exists_warm_med_us": 3655.084, - "exists_warm_p10_us": 3433.44, - "exists_warm_p90_us": 3915.402, - "exists_engine_med_us": 3950.334, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_medium_mixed", - "threads": 4, - "count": 10098, - "exists": true, - "count_cold_us": 18719.016, - "count_warm_med_us": 14138.304, - "count_warm_p10_us": 13829.172, - "count_warm_p90_us": 14914.045, - "count_engine_med_us": 14204.142, - "exists_cold_us": 4937.422, - "exists_warm_med_us": 2318.785, - "exists_warm_p10_us": 2198.599, - "exists_warm_p90_us": 2533.356, - "exists_engine_med_us": 2621.008, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k17_large_mixed", - "threads": 4, - "count": 498269, - "exists": true, - "count_cold_us": 51542.012, - "count_warm_med_us": 49926.059, - "count_warm_p10_us": 48174.95, - "count_warm_p90_us": 56547.522, - "count_engine_med_us": 50849.168, - "exists_cold_us": 5690.108, - "exists_warm_med_us": 2620.329, - "exists_warm_p10_us": 2475.016, - "exists_warm_p90_us": 2921.692, - "exists_engine_med_us": 3027.899, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_tiny_and", - "threads": 4, - "count": 50, - "exists": true, - "count_cold_us": 9855.396, - "count_warm_med_us": 5905.005, - "count_warm_p10_us": 5375.902, - "count_warm_p90_us": 10158.997, - "count_engine_med_us": 5666.52, - "exists_cold_us": 4366.262, - "exists_warm_med_us": 2537.192, - "exists_warm_p10_us": 2319.647, - "exists_warm_p90_us": 3188.604, - "exists_engine_med_us": 3246.641, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_medium_and", - "threads": 4, - "count": 9900, - "exists": true, - "count_cold_us": 10986.547, - "count_warm_med_us": 7744.652, - "count_warm_p10_us": 7393.937, - "count_warm_p90_us": 8614.399, - "count_engine_med_us": 7598.147, - "exists_cold_us": 5072.367, - "exists_warm_med_us": 2176.174, - "exists_warm_p10_us": 1812.541, - "exists_warm_p90_us": 2311.61, - "exists_engine_med_us": 2481.376, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_large_and", - "threads": 4, - "count": 502071, - "exists": true, - "count_cold_us": 14038.655, - "count_warm_med_us": 9555.74, - "count_warm_p10_us": 7193.646, - "count_warm_p90_us": 10101.339, - "count_engine_med_us": 10058.713, - "exists_cold_us": 5566.84, - "exists_warm_med_us": 1778.967, - "exists_warm_p10_us": 1693.291, - "exists_warm_p90_us": 1917.273, - "exists_engine_med_us": 2206.866, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_tiny_or", - "threads": 4, - "count": 1001, - "exists": true, - "count_cold_us": 5672.704, - "count_warm_med_us": 2949.728, - "count_warm_p10_us": 2604.039, - "count_warm_p90_us": 3274.655, - "count_engine_med_us": 2996.862, - "exists_cold_us": 3642.819, - "exists_warm_med_us": 1687.655, - "exists_warm_p10_us": 1521.063, - "exists_warm_p90_us": 2193.047, - "exists_engine_med_us": 1761.785, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_medium_or", - "threads": 4, - "count": 9995, - "exists": true, - "count_cold_us": 9039.662, - "count_warm_med_us": 9341.259, - "count_warm_p10_us": 7106.886, - "count_warm_p90_us": 10163.595, - "count_engine_med_us": 10687.128, - "exists_cold_us": 4468.585, - "exists_warm_med_us": 2293.076, - "exists_warm_p10_us": 1936.69, - "exists_warm_p90_us": 2550.824, - "exists_engine_med_us": 2755.063, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_large_or", - "threads": 4, - "count": 495651, - "exists": true, - "count_cold_us": 26899.539, - "count_warm_med_us": 21958.256, - "count_warm_p10_us": 20359.569, - "count_warm_p90_us": 22650.281, - "count_engine_med_us": 18904.639, - "exists_cold_us": 3763.181, - "exists_warm_med_us": 1900.782, - "exists_warm_p10_us": 1747.663, - "exists_warm_p90_us": 2181.572, - "exists_engine_med_us": 2090.671, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_tiny_mixed", - "threads": 4, - "count": 48, - "exists": true, - "count_cold_us": 29599.811, - "count_warm_med_us": 26730.067, - "count_warm_p10_us": 21494.266, - "count_warm_p90_us": 28035.429, - "count_engine_med_us": 25867.293, - "exists_cold_us": 9944.342, - "exists_warm_med_us": 7325.527, - "exists_warm_p10_us": 6987.066, - "exists_warm_p90_us": 8121.114, - "exists_engine_med_us": 7301.483, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_medium_mixed", - "threads": 4, - "count": 9953, - "exists": true, - "count_cold_us": 34308.71, - "count_warm_med_us": 36972.941, - "count_warm_p10_us": 30342.041, - "count_warm_p90_us": 43247.439, - "count_engine_med_us": 38432.194, - "exists_cold_us": 4593.083, - "exists_warm_med_us": 2156.431, - "exists_warm_p10_us": 2023.361, - "exists_warm_p90_us": 2294.316, - "exists_engine_med_us": 2390.522, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "k24_large_mixed", - "threads": 4, - "count": 500471, - "exists": true, - "count_cold_us": 57369.452, - "count_warm_med_us": 60307.553, - "count_warm_p10_us": 53321.716, - "count_warm_p90_us": 70663.219, - "count_engine_med_us": 66207.072, - "exists_cold_us": 5078.141, - "exists_warm_med_us": 2320.693, - "exists_warm_p10_us": 2161.587, - "exists_warm_p90_us": 2651.245, - "exists_engine_med_us": 2277.31, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_one_everything", - "threads": 4, - "count": 10000, - "exists": true, - "count_cold_us": 2194.826, - "count_warm_med_us": 1192.516, - "count_warm_p10_us": 1102.167, - "count_warm_p90_us": 1310.747, - "count_engine_med_us": 1300.108, - "exists_cold_us": 1881.187, - "exists_warm_med_us": 994.064, - "exists_warm_p10_us": 941.687, - "exists_warm_p90_us": 1114.521, - "exists_engine_med_us": 1060.978, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_one_nothing", - "threads": 4, - "count": 1002, - "exists": true, - "count_cold_us": 3063.021, - "count_warm_med_us": 1669.456, - "count_warm_p10_us": 1571.144, - "count_warm_p90_us": 1822.994, - "count_engine_med_us": 1835.651, - "exists_cold_us": 1923.263, - "exists_warm_med_us": 1048.372, - "exists_warm_p10_us": 921.967, - "exists_warm_p90_us": 1378.58, - "exists_engine_med_us": 1363.327, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_or_one_everything", - "threads": 4, - "count": 1000000, - "exists": true, - "count_cold_us": 2127.866, - "count_warm_med_us": 714.926, - "count_warm_p10_us": 583.568, - "count_warm_p90_us": 1277.241, - "count_engine_med_us": null, - "exists_cold_us": 2717.184, - "exists_warm_med_us": 802.745, - "exists_warm_p10_us": 737.677, - "exists_warm_p90_us": 963.016, - "exists_engine_med_us": 996.882, - "count_stats_folded": true, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_or_one_nothing", - "threads": 4, - "count": 1000, - "exists": true, - "count_cold_us": 2637.15, - "count_warm_med_us": 1582.298, - "count_warm_p10_us": 1375.38, - "count_warm_p90_us": 1687.622, - "count_engine_med_us": 1662.749, - "exists_cold_us": 1912.519, - "exists_warm_med_us": 973.994, - "exists_warm_p10_us": 877.207, - "exists_warm_p90_us": 1100.177, - "exists_engine_med_us": 1118.753, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_16_nonselective", - "threads": 4, - "count": 827152, - "exists": true, - "count_cold_us": 10327.381, - "count_warm_med_us": 7983.685, - "count_warm_p10_us": 7487.063, - "count_warm_p90_us": 8781.882, - "count_engine_med_us": 7986.808, - "exists_cold_us": 3597.36, - "exists_warm_med_us": 1664.948, - "exists_warm_p10_us": 1568.237, - "exists_warm_p90_us": 1878.976, - "exists_engine_med_us": 1793.336, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_16_collapse_one", - "threads": 4, - "count": 46, - "exists": true, - "count_cold_us": 5901.165, - "count_warm_med_us": 3516.848, - "count_warm_p10_us": 3371.847, - "count_warm_p90_us": 3765.41, - "count_engine_med_us": 3556.431, - "exists_cold_us": 3679.681, - "exists_warm_med_us": 2077.584, - "exists_warm_p10_us": 1928.684, - "exists_warm_p90_us": 2220.755, - "exists_engine_med_us": 2180.09, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_correlated_2", - "threads": 4, - "count": 500001, - "exists": true, - "count_cold_us": 2564.117, - "count_warm_med_us": 1566.666, - "count_warm_p10_us": 1392.653, - "count_warm_p90_us": 1758.922, - "count_engine_med_us": 1488.697, - "exists_cold_us": 1840.03, - "exists_warm_med_us": 986.09, - "exists_warm_p10_us": 919.789, - "exists_warm_p90_us": 1061.513, - "exists_engine_med_us": 1180.559, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_correlated_5", - "threads": 4, - "count": 490001, - "exists": true, - "count_cold_us": 2698.497, - "count_warm_med_us": 1658.935, - "count_warm_p10_us": 1528.551, - "count_warm_p90_us": 1775.477, - "count_engine_med_us": 1662.861, - "exists_cold_us": 2737.458, - "exists_warm_med_us": 1049.784, - "exists_warm_p10_us": 960.2, - "exists_warm_p90_us": 1207.568, - "exists_engine_med_us": 1156.534, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_contradictory_2", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 1487.956, - "count_warm_med_us": 554.68, - "count_warm_p10_us": 480.254, - "count_warm_p90_us": 638.74, - "count_engine_med_us": 597.595, - "exists_cold_us": 1690.194, - "exists_warm_med_us": 740.431, - "exists_warm_p10_us": 664.818, - "exists_warm_p90_us": 808.991, - "exists_engine_med_us": 863.718, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "adv_contradictory_17", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 3085.611, - "count_warm_med_us": 1155.277, - "count_warm_p10_us": 743.344, - "count_warm_p90_us": 1307.314, - "count_engine_med_us": 824.096, - "exists_cold_us": 2420.91, - "exists_warm_med_us": 985.468, - "exists_warm_p10_us": 923.801, - "exists_warm_p90_us": 1106.023, - "exists_engine_med_us": 989.059, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "null_and", - "threads": 4, - "count": 99875, - "exists": true, - "count_cold_us": 2924.824, - "count_warm_med_us": 1765.143, - "count_warm_p10_us": 1457.853, - "count_warm_p90_us": 1955.162, - "count_engine_med_us": 1708.561, - "exists_cold_us": 1877.747, - "exists_warm_med_us": 963.489, - "exists_warm_p10_us": 896.82, - "exists_warm_p90_us": 1028.814, - "exists_engine_med_us": 1062.065, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "null_not", - "threads": 4, - "count": 450007, - "exists": true, - "count_cold_us": 2426.254, - "count_warm_med_us": 1289.668, - "count_warm_p10_us": 1180.428, - "count_warm_p90_us": 1423.775, - "count_engine_med_us": 1252.45, - "exists_cold_us": 1708.295, - "exists_warm_med_us": 845.252, - "exists_warm_p10_us": 786.49, - "exists_warm_p90_us": 930.016, - "exists_engine_med_us": 995.635, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "null_or", - "threads": 4, - "count": 190006, - "exists": true, - "count_cold_us": 4111.105, - "count_warm_med_us": 3894.793, - "count_warm_p10_us": 3769.778, - "count_warm_p90_us": 4155.265, - "count_engine_med_us": 4046.264, - "exists_cold_us": 1775.483, - "exists_warm_med_us": 1001.545, - "exists_warm_p10_us": 915.337, - "exists_warm_p90_us": 1077.929, - "exists_engine_med_us": 1120.374, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "null_not_and", - "threads": 4, - "count": 850017, - "exists": true, - "count_cold_us": 10708.737, - "count_warm_med_us": 9881.909, - "count_warm_p10_us": 9574.747, - "count_warm_p90_us": 10409.391, - "count_engine_med_us": 9599.839, - "exists_cold_us": 2200.933, - "exists_warm_med_us": 1034.653, - "exists_warm_p10_us": 963.539, - "exists_warm_p90_us": 1181.843, - "exists_engine_med_us": 1166.928, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - }, - { - "id": "null_and_5", - "threads": 4, - "count": 267454, - "exists": true, - "count_cold_us": 3978.5, - "count_warm_med_us": 2810.408, - "count_warm_p10_us": 2653.619, - "count_warm_p90_us": 3018.925, - "count_engine_med_us": 2845.055, - "exists_cold_us": 2300.549, - "exists_warm_med_us": 1117.777, - "exists_warm_p10_us": 1049.73, - "exists_warm_p90_us": 1300.315, - "exists_engine_med_us": 1182.867, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 191.498 - } - ] -} \ No newline at end of file +"n": 1000000, +"duckdb_version": "2.0.0", +"runs": 31, +"load": {"1": {"build_us": 432941.514, "analyze_us": 361.902, "load_us": 433303.416, "mem_bytes": 82446632}, "4": {"build_us": 407966.601, "analyze_us": 425.116, "load_us": 408391.717, "mem_bytes": 82446632}}, +"records": [ +{"id": "k1_tiny_single", "threads": 1, "count": 1000, "exists": true, "count_cold_us": 5621.02, "count_warm_med_us": 1918.268, "count_warm_p10_us": 1664.774, "count_warm_p90_us": 2485.728, "count_engine_med_us": 1981.609, "exists_cold_us": 1378.305, "exists_warm_med_us": 589.417, "exists_warm_p10_us": 510.031, "exists_warm_p90_us": 702.132, "exists_engine_med_us": 674.559, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k1_medium_single", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 2687.324, "count_warm_med_us": 1738.972, "count_warm_p10_us": 1630.374, "count_warm_p90_us": 2045.268, "count_engine_med_us": 1798.954, "exists_cold_us": 1908.953, "exists_warm_med_us": 852.655, "exists_warm_p10_us": 813.352, "exists_warm_p90_us": 926.575, "exists_engine_med_us": 898.931, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k1_large_single", "threads": 1, "count": 500005, "exists": true, "count_cold_us": 3934.294, "count_warm_med_us": 2580.879, "count_warm_p10_us": 1633.903, "count_warm_p90_us": 3405.558, "count_engine_med_us": 2118.66, "exists_cold_us": 1670.479, "exists_warm_med_us": 744.503, "exists_warm_p10_us": 690.84, "exists_warm_p90_us": 815.906, "exists_engine_med_us": 812.895, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_tiny_and", "threads": 1, "count": 765, "exists": true, "count_cold_us": 6869.788, "count_warm_med_us": 4638.318, "count_warm_p10_us": 3131.511, "count_warm_p90_us": 4788.883, "count_engine_med_us": 4933.59, "exists_cold_us": 1946.865, "exists_warm_med_us": 842.384, "exists_warm_p10_us": 725.3, "exists_warm_p90_us": 906.546, "exists_engine_med_us": 786.595, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_medium_and", "threads": 1, "count": 10139, "exists": true, "count_cold_us": 4540.33, "count_warm_med_us": 3490.399, "count_warm_p10_us": 2999.365, "count_warm_p90_us": 4342.667, "count_engine_med_us": 4234.648, "exists_cold_us": 2295.528, "exists_warm_med_us": 902.736, "exists_warm_p10_us": 693.118, "exists_warm_p90_us": 1075.683, "exists_engine_med_us": 1052.391, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_large_and", "threads": 1, "count": 499628, "exists": true, "count_cold_us": 7351.869, "count_warm_med_us": 3341.871, "count_warm_p10_us": 3212.788, "count_warm_p90_us": 3895.041, "count_engine_med_us": 3411.843, "exists_cold_us": 2005.698, "exists_warm_med_us": 874.733, "exists_warm_p10_us": 691.211, "exists_warm_p90_us": 920.28, "exists_engine_med_us": 962.231, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_tiny_or", "threads": 1, "count": 999, "exists": true, "count_cold_us": 4991.015, "count_warm_med_us": 2403.109, "count_warm_p10_us": 2231.592, "count_warm_p90_us": 3704.63, "count_engine_med_us": 2950.291, "exists_cold_us": 2220.248, "exists_warm_med_us": 965.596, "exists_warm_p10_us": 763.012, "exists_warm_p90_us": 1038.172, "exists_engine_med_us": 799.273, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_medium_or", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 8215.602, "count_warm_med_us": 6476.471, "count_warm_p10_us": 5925.722, "count_warm_p90_us": 8647.368, "count_engine_med_us": 6880.935, "exists_cold_us": 1558.995, "exists_warm_med_us": 691.077, "exists_warm_p10_us": 657.335, "exists_warm_p90_us": 804.854, "exists_engine_med_us": 816.07, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_large_or", "threads": 1, "count": 500615, "exists": true, "count_cold_us": 26836.568, "count_warm_med_us": 21854.879, "count_warm_p10_us": 19720.203, "count_warm_p90_us": 26873.995, "count_engine_med_us": 20115.064, "exists_cold_us": 2044.355, "exists_warm_med_us": 728.655, "exists_warm_p10_us": 667.007, "exists_warm_p90_us": 829.44, "exists_engine_med_us": 945.821, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_tiny_mixed", "threads": 1, "count": 428, "exists": true, "count_cold_us": 6459.539, "count_warm_med_us": 3714.813, "count_warm_p10_us": 3433.579, "count_warm_p90_us": 4239.921, "count_engine_med_us": 3736.24, "exists_cold_us": 1638.374, "exists_warm_med_us": 730.017, "exists_warm_p10_us": 681.321, "exists_warm_p90_us": 901.651, "exists_engine_med_us": 735.94, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_medium_mixed", "threads": 1, "count": 9819, "exists": true, "count_cold_us": 7609.299, "count_warm_med_us": 4009.266, "count_warm_p10_us": 3846.237, "count_warm_p90_us": 5154.643, "count_engine_med_us": 4073.93, "exists_cold_us": 1724.633, "exists_warm_med_us": 721.591, "exists_warm_p10_us": 670.985, "exists_warm_p90_us": 786.934, "exists_engine_med_us": 791.989, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k3_large_mixed", "threads": 1, "count": 499424, "exists": true, "count_cold_us": 16725.484, "count_warm_med_us": 15868.025, "count_warm_p10_us": 14599.471, "count_warm_p90_us": 19770.281, "count_engine_med_us": 14564.578, "exists_cold_us": 1721.867, "exists_warm_med_us": 1095.727, "exists_warm_p10_us": 1075.439, "exists_warm_p90_us": 1180.951, "exists_engine_med_us": 1149.461, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_tiny_and", "threads": 1, "count": 46, "exists": true, "count_cold_us": 9540.841, "count_warm_med_us": 4496.883, "count_warm_p10_us": 4310.876, "count_warm_p90_us": 5309.017, "count_engine_med_us": 4455.384, "exists_cold_us": 2254.435, "exists_warm_med_us": 1017.438, "exists_warm_p10_us": 969.966, "exists_warm_p90_us": 1208.107, "exists_engine_med_us": 1109.475, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_medium_and", "threads": 1, "count": 10097, "exists": true, "count_cold_us": 16134.646, "count_warm_med_us": 6335.387, "count_warm_p10_us": 5982.254, "count_warm_p90_us": 7914.624, "count_engine_med_us": 6355.062, "exists_cold_us": 2010.991, "exists_warm_med_us": 881.729, "exists_warm_p10_us": 828.76, "exists_warm_p90_us": 987.085, "exists_engine_med_us": 985.948, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_large_and", "threads": 1, "count": 498124, "exists": true, "count_cold_us": 11245.263, "count_warm_med_us": 7755.427, "count_warm_p10_us": 7474.505, "count_warm_p90_us": 9139.924, "count_engine_med_us": 8069.13, "exists_cold_us": 1984.443, "exists_warm_med_us": 881.543, "exists_warm_p10_us": 834.376, "exists_warm_p90_us": 966.274, "exists_engine_med_us": 1011.495, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_tiny_or", "threads": 1, "count": 999, "exists": true, "count_cold_us": 5411.93, "count_warm_med_us": 3547.239, "count_warm_p10_us": 3202.172, "count_warm_p90_us": 5062.949, "count_engine_med_us": 3593.424, "exists_cold_us": 2142.36, "exists_warm_med_us": 870.539, "exists_warm_p10_us": 771.103, "exists_warm_p90_us": 986.619, "exists_engine_med_us": 983.942, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_medium_or", "threads": 1, "count": 9997, "exists": true, "count_cold_us": 18002.665, "count_warm_med_us": 16571.528, "count_warm_p10_us": 16181.984, "count_warm_p90_us": 17253.63, "count_engine_med_us": 17463.041, "exists_cold_us": 2154.29, "exists_warm_med_us": 954.432, "exists_warm_p10_us": 872.336, "exists_warm_p90_us": 1249.496, "exists_engine_med_us": 1001.275, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_large_or", "threads": 1, "count": 498831, "exists": true, "count_cold_us": 34061.571, "count_warm_med_us": 30636.811, "count_warm_p10_us": 28571.636, "count_warm_p90_us": 36864.446, "count_engine_med_us": 30176.751, "exists_cold_us": 2333.781, "exists_warm_med_us": 946.629, "exists_warm_p10_us": 868.968, "exists_warm_p90_us": 1260.095, "exists_engine_med_us": 1033.414, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_tiny_mixed", "threads": 1, "count": 91, "exists": true, "count_cold_us": 16960.131, "count_warm_med_us": 14877.962, "count_warm_p10_us": 13790.313, "count_warm_p90_us": 15550.625, "count_engine_med_us": 14745.011, "exists_cold_us": 3406.78, "exists_warm_med_us": 1692.633, "exists_warm_p10_us": 1581.798, "exists_warm_p90_us": 1929.946, "exists_engine_med_us": 1733.869, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_medium_mixed", "threads": 1, "count": 9901, "exists": true, "count_cold_us": 27592.097, "count_warm_med_us": 27575.353, "count_warm_p10_us": 26171.446, "count_warm_p90_us": 29242.31, "count_engine_med_us": 28051.768, "exists_cold_us": 2416.416, "exists_warm_med_us": 1012.835, "exists_warm_p10_us": 960.249, "exists_warm_p90_us": 1305.44, "exists_engine_med_us": 1059.963, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k8_large_mixed", "threads": 1, "count": 500157, "exists": true, "count_cold_us": 68844.088, "count_warm_med_us": 74454.825, "count_warm_p10_us": 70365.371, "count_warm_p90_us": 97094.385, "count_engine_med_us": 75137.697, "exists_cold_us": 2708.76, "exists_warm_med_us": 1078.064, "exists_warm_p10_us": 1031.732, "exists_warm_p90_us": 1164.504, "exists_engine_med_us": 1167.654, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_tiny_and", "threads": 1, "count": 45, "exists": true, "count_cold_us": 16202.592, "count_warm_med_us": 15133.874, "count_warm_p10_us": 14374.722, "count_warm_p90_us": 19165.231, "count_engine_med_us": 20282.867, "exists_cold_us": 5610.741, "exists_warm_med_us": 2743.646, "exists_warm_p10_us": 2577.949, "exists_warm_p90_us": 2852.861, "exists_engine_med_us": 2885.269, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_medium_and", "threads": 1, "count": 9754, "exists": true, "count_cold_us": 25486.78, "count_warm_med_us": 17023.66, "count_warm_p10_us": 15979.292, "count_warm_p90_us": 23307.744, "count_engine_med_us": 15953.307, "exists_cold_us": 2747.474, "exists_warm_med_us": 1162.258, "exists_warm_p10_us": 1130.052, "exists_warm_p90_us": 1217.573, "exists_engine_med_us": 1256.687, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_large_and", "threads": 1, "count": 499819, "exists": true, "count_cold_us": 22168.435, "count_warm_med_us": 20204.788, "count_warm_p10_us": 19763.982, "count_warm_p90_us": 20634.618, "count_engine_med_us": 20222.754, "exists_cold_us": 2873.398, "exists_warm_med_us": 1175.414, "exists_warm_p10_us": 1135.837, "exists_warm_p90_us": 1229.116, "exists_engine_med_us": 1276.66, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_tiny_or", "threads": 1, "count": 1000, "exists": true, "count_cold_us": 7369.699, "count_warm_med_us": 4772.097, "count_warm_p10_us": 4656.188, "count_warm_p90_us": 5127.916, "count_engine_med_us": 5143.049, "exists_cold_us": 2540.492, "exists_warm_med_us": 1062.784, "exists_warm_p10_us": 1018.665, "exists_warm_p90_us": 1117.372, "exists_engine_med_us": 1092.258, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_medium_or", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 23230.197, "count_warm_med_us": 22157.313, "count_warm_p10_us": 21868.098, "count_warm_p90_us": 22501.192, "count_engine_med_us": 22382.752, "exists_cold_us": 3032.605, "exists_warm_med_us": 1163.192, "exists_warm_p10_us": 1131.756, "exists_warm_p90_us": 1234.55, "exists_engine_med_us": 1303.469, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_large_or", "threads": 1, "count": 505114, "exists": true, "count_cold_us": 47711.883, "count_warm_med_us": 46298.771, "count_warm_p10_us": 45491.27, "count_warm_p90_us": 51725.46, "count_engine_med_us": 55727.066, "exists_cold_us": 4926.418, "exists_warm_med_us": 1836.948, "exists_warm_p10_us": 1671.241, "exists_warm_p90_us": 1981.891, "exists_engine_med_us": 1954.071, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_tiny_mixed", "threads": 1, "count": 46, "exists": true, "count_cold_us": 24675.944, "count_warm_med_us": 14384.487, "count_warm_p10_us": 13272.878, "count_warm_p90_us": 16296.74, "count_engine_med_us": 14225.721, "exists_cold_us": 3785.414, "exists_warm_med_us": 2724.867, "exists_warm_p10_us": 2040.199, "exists_warm_p90_us": 2854.447, "exists_engine_med_us": 2929.972, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_medium_mixed", "threads": 1, "count": 10098, "exists": true, "count_cold_us": 39410.82, "count_warm_med_us": 32478.567, "count_warm_p10_us": 29958.474, "count_warm_p90_us": 53496.706, "count_engine_med_us": 31778.696, "exists_cold_us": 3258.594, "exists_warm_med_us": 1307.972, "exists_warm_p10_us": 1239.962, "exists_warm_p90_us": 1407.918, "exists_engine_med_us": 1441.465, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k17_large_mixed", "threads": 1, "count": 498269, "exists": true, "count_cold_us": 142454.265, "count_warm_med_us": 139929.269, "count_warm_p10_us": 134117.766, "count_warm_p90_us": 158886.723, "count_engine_med_us": 137801.093, "exists_cold_us": 3647.101, "exists_warm_med_us": 1552.611, "exists_warm_p10_us": 1489.89, "exists_warm_p90_us": 1769.508, "exists_engine_med_us": 1686.952, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_tiny_and", "threads": 1, "count": 50, "exists": true, "count_cold_us": 17641.321, "count_warm_med_us": 14418.189, "count_warm_p10_us": 13936.973, "count_warm_p90_us": 18710.458, "count_engine_med_us": 14223.188, "exists_cold_us": 3650.751, "exists_warm_med_us": 1653.497, "exists_warm_p10_us": 1543.602, "exists_warm_p90_us": 1767.134, "exists_engine_med_us": 1790.24, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_medium_and", "threads": 1, "count": 9900, "exists": true, "count_cold_us": 21216.388, "count_warm_med_us": 21674.499, "count_warm_p10_us": 19298.841, "count_warm_p90_us": 27764.023, "count_engine_med_us": 26902.611, "exists_cold_us": 5445.38, "exists_warm_med_us": 1422.526, "exists_warm_p10_us": 1325.954, "exists_warm_p90_us": 1700.82, "exists_engine_med_us": 1493.422, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_large_and", "threads": 1, "count": 502071, "exists": true, "count_cold_us": 25831.832, "count_warm_med_us": 25627.766, "count_warm_p10_us": 24582.431, "count_warm_p90_us": 28365.457, "count_engine_med_us": 25956.963, "exists_cold_us": 3650.659, "exists_warm_med_us": 1403.908, "exists_warm_p10_us": 1346.015, "exists_warm_p90_us": 1530.948, "exists_engine_med_us": 1557.699, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_tiny_or", "threads": 1, "count": 1001, "exists": true, "count_cold_us": 8322.418, "count_warm_med_us": 5061.799, "count_warm_p10_us": 4852.95, "count_warm_p90_us": 5657.831, "count_engine_med_us": 5118.637, "exists_cold_us": 2915.999, "exists_warm_med_us": 1249.935, "exists_warm_p10_us": 1183.317, "exists_warm_p90_us": 1430.973, "exists_engine_med_us": 1279.631, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_medium_or", "threads": 1, "count": 9995, "exists": true, "count_cold_us": 25718.424, "count_warm_med_us": 23987.106, "count_warm_p10_us": 23126.553, "count_warm_p90_us": 25852.548, "count_engine_med_us": 24625.849, "exists_cold_us": 3275.745, "exists_warm_med_us": 1328.44, "exists_warm_p10_us": 1267.951, "exists_warm_p90_us": 1438.991, "exists_engine_med_us": 1471.951, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_large_or", "threads": 1, "count": 495651, "exists": true, "count_cold_us": 54881.129, "count_warm_med_us": 54222.904, "count_warm_p10_us": 53622.71, "count_warm_p90_us": 55982.012, "count_engine_med_us": 81416.402, "exists_cold_us": 6229.084, "exists_warm_med_us": 2195.592, "exists_warm_p10_us": 2084.728, "exists_warm_p90_us": 2528.694, "exists_engine_med_us": 2425.142, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_tiny_mixed", "threads": 1, "count": 48, "exists": true, "count_cold_us": 123521.158, "count_warm_med_us": 77685.022, "count_warm_p10_us": 72891.08, "count_warm_p90_us": 102411.137, "count_engine_med_us": 74593.209, "exists_cold_us": 4258.935, "exists_warm_med_us": 1816.249, "exists_warm_p10_us": 1717.845, "exists_warm_p90_us": 2018.048, "exists_engine_med_us": 2741.898, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_medium_mixed", "threads": 1, "count": 9953, "exists": true, "count_cold_us": 131059.566, "count_warm_med_us": 105626.418, "count_warm_p10_us": 99976.015, "count_warm_p90_us": 116641.335, "count_engine_med_us": 102196.236, "exists_cold_us": 4111.142, "exists_warm_med_us": 1680.779, "exists_warm_p10_us": 1596.774, "exists_warm_p90_us": 1792.727, "exists_engine_med_us": 1730.832, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k24_large_mixed", "threads": 1, "count": 500471, "exists": true, "count_cold_us": 209853.379, "count_warm_med_us": 210186.662, "count_warm_p10_us": 197581.16, "count_warm_p90_us": 234217.23, "count_engine_med_us": 206403.2, "exists_cold_us": 4406.125, "exists_warm_med_us": 2679.321, "exists_warm_p10_us": 1943.773, "exists_warm_p90_us": 3062.055, "exists_engine_med_us": 2770.185, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_one_everything", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 3034.182, "count_warm_med_us": 1736.448, "count_warm_p10_us": 1659.073, "count_warm_p90_us": 1935.356, "count_engine_med_us": 1791.541, "exists_cold_us": 1478.856, "exists_warm_med_us": 629.836, "exists_warm_p10_us": 566.683, "exists_warm_p90_us": 701.735, "exists_engine_med_us": 748.566, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_one_nothing", "threads": 1, "count": 1002, "exists": true, "count_cold_us": 3788.993, "count_warm_med_us": 3253.244, "count_warm_p10_us": 2534.098, "count_warm_p90_us": 3774.961, "count_engine_med_us": 3392.335, "exists_cold_us": 2286.797, "exists_warm_med_us": 913.852, "exists_warm_p10_us": 865.013, "exists_warm_p90_us": 1002.148, "exists_engine_med_us": 820.601, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_or_one_everything", "threads": 1, "count": 1000000, "exists": true, "count_cold_us": 1262.123, "count_warm_med_us": 568.531, "count_warm_p10_us": 498.743, "count_warm_p90_us": 719.076, "count_engine_med_us": null, "exists_cold_us": 1937.927, "exists_warm_med_us": 635.29, "exists_warm_p10_us": 558.798, "exists_warm_p90_us": 775.435, "exists_engine_med_us": 963.684, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_or_one_nothing", "threads": 1, "count": 1000, "exists": true, "count_cold_us": 4059.881, "count_warm_med_us": 2203.604, "count_warm_p10_us": 2115.246, "count_warm_p90_us": 2545.933, "count_engine_med_us": 2167.889, "exists_cold_us": 1465.336, "exists_warm_med_us": 637.66, "exists_warm_p10_us": 597.412, "exists_warm_p90_us": 740.77, "exists_engine_med_us": 741.717, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_16_nonselective", "threads": 1, "count": 827152, "exists": true, "count_cold_us": 23302.189, "count_warm_med_us": 21284.303, "count_warm_p10_us": 20601.012, "count_warm_p90_us": 24906.072, "count_engine_med_us": 29563.096, "exists_cold_us": 4501.747, "exists_warm_med_us": 1162.091, "exists_warm_p10_us": 1108.71, "exists_warm_p90_us": 1373.85, "exists_engine_med_us": 1254.943, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_16_collapse_one", "threads": 1, "count": 46, "exists": true, "count_cold_us": 9459.374, "count_warm_med_us": 6147.6, "count_warm_p10_us": 5905.801, "count_warm_p90_us": 6747.282, "count_engine_med_us": 6055.354, "exists_cold_us": 2764.82, "exists_warm_med_us": 1327.042, "exists_warm_p10_us": 1272.855, "exists_warm_p90_us": 1419.722, "exists_engine_med_us": 1441.89, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_correlated_2", "threads": 1, "count": 500001, "exists": true, "count_cold_us": 3911.092, "count_warm_med_us": 2401.495, "count_warm_p10_us": 2310.692, "count_warm_p90_us": 3189.221, "count_engine_med_us": 2445.337, "exists_cold_us": 1500.974, "exists_warm_med_us": 598.06, "exists_warm_p10_us": 555.788, "exists_warm_p90_us": 652.864, "exists_engine_med_us": 681.895, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_correlated_5", "threads": 1, "count": 490001, "exists": true, "count_cold_us": 3959.837, "count_warm_med_us": 2414.168, "count_warm_p10_us": 2346.142, "count_warm_p90_us": 2572.887, "count_engine_med_us": 2578.969, "exists_cold_us": 1650.402, "exists_warm_med_us": 652.238, "exists_warm_p10_us": 606.425, "exists_warm_p90_us": 728.564, "exists_engine_med_us": 765.972, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_contradictory_2", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1072.203, "count_warm_med_us": 349.842, "count_warm_p10_us": 303.266, "count_warm_p90_us": 407.16, "count_engine_med_us": 492.805, "exists_cold_us": 1251.658, "exists_warm_med_us": 464.347, "exists_warm_p10_us": 404.765, "exists_warm_p90_us": 564.221, "exists_engine_med_us": 568.654, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "adv_contradictory_17", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2091.671, "count_warm_med_us": 602.046, "count_warm_p10_us": 548.46, "count_warm_p90_us": 718.82, "count_engine_med_us": 701.824, "exists_cold_us": 2023.746, "exists_warm_med_us": 740.08, "exists_warm_p10_us": 689.568, "exists_warm_p90_us": 869.389, "exists_engine_med_us": 828.795, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "null_and", "threads": 1, "count": 99875, "exists": true, "count_cold_us": 5474.963, "count_warm_med_us": 2862.637, "count_warm_p10_us": 2786.077, "count_warm_p90_us": 3162.635, "count_engine_med_us": 3037.276, "exists_cold_us": 1588.523, "exists_warm_med_us": 679.676, "exists_warm_p10_us": 596.754, "exists_warm_p90_us": 811.967, "exists_engine_med_us": 714.659, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "null_not", "threads": 1, "count": 450007, "exists": true, "count_cold_us": 3099.19, "count_warm_med_us": 2189.983, "count_warm_p10_us": 2113.491, "count_warm_p90_us": 2367.238, "count_engine_med_us": 2244.78, "exists_cold_us": 1335.75, "exists_warm_med_us": 570.477, "exists_warm_p10_us": 530.092, "exists_warm_p90_us": 655.469, "exists_engine_med_us": 673.707, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "null_or", "threads": 1, "count": 190006, "exists": true, "count_cold_us": 10721.345, "count_warm_med_us": 9313.864, "count_warm_p10_us": 8953.027, "count_warm_p90_us": 10159.407, "count_engine_med_us": 9174.331, "exists_cold_us": 1482.311, "exists_warm_med_us": 662.509, "exists_warm_p10_us": 604.777, "exists_warm_p90_us": 718.458, "exists_engine_med_us": 736.322, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "null_not_and", "threads": 1, "count": 850017, "exists": true, "count_cold_us": 26742.237, "count_warm_med_us": 26557.319, "count_warm_p10_us": 26172.274, "count_warm_p90_us": 27141.901, "count_engine_med_us": 27339.153, "exists_cold_us": 1781.198, "exists_warm_med_us": 731.315, "exists_warm_p10_us": 706.061, "exists_warm_p90_us": 812.344, "exists_engine_med_us": 798.048, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "null_and_5", "threads": 1, "count": 267454, "exists": true, "count_cold_us": 7590.344, "count_warm_med_us": 4991.545, "count_warm_p10_us": 4890.714, "count_warm_p90_us": 5216.832, "count_engine_med_us": 5394.244, "exists_cold_us": 1811.56, "exists_warm_med_us": 802.284, "exists_warm_p10_us": 729.042, "exists_warm_p90_us": 907.866, "exists_engine_med_us": 838.597, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, +{"id": "k1_tiny_single", "threads": 4, "count": 1000, "exists": true, "count_cold_us": 2051.446, "count_warm_med_us": 1139.302, "count_warm_p10_us": 1047.484, "count_warm_p90_us": 1222.874, "count_engine_med_us": 1264.418, "exists_cold_us": 1814.257, "exists_warm_med_us": 927.862, "exists_warm_p10_us": 828.252, "exists_warm_p90_us": 1064.624, "exists_engine_med_us": 1001.866, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k1_medium_single", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 2089.718, "count_warm_med_us": 1194.581, "count_warm_p10_us": 1085.681, "count_warm_p90_us": 1294.614, "count_engine_med_us": 1195.199, "exists_cold_us": 1760.333, "exists_warm_med_us": 875.089, "exists_warm_p10_us": 807.288, "exists_warm_p90_us": 940.238, "exists_engine_med_us": 979.626, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k1_large_single", "threads": 4, "count": 500005, "exists": true, "count_cold_us": 2235.404, "count_warm_med_us": 1018.219, "count_warm_p10_us": 936.083, "count_warm_p90_us": 1232.827, "count_engine_med_us": 1065.453, "exists_cold_us": 1620.918, "exists_warm_med_us": 967.318, "exists_warm_p10_us": 877.973, "exists_warm_p90_us": 1057.094, "exists_engine_med_us": 1040.404, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_tiny_and", "threads": 4, "count": 765, "exists": true, "count_cold_us": 3195.431, "count_warm_med_us": 1775.709, "count_warm_p10_us": 1688.38, "count_warm_p90_us": 1957.75, "count_engine_med_us": 1627.183, "exists_cold_us": 1957.465, "exists_warm_med_us": 1010.927, "exists_warm_p10_us": 954.17, "exists_warm_p90_us": 1130.881, "exists_engine_med_us": 1094.858, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_medium_and", "threads": 4, "count": 10139, "exists": true, "count_cold_us": 2807.626, "count_warm_med_us": 1711.584, "count_warm_p10_us": 1520.262, "count_warm_p90_us": 1892.006, "count_engine_med_us": 1854.879, "exists_cold_us": 2689.931, "exists_warm_med_us": 1328.67, "exists_warm_p10_us": 1220.539, "exists_warm_p90_us": 1416.199, "exists_engine_med_us": 1095.426, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_large_and", "threads": 4, "count": 499628, "exists": true, "count_cold_us": 3105.366, "count_warm_med_us": 1989.321, "count_warm_p10_us": 1543.828, "count_warm_p90_us": 2190.608, "count_engine_med_us": 2067.779, "exists_cold_us": 2237.78, "exists_warm_med_us": 1078.591, "exists_warm_p10_us": 1008.038, "exists_warm_p90_us": 1144.278, "exists_engine_med_us": 1187.228, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_tiny_or", "threads": 4, "count": 999, "exists": true, "count_cold_us": 2730.076, "count_warm_med_us": 1615.276, "count_warm_p10_us": 1494.063, "count_warm_p90_us": 1791.116, "count_engine_med_us": 1660.12, "exists_cold_us": 2107.772, "exists_warm_med_us": 1073.628, "exists_warm_p10_us": 1030.014, "exists_warm_p90_us": 1144.556, "exists_engine_med_us": 1271.973, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_medium_or", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 4434.174, "count_warm_med_us": 3302.192, "count_warm_p10_us": 3153.088, "count_warm_p90_us": 3696.75, "count_engine_med_us": 3247.238, "exists_cold_us": 2101.432, "exists_warm_med_us": 1109.456, "exists_warm_p10_us": 1001.397, "exists_warm_p90_us": 1383.876, "exists_engine_med_us": 1547.226, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_large_or", "threads": 4, "count": 500615, "exists": true, "count_cold_us": 8795.092, "count_warm_med_us": 7746.15, "count_warm_p10_us": 7482.265, "count_warm_p90_us": 7968.991, "count_engine_med_us": 7614.983, "exists_cold_us": 2801.644, "exists_warm_med_us": 1427.287, "exists_warm_p10_us": 1344.996, "exists_warm_p90_us": 1544.828, "exists_engine_med_us": 1516.904, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_tiny_mixed", "threads": 4, "count": 428, "exists": true, "count_cold_us": 3923.748, "count_warm_med_us": 2406.544, "count_warm_p10_us": 2317.715, "count_warm_p90_us": 2574.692, "count_engine_med_us": 2385.183, "exists_cold_us": 2072.512, "exists_warm_med_us": 1093.364, "exists_warm_p10_us": 1040.778, "exists_warm_p90_us": 1166.52, "exists_engine_med_us": 1321.461, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_medium_mixed", "threads": 4, "count": 9819, "exists": true, "count_cold_us": 3839.905, "count_warm_med_us": 2341.783, "count_warm_p10_us": 2229.363, "count_warm_p90_us": 2506.224, "count_engine_med_us": 2395.295, "exists_cold_us": 2333.16, "exists_warm_med_us": 1109.859, "exists_warm_p10_us": 1026.468, "exists_warm_p90_us": 1245.635, "exists_engine_med_us": 1182.935, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k3_large_mixed", "threads": 4, "count": 499424, "exists": true, "count_cold_us": 7204.736, "count_warm_med_us": 6041.18, "count_warm_p10_us": 4763.863, "count_warm_p90_us": 6222.741, "count_engine_med_us": 6048.111, "exists_cold_us": 2104.018, "exists_warm_med_us": 1085.521, "exists_warm_p10_us": 1008.872, "exists_warm_p90_us": 1141.359, "exists_engine_med_us": 1212.161, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_tiny_and", "threads": 4, "count": 46, "exists": true, "count_cold_us": 4280.941, "count_warm_med_us": 2556.513, "count_warm_p10_us": 2399.973, "count_warm_p90_us": 2675.363, "count_engine_med_us": 2602.181, "exists_cold_us": 2645.51, "exists_warm_med_us": 1608.903, "exists_warm_p10_us": 1484.047, "exists_warm_p90_us": 1853.389, "exists_engine_med_us": 1672.461, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_medium_and", "threads": 4, "count": 10097, "exists": true, "count_cold_us": 5027.646, "count_warm_med_us": 3211.493, "count_warm_p10_us": 2994.026, "count_warm_p90_us": 3527.366, "count_engine_med_us": 3379.622, "exists_cold_us": 2473.372, "exists_warm_med_us": 1232.362, "exists_warm_p10_us": 1131.308, "exists_warm_p90_us": 1443.902, "exists_engine_med_us": 1378.106, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_large_and", "threads": 4, "count": 498124, "exists": true, "count_cold_us": 5572.477, "count_warm_med_us": 3575.619, "count_warm_p10_us": 2844.698, "count_warm_p90_us": 4011.171, "count_engine_med_us": 3563.639, "exists_cold_us": 2888.924, "exists_warm_med_us": 1244.84, "exists_warm_p10_us": 1157.03, "exists_warm_p90_us": 1343.834, "exists_engine_med_us": 1392.66, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_tiny_or", "threads": 4, "count": 999, "exists": true, "count_cold_us": 4309.99, "count_warm_med_us": 2206.007, "count_warm_p10_us": 2022.095, "count_warm_p90_us": 2511.203, "count_engine_med_us": 2246.272, "exists_cold_us": 2421.226, "exists_warm_med_us": 1314.814, "exists_warm_p10_us": 1155.73, "exists_warm_p90_us": 1529.093, "exists_engine_med_us": 1563.59, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_medium_or", "threads": 4, "count": 9997, "exists": true, "count_cold_us": 9644.462, "count_warm_med_us": 7392.779, "count_warm_p10_us": 6823.181, "count_warm_p90_us": 7643.443, "count_engine_med_us": 6884.187, "exists_cold_us": 2606.072, "exists_warm_med_us": 1253.41, "exists_warm_p10_us": 1134.624, "exists_warm_p90_us": 1444.511, "exists_engine_med_us": 1388.4, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_large_or", "threads": 4, "count": 498831, "exists": true, "count_cold_us": 12006.155, "count_warm_med_us": 10587.485, "count_warm_p10_us": 8223.412, "count_warm_p90_us": 11633.76, "count_engine_med_us": 10985.822, "exists_cold_us": 2504.608, "exists_warm_med_us": 1334.602, "exists_warm_p10_us": 1267.497, "exists_warm_p90_us": 1488.594, "exists_engine_med_us": 1473.929, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_tiny_mixed", "threads": 4, "count": 91, "exists": true, "count_cold_us": 7968.694, "count_warm_med_us": 6487.266, "count_warm_p10_us": 4581.427, "count_warm_p90_us": 6857.16, "count_engine_med_us": 4835.117, "exists_cold_us": 6122.52, "exists_warm_med_us": 2416.905, "exists_warm_p10_us": 2224.268, "exists_warm_p90_us": 2900.962, "exists_engine_med_us": 3100.147, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_medium_mixed", "threads": 4, "count": 9901, "exists": true, "count_cold_us": 14334.661, "count_warm_med_us": 10984.387, "count_warm_p10_us": 9385.988, "count_warm_p90_us": 11914.26, "count_engine_med_us": 11573.364, "exists_cold_us": 2824.801, "exists_warm_med_us": 1398.743, "exists_warm_p10_us": 1286.367, "exists_warm_p90_us": 1768.929, "exists_engine_med_us": 1399.969, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k8_large_mixed", "threads": 4, "count": 500157, "exists": true, "count_cold_us": 21671.676, "count_warm_med_us": 26765.531, "count_warm_p10_us": 21639.71, "count_warm_p90_us": 27992.222, "count_engine_med_us": 27626.252, "exists_cold_us": 3364.576, "exists_warm_med_us": 1583.201, "exists_warm_p10_us": 1433.349, "exists_warm_p90_us": 1908.026, "exists_engine_med_us": 1809.757, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_tiny_and", "threads": 4, "count": 45, "exists": true, "count_cold_us": 8819.918, "count_warm_med_us": 5477.55, "count_warm_p10_us": 4989.976, "count_warm_p90_us": 7065.617, "count_engine_med_us": 5054.952, "exists_cold_us": 4590.027, "exists_warm_med_us": 2799.713, "exists_warm_p10_us": 2592.24, "exists_warm_p90_us": 3296.993, "exists_engine_med_us": 3688.541, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_medium_and", "threads": 4, "count": 9754, "exists": true, "count_cold_us": 9762.722, "count_warm_med_us": 7021.685, "count_warm_p10_us": 6561.543, "count_warm_p90_us": 8643.787, "count_engine_med_us": 6300.369, "exists_cold_us": 3214.666, "exists_warm_med_us": 1972.197, "exists_warm_p10_us": 1566.449, "exists_warm_p90_us": 2584.399, "exists_engine_med_us": 2577.064, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_large_and", "threads": 4, "count": 499819, "exists": true, "count_cold_us": 12377.317, "count_warm_med_us": 9519.303, "count_warm_p10_us": 8655.784, "count_warm_p90_us": 10377.119, "count_engine_med_us": 8798.607, "exists_cold_us": 4590.415, "exists_warm_med_us": 2216.522, "exists_warm_p10_us": 2098.891, "exists_warm_p90_us": 2523.831, "exists_engine_med_us": 2597.633, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_tiny_or", "threads": 4, "count": 1000, "exists": true, "count_cold_us": 6267.727, "count_warm_med_us": 3657.177, "count_warm_p10_us": 3421.061, "count_warm_p90_us": 4938.33, "count_engine_med_us": 3620.673, "exists_cold_us": 5632.256, "exists_warm_med_us": 2005.934, "exists_warm_p10_us": 1937.813, "exists_warm_p90_us": 2287.978, "exists_engine_med_us": 2058.107, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_medium_or", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 12281.654, "count_warm_med_us": 9796.78, "count_warm_p10_us": 8676.409, "count_warm_p90_us": 10790.623, "count_engine_med_us": 9902.796, "exists_cold_us": 3459.617, "exists_warm_med_us": 1761.301, "exists_warm_p10_us": 1623.266, "exists_warm_p90_us": 1932.543, "exists_engine_med_us": 1806.484, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_large_or", "threads": 4, "count": 505114, "exists": true, "count_cold_us": 21666.706, "count_warm_med_us": 17303.52, "count_warm_p10_us": 16878.824, "count_warm_p90_us": 18495.066, "count_engine_med_us": 17122.599, "exists_cold_us": 4903.486, "exists_warm_med_us": 2216.949, "exists_warm_p10_us": 1622.52, "exists_warm_p90_us": 2419.524, "exists_engine_med_us": 2124.395, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_tiny_mixed", "threads": 4, "count": 46, "exists": true, "count_cold_us": 9872.719, "count_warm_med_us": 7023.065, "count_warm_p10_us": 6287.103, "count_warm_p90_us": 8149.885, "count_engine_med_us": 6161.872, "exists_cold_us": 5047.583, "exists_warm_med_us": 3655.084, "exists_warm_p10_us": 3433.44, "exists_warm_p90_us": 3915.402, "exists_engine_med_us": 3950.334, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_medium_mixed", "threads": 4, "count": 10098, "exists": true, "count_cold_us": 18719.016, "count_warm_med_us": 14138.304, "count_warm_p10_us": 13829.172, "count_warm_p90_us": 14914.045, "count_engine_med_us": 14204.142, "exists_cold_us": 4937.422, "exists_warm_med_us": 2318.785, "exists_warm_p10_us": 2198.599, "exists_warm_p90_us": 2533.356, "exists_engine_med_us": 2621.008, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k17_large_mixed", "threads": 4, "count": 498269, "exists": true, "count_cold_us": 51542.012, "count_warm_med_us": 49926.059, "count_warm_p10_us": 48174.95, "count_warm_p90_us": 56547.522, "count_engine_med_us": 50849.168, "exists_cold_us": 5690.108, "exists_warm_med_us": 2620.329, "exists_warm_p10_us": 2475.016, "exists_warm_p90_us": 2921.692, "exists_engine_med_us": 3027.899, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_tiny_and", "threads": 4, "count": 50, "exists": true, "count_cold_us": 9855.396, "count_warm_med_us": 5905.005, "count_warm_p10_us": 5375.902, "count_warm_p90_us": 10158.997, "count_engine_med_us": 5666.52, "exists_cold_us": 4366.262, "exists_warm_med_us": 2537.192, "exists_warm_p10_us": 2319.647, "exists_warm_p90_us": 3188.604, "exists_engine_med_us": 3246.641, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_medium_and", "threads": 4, "count": 9900, "exists": true, "count_cold_us": 10986.547, "count_warm_med_us": 7744.652, "count_warm_p10_us": 7393.937, "count_warm_p90_us": 8614.399, "count_engine_med_us": 7598.147, "exists_cold_us": 5072.367, "exists_warm_med_us": 2176.174, "exists_warm_p10_us": 1812.541, "exists_warm_p90_us": 2311.61, "exists_engine_med_us": 2481.376, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_large_and", "threads": 4, "count": 502071, "exists": true, "count_cold_us": 14038.655, "count_warm_med_us": 9555.74, "count_warm_p10_us": 7193.646, "count_warm_p90_us": 10101.339, "count_engine_med_us": 10058.713, "exists_cold_us": 5566.84, "exists_warm_med_us": 1778.967, "exists_warm_p10_us": 1693.291, "exists_warm_p90_us": 1917.273, "exists_engine_med_us": 2206.866, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_tiny_or", "threads": 4, "count": 1001, "exists": true, "count_cold_us": 5672.704, "count_warm_med_us": 2949.728, "count_warm_p10_us": 2604.039, "count_warm_p90_us": 3274.655, "count_engine_med_us": 2996.862, "exists_cold_us": 3642.819, "exists_warm_med_us": 1687.655, "exists_warm_p10_us": 1521.063, "exists_warm_p90_us": 2193.047, "exists_engine_med_us": 1761.785, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_medium_or", "threads": 4, "count": 9995, "exists": true, "count_cold_us": 9039.662, "count_warm_med_us": 9341.259, "count_warm_p10_us": 7106.886, "count_warm_p90_us": 10163.595, "count_engine_med_us": 10687.128, "exists_cold_us": 4468.585, "exists_warm_med_us": 2293.076, "exists_warm_p10_us": 1936.69, "exists_warm_p90_us": 2550.824, "exists_engine_med_us": 2755.063, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_large_or", "threads": 4, "count": 495651, "exists": true, "count_cold_us": 26899.539, "count_warm_med_us": 21958.256, "count_warm_p10_us": 20359.569, "count_warm_p90_us": 22650.281, "count_engine_med_us": 18904.639, "exists_cold_us": 3763.181, "exists_warm_med_us": 1900.782, "exists_warm_p10_us": 1747.663, "exists_warm_p90_us": 2181.572, "exists_engine_med_us": 2090.671, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_tiny_mixed", "threads": 4, "count": 48, "exists": true, "count_cold_us": 29599.811, "count_warm_med_us": 26730.067, "count_warm_p10_us": 21494.266, "count_warm_p90_us": 28035.429, "count_engine_med_us": 25867.293, "exists_cold_us": 9944.342, "exists_warm_med_us": 7325.527, "exists_warm_p10_us": 6987.066, "exists_warm_p90_us": 8121.114, "exists_engine_med_us": 7301.483, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_medium_mixed", "threads": 4, "count": 9953, "exists": true, "count_cold_us": 34308.71, "count_warm_med_us": 36972.941, "count_warm_p10_us": 30342.041, "count_warm_p90_us": 43247.439, "count_engine_med_us": 38432.194, "exists_cold_us": 4593.083, "exists_warm_med_us": 2156.431, "exists_warm_p10_us": 2023.361, "exists_warm_p90_us": 2294.316, "exists_engine_med_us": 2390.522, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "k24_large_mixed", "threads": 4, "count": 500471, "exists": true, "count_cold_us": 57369.452, "count_warm_med_us": 60307.553, "count_warm_p10_us": 53321.716, "count_warm_p90_us": 70663.219, "count_engine_med_us": 66207.072, "exists_cold_us": 5078.141, "exists_warm_med_us": 2320.693, "exists_warm_p10_us": 2161.587, "exists_warm_p90_us": 2651.245, "exists_engine_med_us": 2277.31, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_one_everything", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 2194.826, "count_warm_med_us": 1192.516, "count_warm_p10_us": 1102.167, "count_warm_p90_us": 1310.747, "count_engine_med_us": 1300.108, "exists_cold_us": 1881.187, "exists_warm_med_us": 994.064, "exists_warm_p10_us": 941.687, "exists_warm_p90_us": 1114.521, "exists_engine_med_us": 1060.978, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_one_nothing", "threads": 4, "count": 1002, "exists": true, "count_cold_us": 3063.021, "count_warm_med_us": 1669.456, "count_warm_p10_us": 1571.144, "count_warm_p90_us": 1822.994, "count_engine_med_us": 1835.651, "exists_cold_us": 1923.263, "exists_warm_med_us": 1048.372, "exists_warm_p10_us": 921.967, "exists_warm_p90_us": 1378.58, "exists_engine_med_us": 1363.327, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_or_one_everything", "threads": 4, "count": 1000000, "exists": true, "count_cold_us": 2127.866, "count_warm_med_us": 714.926, "count_warm_p10_us": 583.568, "count_warm_p90_us": 1277.241, "count_engine_med_us": null, "exists_cold_us": 2717.184, "exists_warm_med_us": 802.745, "exists_warm_p10_us": 737.677, "exists_warm_p90_us": 963.016, "exists_engine_med_us": 996.882, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_or_one_nothing", "threads": 4, "count": 1000, "exists": true, "count_cold_us": 2637.15, "count_warm_med_us": 1582.298, "count_warm_p10_us": 1375.38, "count_warm_p90_us": 1687.622, "count_engine_med_us": 1662.749, "exists_cold_us": 1912.519, "exists_warm_med_us": 973.994, "exists_warm_p10_us": 877.207, "exists_warm_p90_us": 1100.177, "exists_engine_med_us": 1118.753, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_16_nonselective", "threads": 4, "count": 827152, "exists": true, "count_cold_us": 10327.381, "count_warm_med_us": 7983.685, "count_warm_p10_us": 7487.063, "count_warm_p90_us": 8781.882, "count_engine_med_us": 7986.808, "exists_cold_us": 3597.36, "exists_warm_med_us": 1664.948, "exists_warm_p10_us": 1568.237, "exists_warm_p90_us": 1878.976, "exists_engine_med_us": 1793.336, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_16_collapse_one", "threads": 4, "count": 46, "exists": true, "count_cold_us": 5901.165, "count_warm_med_us": 3516.848, "count_warm_p10_us": 3371.847, "count_warm_p90_us": 3765.41, "count_engine_med_us": 3556.431, "exists_cold_us": 3679.681, "exists_warm_med_us": 2077.584, "exists_warm_p10_us": 1928.684, "exists_warm_p90_us": 2220.755, "exists_engine_med_us": 2180.09, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_correlated_2", "threads": 4, "count": 500001, "exists": true, "count_cold_us": 2564.117, "count_warm_med_us": 1566.666, "count_warm_p10_us": 1392.653, "count_warm_p90_us": 1758.922, "count_engine_med_us": 1488.697, "exists_cold_us": 1840.03, "exists_warm_med_us": 986.09, "exists_warm_p10_us": 919.789, "exists_warm_p90_us": 1061.513, "exists_engine_med_us": 1180.559, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_correlated_5", "threads": 4, "count": 490001, "exists": true, "count_cold_us": 2698.497, "count_warm_med_us": 1658.935, "count_warm_p10_us": 1528.551, "count_warm_p90_us": 1775.477, "count_engine_med_us": 1662.861, "exists_cold_us": 2737.458, "exists_warm_med_us": 1049.784, "exists_warm_p10_us": 960.2, "exists_warm_p90_us": 1207.568, "exists_engine_med_us": 1156.534, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_contradictory_2", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1487.956, "count_warm_med_us": 554.68, "count_warm_p10_us": 480.254, "count_warm_p90_us": 638.74, "count_engine_med_us": 597.595, "exists_cold_us": 1690.194, "exists_warm_med_us": 740.431, "exists_warm_p10_us": 664.818, "exists_warm_p90_us": 808.991, "exists_engine_med_us": 863.718, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "adv_contradictory_17", "threads": 4, "count": 0, "exists": false, "count_cold_us": 3085.611, "count_warm_med_us": 1155.277, "count_warm_p10_us": 743.344, "count_warm_p90_us": 1307.314, "count_engine_med_us": 824.096, "exists_cold_us": 2420.91, "exists_warm_med_us": 985.468, "exists_warm_p10_us": 923.801, "exists_warm_p90_us": 1106.023, "exists_engine_med_us": 989.059, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "null_and", "threads": 4, "count": 99875, "exists": true, "count_cold_us": 2924.824, "count_warm_med_us": 1765.143, "count_warm_p10_us": 1457.853, "count_warm_p90_us": 1955.162, "count_engine_med_us": 1708.561, "exists_cold_us": 1877.747, "exists_warm_med_us": 963.489, "exists_warm_p10_us": 896.82, "exists_warm_p90_us": 1028.814, "exists_engine_med_us": 1062.065, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "null_not", "threads": 4, "count": 450007, "exists": true, "count_cold_us": 2426.254, "count_warm_med_us": 1289.668, "count_warm_p10_us": 1180.428, "count_warm_p90_us": 1423.775, "count_engine_med_us": 1252.45, "exists_cold_us": 1708.295, "exists_warm_med_us": 845.252, "exists_warm_p10_us": 786.49, "exists_warm_p90_us": 930.016, "exists_engine_med_us": 995.635, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "null_or", "threads": 4, "count": 190006, "exists": true, "count_cold_us": 4111.105, "count_warm_med_us": 3894.793, "count_warm_p10_us": 3769.778, "count_warm_p90_us": 4155.265, "count_engine_med_us": 4046.264, "exists_cold_us": 1775.483, "exists_warm_med_us": 1001.545, "exists_warm_p10_us": 915.337, "exists_warm_p90_us": 1077.929, "exists_engine_med_us": 1120.374, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "null_not_and", "threads": 4, "count": 850017, "exists": true, "count_cold_us": 10708.737, "count_warm_med_us": 9881.909, "count_warm_p10_us": 9574.747, "count_warm_p90_us": 10409.391, "count_engine_med_us": 9599.839, "exists_cold_us": 2200.933, "exists_warm_med_us": 1034.653, "exists_warm_p10_us": 963.539, "exists_warm_p90_us": 1181.843, "exists_engine_med_us": 1166.928, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, +{"id": "null_and_5", "threads": 4, "count": 267454, "exists": true, "count_cold_us": 3978.5, "count_warm_med_us": 2810.408, "count_warm_p10_us": 2653.619, "count_warm_p90_us": 3018.925, "count_engine_med_us": 2845.055, "exists_cold_us": 2300.549, "exists_warm_med_us": 1117.777, "exists_warm_p10_us": 1049.73, "exists_warm_p90_us": 1300.315, "exists_engine_med_us": 1182.867, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498} +] +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt deleted file mode 100644 index c77022961..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k17_medium_and.txt +++ /dev/null @@ -1,143 +0,0 @@ --- k17_medium_and (K group 17+) --- WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829)) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 5.2e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.0007658659999999986, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": [ - "((c8 >= 171) AND (c8 < 829))", - "((c4 >= 172) AND (c4 < 829))", - "(c5 < 829)", - "(c1 >= 171)", - "(c12 < 829)", - "(c7 >= 171)", - "(c14 < 829)", - "(c13 >= 171)", - "(c2 < 829)", - "(c9 >= 171)", - "(c3 < 829)", - "(c0 >= 171)", - "(c11 < 829)", - "(c6 >= 171)", - "(c10 < 829)" - ], - "Estimated Cardinality": "2000000" - }, - "intermediate_rows": 97561, - "intermediate_size_bytes": 5853660, - "row_groups_scanned": 82, - "rows_scanned": 10000000, - "timing": 0.17273337600000016, - "total_row_groups_to_scan": 82, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.000006017, - "aggregate_reuse": 0.000002743, - "build_side_probe_side": 0.000001854, - "column_lifetime": 0.000003201, - "common_aggregate": 0.000001602, - "common_subexpressions": 0.000001524, - "common_subplan": 0.000016118, - "cte_filter_pusher": 6.34e-7, - "cte_inlining": 6.91e-7, - "deliminator": 9.85e-7, - "duplicate_groups": 0.000001811, - "empty_result_pullup": 4.79e-7, - "expression_rewriter": 0.000183576, - "filter_pullup": 0.000001155, - "filter_pushdown": 0.000149399, - "grouping_sets": 7.81e-7, - "in_clause": 8.94e-7, - "join_elimination": 0.000001708, - "join_filter_pushdown": 6.16e-7, - "join_order": 0.000071708, - "late_materialization": 0.000001346, - "limit_pushdown": 5.25e-7, - "outer_join_simplification": 0.000003101, - "partial_aggregate_pushdown": 0.000001595, - "partitioned_execution": 6.39e-7, - "projection_placement": 0.000001853, - "projection_pullup": 0.000001666, - "redundant_order_keys": 0.000003621, - "regex_range": 5.55e-7, - "reorder_filter": 6.18e-7, - "row_group_pruner": 4.99e-7, - "row_number_rewriter": 6.16e-7, - "sampling_pushdown": 3.85e-7, - "scalar_fn_pushdown": 3.53e-7, - "statistics_propagation": 0.000252125, - "top_n": 5.06e-7, - "top_n_window_elimination": 0.000003147, - "total_time": 0.000914687, - "type_pushdown": 4.83e-7, - "unnest_rewriter": 9.29e-7, - "unused_columns": 0.000097124, - "window_self_join": 7.31e-7 - }, - "physical_planner": { - "column_binding": 0.000003, - "create_plan": 0.000028416, - "resolve_types": 5.34e-7, - "total_time": 0.000038708 - }, - "planner": { - "binding_time": 0.000258894, - "total_time": 0.000368208 - }, - "query": { - "cpu_time": 0.17349976200000017, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829))", - "total_intermediate_rows": 97562, - "total_intermediate_size_bytes": 5853668, - "total_row_groups_scanned": 82, - "total_row_groups_to_scan": 82, - "total_rows_scanned": 10000000, - "total_time": 0.189325537 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 814565048, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt deleted file mode 100644 index 79c42eb1a..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k1_medium_single.txt +++ /dev/null @@ -1,127 +0,0 @@ --- k1_medium_single (K group 1) --- WHERE (c5 < 10) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 3.52e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.0005367530000000005, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": "(c5 < 10)", - "Estimated Cardinality": "2000000" - }, - "intermediate_rows": 100002, - "intermediate_size_bytes": 400008, - "row_groups_scanned": 82, - "rows_scanned": 10000000, - "timing": 0.018524467999999957, - "total_row_groups_to_scan": 82, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.000006707, - "aggregate_reuse": 0.000002002, - "build_side_probe_side": 0.00000146, - "column_lifetime": 0.000003316, - "common_aggregate": 0.000001906, - "common_subexpressions": 0.000001213, - "common_subplan": 0.000018777, - "cte_filter_pusher": 6.17e-7, - "cte_inlining": 6.08e-7, - "deliminator": 8.65e-7, - "duplicate_groups": 0.000001394, - "empty_result_pullup": 4.29e-7, - "expression_rewriter": 0.000038844, - "filter_pullup": 0.000001116, - "filter_pushdown": 0.000024453, - "grouping_sets": 5.1e-7, - "in_clause": 6.06e-7, - "join_elimination": 0.000001651, - "join_filter_pushdown": 6.3e-7, - "join_order": 0.000032051, - "late_materialization": 0.000001055, - "limit_pushdown": 5.42e-7, - "outer_join_simplification": 0.000002456, - "partial_aggregate_pushdown": 0.00000153, - "partitioned_execution": 7.09e-7, - "projection_placement": 0.000001734, - "projection_pullup": 0.000001274, - "redundant_order_keys": 0.000001593, - "regex_range": 5.05e-7, - "reorder_filter": 6.26e-7, - "row_group_pruner": 4.56e-7, - "row_number_rewriter": 5.82e-7, - "sampling_pushdown": 4.81e-7, - "scalar_fn_pushdown": 3.13e-7, - "statistics_propagation": 0.000212398, - "top_n": 4.51e-7, - "top_n_window_elimination": 0.00000304, - "total_time": 0.000472748, - "type_pushdown": 4.74e-7, - "unnest_rewriter": 8.64e-7, - "unused_columns": 0.000011677, - "window_self_join": 6.8e-7 - }, - "physical_planner": { - "column_binding": 0.000002797, - "create_plan": 0.000016452, - "resolve_types": 3.43e-7, - "total_time": 0.000025605 - }, - "planner": { - "binding_time": 0.000127689, - "total_time": 0.000208018 - }, - "query": { - "cpu_time": 0.019061572999999957, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE (c5 < 10)", - "total_intermediate_rows": 100003, - "total_intermediate_size_bytes": 400016, - "total_row_groups_scanned": 82, - "total_row_groups_to_scan": 82, - "total_rows_scanned": 10000000, - "total_time": 0.022363626 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 814495416, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt deleted file mode 100644 index 81f409c52..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k3_medium_and.txt +++ /dev/null @@ -1,131 +0,0 @@ --- k3_medium_and (K group 2-4) --- WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207)) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 2.76e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.00041957100000000345, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": [ - "(c6 < 207)", - "(c10 >= 793)", - "(c2 < 207)" - ], - "Estimated Cardinality": "2000000" - }, - "intermediate_rows": 101386, - "intermediate_size_bytes": 1216632, - "row_groups_scanned": 82, - "rows_scanned": 10000000, - "timing": 0.02891999899999996, - "total_row_groups_to_scan": 82, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.00000506, - "aggregate_reuse": 0.000001767, - "build_side_probe_side": 0.000001327, - "column_lifetime": 0.000001901, - "common_aggregate": 9.71e-7, - "common_subexpressions": 9.04e-7, - "common_subplan": 0.000013631, - "cte_filter_pusher": 5.55e-7, - "cte_inlining": 5.1e-7, - "deliminator": 7.47e-7, - "duplicate_groups": 0.000001126, - "empty_result_pullup": 3.55e-7, - "expression_rewriter": 0.000061134, - "filter_pullup": 0.000001016, - "filter_pushdown": 0.000028983, - "grouping_sets": 5.58e-7, - "in_clause": 5.95e-7, - "join_elimination": 0.000001236, - "join_filter_pushdown": 3.83e-7, - "join_order": 0.000029447, - "late_materialization": 8.11e-7, - "limit_pushdown": 4.4e-7, - "outer_join_simplification": 0.000002109, - "partial_aggregate_pushdown": 0.000001266, - "partitioned_execution": 4.96e-7, - "projection_placement": 0.00000118, - "projection_pullup": 0.000001102, - "redundant_order_keys": 0.000001651, - "regex_range": 4.48e-7, - "reorder_filter": 5.04e-7, - "row_group_pruner": 3.7e-7, - "row_number_rewriter": 4.33e-7, - "sampling_pushdown": 3.23e-7, - "scalar_fn_pushdown": 2.62e-7, - "statistics_propagation": 0.000147441, - "top_n": 3.81e-7, - "top_n_window_elimination": 0.000002255, - "total_time": 0.00038529, - "type_pushdown": 3.51e-7, - "unnest_rewriter": 8.44e-7, - "unused_columns": 0.000012824, - "window_self_join": 5.84e-7 - }, - "physical_planner": { - "column_binding": 0.00000182, - "create_plan": 0.000011194, - "resolve_types": 1.67e-7, - "total_time": 0.000017201 - }, - "planner": { - "binding_time": 0.000142345, - "total_time": 0.000196464 - }, - "query": { - "cpu_time": 0.029339845999999965, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207))", - "total_intermediate_rows": 101387, - "total_intermediate_size_bytes": 1216640, - "total_row_groups_scanned": 82, - "total_row_groups_to_scan": 82, - "total_rows_scanned": 10000000, - "total_time": 0.03270091 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 814499512, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt deleted file mode 100644 index d9cd2932c..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/explain/k8_medium_and.txt +++ /dev/null @@ -1,136 +0,0 @@ --- k8_medium_and (K group 5-16) --- WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368)) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 7.78e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.000550955999999999, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": [ - "(c3 < 632)", - "(c6 >= 368)", - "(c8 < 632)", - "(c11 >= 368)", - "(c9 < 632)", - "(c0 >= 368)", - "(c7 < 632)", - "(c2 >= 368)" - ], - "Estimated Cardinality": "2000000" - }, - "intermediate_rows": 100924, - "intermediate_size_bytes": 3229568, - "row_groups_scanned": 82, - "rows_scanned": 10000000, - "timing": 0.07691875, - "total_row_groups_to_scan": 82, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.000005096, - "aggregate_reuse": 0.000002043, - "build_side_probe_side": 0.000001147, - "column_lifetime": 0.000002107, - "common_aggregate": 0.000001025, - "common_subexpressions": 9.76e-7, - "common_subplan": 0.000012436, - "cte_filter_pusher": 5.45e-7, - "cte_inlining": 5.09e-7, - "deliminator": 8.05e-7, - "duplicate_groups": 0.000001122, - "empty_result_pullup": 3.68e-7, - "expression_rewriter": 0.000069692, - "filter_pullup": 9.77e-7, - "filter_pushdown": 0.000052628, - "grouping_sets": 3.22e-7, - "in_clause": 5.33e-7, - "join_elimination": 0.000001145, - "join_filter_pushdown": 3.81e-7, - "join_order": 0.000037383, - "late_materialization": 9.32e-7, - "limit_pushdown": 4.19e-7, - "outer_join_simplification": 0.000002133, - "partial_aggregate_pushdown": 0.000001228, - "partitioned_execution": 4.51e-7, - "projection_placement": 0.000001171, - "projection_pullup": 0.000001031, - "redundant_order_keys": 0.000001859, - "regex_range": 4.23e-7, - "reorder_filter": 5.15e-7, - "row_group_pruner": 3.34e-7, - "row_number_rewriter": 4.48e-7, - "sampling_pushdown": 3.29e-7, - "scalar_fn_pushdown": 2.1e-7, - "statistics_propagation": 0.000177119, - "top_n": 3.95e-7, - "top_n_window_elimination": 0.000002339, - "total_time": 0.000462814, - "type_pushdown": 3.45e-7, - "unnest_rewriter": 7.65e-7, - "unused_columns": 0.000023018, - "window_self_join": 5.94e-7 - }, - "physical_planner": { - "column_binding": 0.000001996, - "create_plan": 0.000014419, - "resolve_types": 2.47e-7, - "total_time": 0.000020795 - }, - "planner": { - "binding_time": 0.000140391, - "total_time": 0.000240742 - }, - "query": { - "cpu_time": 0.07747048399999999, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368))", - "total_intermediate_rows": 100925, - "total_intermediate_size_bytes": 3229576, - "total_row_groups_scanned": 82, - "total_row_groups_to_scan": 82, - "total_rows_scanned": 10000000, - "total_time": 0.084546192 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 814532280, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json index 4934dde8a..cc1f767cd 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json +++ b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json @@ -1,2073 +1,116 @@ { - "n": 10000000, - "duckdb_version": "2.0.0", - "runs": 31, - "load": { - "1": { - "build_us": 5653755.113, - "analyze_us": 943.46, - "load_us": 5654698.573, - "mem_bytes": 814474936 - }, - "4": { - "build_us": 4332828.166, - "analyze_us": 613.072, - "load_us": 4333441.238, - "mem_bytes": 814474936 - } - }, - "records": [ - { - "id": "k1_tiny_single", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 1502.927, - "count_warm_med_us": 477.013, - "count_warm_p10_us": 408.835, - "count_warm_p90_us": 630.858, - "count_engine_med_us": 592.148, - "exists_cold_us": 1338.812, - "exists_warm_med_us": 590.955, - "exists_warm_p10_us": 482.909, - "exists_warm_p90_us": 690.654, - "exists_engine_med_us": 622.01, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k1_medium_single", - "threads": 1, - "count": 100002, - "exists": true, - "count_cold_us": 17806.969, - "count_warm_med_us": 16065.49, - "count_warm_p10_us": 15530.8, - "count_warm_p90_us": 20597.148, - "count_engine_med_us": 22895.954, - "exists_cold_us": 2287.917, - "exists_warm_med_us": 920.903, - "exists_warm_p10_us": 897.547, - "exists_warm_p90_us": 970.571, - "exists_engine_med_us": 953.188, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k1_large_single", - "threads": 1, - "count": 5000008, - "exists": true, - "count_cold_us": 21972.435, - "count_warm_med_us": 14681.996, - "count_warm_p10_us": 14370.354, - "count_warm_p90_us": 20998.677, - "count_engine_med_us": 16553.427, - "exists_cold_us": 2115.024, - "exists_warm_med_us": 627.561, - "exists_warm_p10_us": 579.828, - "exists_warm_p90_us": 966.131, - "exists_engine_med_us": 711.952, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_tiny_and", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 39107.699, - "count_warm_med_us": 36607.801, - "count_warm_p10_us": 35727.308, - "count_warm_p90_us": 37243.996, - "count_engine_med_us": 37059.917, - "exists_cold_us": 38545.787, - "exists_warm_med_us": 40659.084, - "exists_warm_p10_us": 37146.254, - "exists_warm_p90_us": 49803.645, - "exists_engine_med_us": 38382.767, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_medium_and", - "threads": 1, - "count": 101386, - "exists": true, - "count_cold_us": 35388.754, - "count_warm_med_us": 34347.86, - "count_warm_p10_us": 32493.15, - "count_warm_p90_us": 46666.538, - "count_engine_med_us": 36076.56, - "exists_cold_us": 1915.497, - "exists_warm_med_us": 699.225, - "exists_warm_p10_us": 668.549, - "exists_warm_p90_us": 761.953, - "exists_engine_med_us": 777.487, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_large_and", - "threads": 1, - "count": 4996187, - "exists": true, - "count_cold_us": 41949.634, - "count_warm_med_us": 41119.455, - "count_warm_p10_us": 39527.829, - "count_warm_p90_us": 43056.729, - "count_engine_med_us": 41982.082, - "exists_cold_us": 1922.807, - "exists_warm_med_us": 713.718, - "exists_warm_p10_us": 655.19, - "exists_warm_p90_us": 870.533, - "exists_engine_med_us": 797.706, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_tiny_or", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 1543.436, - "count_warm_med_us": 539.027, - "count_warm_p10_us": 465.898, - "count_warm_p90_us": 627.315, - "count_engine_med_us": 582.296, - "exists_cold_us": 1491.669, - "exists_warm_med_us": 606.528, - "exists_warm_p10_us": 561.03, - "exists_warm_p90_us": 660.887, - "exists_engine_med_us": 693.028, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_medium_or", - "threads": 1, - "count": 100001, - "exists": true, - "count_cold_us": 65330.231, - "count_warm_med_us": 66221.265, - "count_warm_p10_us": 61354.836, - "count_warm_p90_us": 81898.146, - "count_engine_med_us": 65374.369, - "exists_cold_us": 2907.079, - "exists_warm_med_us": 1148.436, - "exists_warm_p10_us": 1090.744, - "exists_warm_p90_us": 1229.111, - "exists_engine_med_us": 1195.573, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_large_or", - "threads": 1, - "count": 5006214, - "exists": true, - "count_cold_us": 197823.689, - "count_warm_med_us": 192171.033, - "count_warm_p10_us": 184787.064, - "count_warm_p90_us": 214027.569, - "count_engine_med_us": 191457.375, - "exists_cold_us": 3055.179, - "exists_warm_med_us": 812.988, - "exists_warm_p10_us": 740.335, - "exists_warm_p90_us": 1276.436, - "exists_engine_med_us": 893.209, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_tiny_mixed", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 39844.837, - "count_warm_med_us": 40149.951, - "count_warm_p10_us": 37893.998, - "count_warm_p90_us": 52291.964, - "count_engine_med_us": 55077.566, - "exists_cold_us": 55464.296, - "exists_warm_med_us": 52672.705, - "exists_warm_p10_us": 38049.641, - "exists_warm_p90_us": 54798.037, - "exists_engine_med_us": 39506.53, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_medium_mixed", - "threads": 1, - "count": 98184, - "exists": true, - "count_cold_us": 49169.464, - "count_warm_med_us": 47956.362, - "count_warm_p10_us": 46308.891, - "count_warm_p90_us": 59247.109, - "count_engine_med_us": 52098.581, - "exists_cold_us": 2183.775, - "exists_warm_med_us": 791.66, - "exists_warm_p10_us": 741.61, - "exists_warm_p90_us": 896.465, - "exists_engine_med_us": 855.07, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k3_large_mixed", - "threads": 1, - "count": 4994319, - "exists": true, - "count_cold_us": 147057.985, - "count_warm_med_us": 145146.481, - "count_warm_p10_us": 139223.291, - "count_warm_p90_us": 176244.875, - "count_engine_med_us": 147578.576, - "exists_cold_us": 2236.074, - "exists_warm_med_us": 816.537, - "exists_warm_p10_us": 764.745, - "exists_warm_p90_us": 946.14, - "exists_engine_med_us": 872.718, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_tiny_and", - "threads": 1, - "count": 470, - "exists": true, - "count_cold_us": 55956.83, - "count_warm_med_us": 54096.707, - "count_warm_p10_us": 52613.907, - "count_warm_p90_us": 60750.264, - "count_engine_med_us": 60818.107, - "exists_cold_us": 3842.115, - "exists_warm_med_us": 1617.39, - "exists_warm_p10_us": 1284.12, - "exists_warm_p90_us": 1742.286, - "exists_engine_med_us": 1768.812, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_medium_and", - "threads": 1, - "count": 100924, - "exists": true, - "count_cold_us": 84760.756, - "count_warm_med_us": 83866.331, - "count_warm_p10_us": 78918.1, - "count_warm_p90_us": 97287.874, - "count_engine_med_us": 82392.971, - "exists_cold_us": 2725.984, - "exists_warm_med_us": 958.659, - "exists_warm_p10_us": 903.8, - "exists_warm_p90_us": 1021.921, - "exists_engine_med_us": 998.406, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_large_and", - "threads": 1, - "count": 4981051, - "exists": true, - "count_cold_us": 108266.632, - "count_warm_med_us": 108897.643, - "count_warm_p10_us": 103072.351, - "count_warm_p90_us": 143759.357, - "count_engine_med_us": 106359.689, - "exists_cold_us": 2578.549, - "exists_warm_med_us": 946.59, - "exists_warm_p10_us": 900.27, - "exists_warm_p90_us": 1052.842, - "exists_engine_med_us": 1035.345, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_tiny_or", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 2263.95, - "count_warm_med_us": 702.615, - "count_warm_p10_us": 616.987, - "count_warm_p90_us": 762.604, - "count_engine_med_us": 944.155, - "exists_cold_us": 2094.385, - "exists_warm_med_us": 1262.405, - "exists_warm_p10_us": 828.011, - "exists_warm_p90_us": 1459.215, - "exists_engine_med_us": 1247.973, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_medium_or", - "threads": 1, - "count": 99996, - "exists": true, - "count_cold_us": 198433.602, - "count_warm_med_us": 173318.713, - "count_warm_p10_us": 165066.428, - "count_warm_p90_us": 210973.249, - "count_engine_med_us": 171537.306, - "exists_cold_us": 2952.271, - "exists_warm_med_us": 957.676, - "exists_warm_p10_us": 897.092, - "exists_warm_p90_us": 1081.243, - "exists_engine_med_us": 1085.393, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_large_or", - "threads": 1, - "count": 4988280, - "exists": true, - "count_cold_us": 293438.828, - "count_warm_med_us": 310465.768, - "count_warm_p10_us": 287628.682, - "count_warm_p90_us": 357198.362, - "count_engine_med_us": 300716.615, - "exists_cold_us": 2625.46, - "exists_warm_med_us": 995.7, - "exists_warm_p10_us": 954.724, - "exists_warm_p90_us": 1119.895, - "exists_engine_med_us": 1097.319, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_tiny_mixed", - "threads": 1, - "count": 935, - "exists": true, - "count_cold_us": 156531.439, - "count_warm_med_us": 150918.097, - "count_warm_p10_us": 139435.223, - "count_warm_p90_us": 171941.7, - "count_engine_med_us": 146203.897, - "exists_cold_us": 4109.031, - "exists_warm_med_us": 1770.589, - "exists_warm_p10_us": 1685.204, - "exists_warm_p90_us": 2006.644, - "exists_engine_med_us": 1839.301, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_medium_mixed", - "threads": 1, - "count": 99047, - "exists": true, - "count_cold_us": 259289.199, - "count_warm_med_us": 263585.041, - "count_warm_p10_us": 252283.056, - "count_warm_p90_us": 278934.206, - "count_engine_med_us": 291324.837, - "exists_cold_us": 2864.733, - "exists_warm_med_us": 1106.107, - "exists_warm_p10_us": 999.16, - "exists_warm_p90_us": 1196.28, - "exists_engine_med_us": 1126.869, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k8_large_mixed", - "threads": 1, - "count": 5001665, - "exists": true, - "count_cold_us": 733782.904, - "count_warm_med_us": 717301.74, - "count_warm_p10_us": 676493.995, - "count_warm_p90_us": 764098.636, - "count_engine_med_us": 687487.765, - "exists_cold_us": 3179.222, - "exists_warm_med_us": 1228.772, - "exists_warm_p10_us": 1149.402, - "exists_warm_p90_us": 1410.354, - "exists_engine_med_us": 1472.383, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_tiny_and", - "threads": 1, - "count": 467, - "exists": true, - "count_cold_us": 161678.105, - "count_warm_med_us": 142113.741, - "count_warm_p10_us": 138068.272, - "count_warm_p90_us": 159330.942, - "count_engine_med_us": 145205.464, - "exists_cold_us": 6489.25, - "exists_warm_med_us": 2075.984, - "exists_warm_p10_us": 1838.617, - "exists_warm_p90_us": 2591.809, - "exists_engine_med_us": 2130.671, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_medium_and", - "threads": 1, - "count": 97561, - "exists": true, - "count_cold_us": 158241.606, - "count_warm_med_us": 159095.187, - "count_warm_p10_us": 152453.355, - "count_warm_p90_us": 179033.291, - "count_engine_med_us": 169152.232, - "exists_cold_us": 4727.457, - "exists_warm_med_us": 1784.759, - "exists_warm_p10_us": 1326.998, - "exists_warm_p90_us": 1926.197, - "exists_engine_med_us": 1979.829, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_large_and", - "threads": 1, - "count": 4998174, - "exists": true, - "count_cold_us": 224923.666, - "count_warm_med_us": 212825.209, - "count_warm_p10_us": 200323.212, - "count_warm_p90_us": 243018.876, - "count_engine_med_us": 222076.112, - "exists_cold_us": 3894.09, - "exists_warm_med_us": 1341.833, - "exists_warm_p10_us": 1261.508, - "exists_warm_p90_us": 1489.43, - "exists_engine_med_us": 1444.638, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_tiny_or", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 2441.139, - "count_warm_med_us": 1041.07, - "count_warm_p10_us": 861.031, - "count_warm_p90_us": 1580.251, - "count_engine_med_us": 932.302, - "exists_cold_us": 3979.77, - "exists_warm_med_us": 1473.901, - "exists_warm_p10_us": 998.348, - "exists_warm_p90_us": 1587.639, - "exists_engine_med_us": 1048.242, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_medium_or", - "threads": 1, - "count": 100002, - "exists": true, - "count_cold_us": 218725.526, - "count_warm_med_us": 225787.854, - "count_warm_p10_us": 217506.411, - "count_warm_p90_us": 239055.304, - "count_engine_med_us": 239839.676, - "exists_cold_us": 4341.183, - "exists_warm_med_us": 1347.261, - "exists_warm_p10_us": 1285.183, - "exists_warm_p90_us": 1574.028, - "exists_engine_med_us": 1366.944, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_large_or", - "threads": 1, - "count": 5051202, - "exists": true, - "count_cold_us": 470453.96, - "count_warm_med_us": 478393.135, - "count_warm_p10_us": 459015.548, - "count_warm_p90_us": 522631.372, - "count_engine_med_us": 542011.279, - "exists_cold_us": 3415.555, - "exists_warm_med_us": 1348.977, - "exists_warm_p10_us": 1297.594, - "exists_warm_p90_us": 1419.292, - "exists_engine_med_us": 1404.311, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_tiny_mixed", - "threads": 1, - "count": 467, - "exists": true, - "count_cold_us": 126345.808, - "count_warm_med_us": 136162.45, - "count_warm_p10_us": 124953.163, - "count_warm_p90_us": 153836.004, - "count_engine_med_us": 132247.891, - "exists_cold_us": 4726.517, - "exists_warm_med_us": 2176.461, - "exists_warm_p10_us": 2072.42, - "exists_warm_p90_us": 2508.502, - "exists_engine_med_us": 2261.205, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_medium_mixed", - "threads": 1, - "count": 100925, - "exists": true, - "count_cold_us": 278162.835, - "count_warm_med_us": 293817.992, - "count_warm_p10_us": 268319.422, - "count_warm_p90_us": 334273.536, - "count_engine_med_us": 298033.857, - "exists_cold_us": 3776.0, - "exists_warm_med_us": 1420.571, - "exists_warm_p10_us": 1337.46, - "exists_warm_p90_us": 1554.073, - "exists_engine_med_us": 1634.848, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k17_large_mixed", - "threads": 1, - "count": 4982809, - "exists": true, - "count_cold_us": 1245376.339, - "count_warm_med_us": 1382934.443, - "count_warm_p10_us": 1296478.545, - "count_warm_p90_us": 1458620.134, - "count_engine_med_us": 1401588.613, - "exists_cold_us": 5825.652, - "exists_warm_med_us": 2389.558, - "exists_warm_p10_us": 2230.868, - "exists_warm_p90_us": 2581.573, - "exists_engine_med_us": 2381.286, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_tiny_and", - "threads": 1, - "count": 472, - "exists": true, - "count_cold_us": 185195.037, - "count_warm_med_us": 147036.367, - "count_warm_p10_us": 137224.897, - "count_warm_p90_us": 177397.347, - "count_engine_med_us": 137556.344, - "exists_cold_us": 4522.701, - "exists_warm_med_us": 1684.933, - "exists_warm_p10_us": 1613.6, - "exists_warm_p90_us": 1955.555, - "exists_engine_med_us": 2038.064, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_medium_and", - "threads": 1, - "count": 99057, - "exists": true, - "count_cold_us": 189360.304, - "count_warm_med_us": 188568.633, - "count_warm_p10_us": 178043.045, - "count_warm_p90_us": 207406.084, - "count_engine_med_us": 187580.207, - "exists_cold_us": 4010.641, - "exists_warm_med_us": 1508.858, - "exists_warm_p10_us": 1401.005, - "exists_warm_p90_us": 1594.974, - "exists_engine_med_us": 1675.06, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_large_and", - "threads": 1, - "count": 5020727, - "exists": true, - "count_cold_us": 257003.716, - "count_warm_med_us": 248329.805, - "count_warm_p10_us": 240150.937, - "count_warm_p90_us": 273724.578, - "count_engine_med_us": 243513.328, - "exists_cold_us": 4200.436, - "exists_warm_med_us": 1504.527, - "exists_warm_p10_us": 1427.48, - "exists_warm_p90_us": 1630.253, - "exists_engine_med_us": 1775.404, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_tiny_or", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 2913.745, - "count_warm_med_us": 1002.399, - "count_warm_p10_us": 961.082, - "count_warm_p90_us": 1046.008, - "count_engine_med_us": 1046.244, - "exists_cold_us": 2984.651, - "exists_warm_med_us": 1129.842, - "exists_warm_p10_us": 1074.763, - "exists_warm_p90_us": 1424.99, - "exists_engine_med_us": 1119.056, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_medium_or", - "threads": 1, - "count": 99996, - "exists": true, - "count_cold_us": 255567.173, - "count_warm_med_us": 227149.938, - "count_warm_p10_us": 214776.252, - "count_warm_p90_us": 254285.605, - "count_engine_med_us": 239568.307, - "exists_cold_us": 4061.559, - "exists_warm_med_us": 1463.55, - "exists_warm_p10_us": 1368.286, - "exists_warm_p90_us": 1542.053, - "exists_engine_med_us": 1592.923, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_large_or", - "threads": 1, - "count": 4956413, - "exists": true, - "count_cold_us": 597798.27, - "count_warm_med_us": 572694.67, - "count_warm_p10_us": 542379.5, - "count_warm_p90_us": 619256.523, - "count_engine_med_us": 558926.018, - "exists_cold_us": 4702.7, - "exists_warm_med_us": 1600.601, - "exists_warm_p10_us": 1467.353, - "exists_warm_p90_us": 1804.452, - "exists_engine_med_us": 1799.861, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_tiny_mixed", - "threads": 1, - "count": 470, - "exists": true, - "count_cold_us": 617623.369, - "count_warm_med_us": 657116.085, - "count_warm_p10_us": 580074.094, - "count_warm_p90_us": 864066.025, - "count_engine_med_us": 567573.711, - "exists_cold_us": 4719.75, - "exists_warm_med_us": 1916.48, - "exists_warm_p10_us": 1847.831, - "exists_warm_p90_us": 2013.212, - "exists_engine_med_us": 2046.632, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_medium_mixed", - "threads": 1, - "count": 99512, - "exists": true, - "count_cold_us": 982435.042, - "count_warm_med_us": 932183.176, - "count_warm_p10_us": 813157.076, - "count_warm_p90_us": 1032239.762, - "count_engine_med_us": 981755.737, - "exists_cold_us": 4763.673, - "exists_warm_med_us": 1784.214, - "exists_warm_p10_us": 1681.136, - "exists_warm_p90_us": 1973.465, - "exists_engine_med_us": 1940.677, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k24_large_mixed", - "threads": 1, - "count": 5004671, - "exists": true, - "count_cold_us": 2214063.598, - "count_warm_med_us": 2090124.495, - "count_warm_p10_us": 1915360.156, - "count_warm_p90_us": 2191581.777, - "count_engine_med_us": 1985161.07, - "exists_cold_us": 4817.631, - "exists_warm_med_us": 2006.542, - "exists_warm_p10_us": 1922.813, - "exists_warm_p90_us": 2198.233, - "exists_engine_med_us": 2103.571, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_one_everything", - "threads": 1, - "count": 100002, - "exists": true, - "count_cold_us": 15811.984, - "count_warm_med_us": 14886.763, - "count_warm_p10_us": 14636.467, - "count_warm_p90_us": 16135.664, - "count_engine_med_us": 24485.818, - "exists_cold_us": 2685.022, - "exists_warm_med_us": 972.847, - "exists_warm_p10_us": 825.463, - "exists_warm_p90_us": 1045.69, - "exists_engine_med_us": 814.382, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_one_nothing", - "threads": 1, - "count": 10002, - "exists": true, - "count_cold_us": 26575.487, - "count_warm_med_us": 25638.508, - "count_warm_p10_us": 25230.058, - "count_warm_p90_us": 31352.376, - "count_engine_med_us": 29261.356, - "exists_cold_us": 2552.21, - "exists_warm_med_us": 1090.365, - "exists_warm_p10_us": 1037.793, - "exists_warm_p90_us": 1149.761, - "exists_engine_med_us": 1089.097, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_or_one_everything", - "threads": 1, - "count": 10000000, - "exists": true, - "count_cold_us": 2209.321, - "count_warm_med_us": 847.404, - "count_warm_p10_us": 799.116, - "count_warm_p90_us": 922.304, - "count_engine_med_us": null, - "exists_cold_us": 2233.189, - "exists_warm_med_us": 922.901, - "exists_warm_p10_us": 873.196, - "exists_warm_p90_us": 1000.03, - "exists_engine_med_us": 946.774, - "count_stats_folded": true, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_or_one_nothing", - "threads": 1, - "count": 10000, - "exists": true, - "count_cold_us": 30291.237, - "count_warm_med_us": 22805.111, - "count_warm_p10_us": 20120.688, - "count_warm_p90_us": 28261.278, - "count_engine_med_us": 23057.298, - "exists_cold_us": 1684.895, - "exists_warm_med_us": 713.417, - "exists_warm_p10_us": 649.133, - "exists_warm_p90_us": 824.781, - "exists_engine_med_us": 774.878, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_16_nonselective", - "threads": 1, - "count": 8271472, - "exists": true, - "count_cold_us": 227110.399, - "count_warm_med_us": 217536.641, - "count_warm_p10_us": 203810.381, - "count_warm_p90_us": 263775.478, - "count_engine_med_us": 234985.884, - "exists_cold_us": 3606.988, - "exists_warm_med_us": 1441.151, - "exists_warm_p10_us": 1229.212, - "exists_warm_p90_us": 1933.781, - "exists_engine_med_us": 1426.411, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_16_collapse_one", - "threads": 1, - "count": 472, - "exists": true, - "count_cold_us": 67674.311, - "count_warm_med_us": 64304.967, - "count_warm_p10_us": 60969.301, - "count_warm_p90_us": 71367.624, - "count_engine_med_us": 64808.0, - "exists_cold_us": 3577.563, - "exists_warm_med_us": 1413.118, - "exists_warm_p10_us": 1365.213, - "exists_warm_p90_us": 1566.712, - "exists_engine_med_us": 1538.06, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_correlated_2", - "threads": 1, - "count": 5000004, - "exists": true, - "count_cold_us": 27470.857, - "count_warm_med_us": 28390.526, - "count_warm_p10_us": 27325.025, - "count_warm_p90_us": 32607.226, - "count_engine_med_us": 30240.064, - "exists_cold_us": 1755.252, - "exists_warm_med_us": 667.976, - "exists_warm_p10_us": 631.758, - "exists_warm_p90_us": 783.548, - "exists_engine_med_us": 724.291, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_correlated_5", - "threads": 1, - "count": 4900007, - "exists": true, - "count_cold_us": 30566.568, - "count_warm_med_us": 31018.661, - "count_warm_p10_us": 28904.343, - "count_warm_p90_us": 37355.472, - "count_engine_med_us": 32148.319, - "exists_cold_us": 2982.513, - "exists_warm_med_us": 782.315, - "exists_warm_p10_us": 698.56, - "exists_warm_p90_us": 1215.937, - "exists_engine_med_us": 860.639, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_contradictory_2", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 1831.854, - "count_warm_med_us": 727.764, - "count_warm_p10_us": 676.574, - "count_warm_p90_us": 817.386, - "count_engine_med_us": 683.205, - "exists_cold_us": 1889.685, - "exists_warm_med_us": 856.112, - "exists_warm_p10_us": 818.926, - "exists_warm_p90_us": 932.513, - "exists_engine_med_us": 823.408, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "adv_contradictory_17", - "threads": 1, - "count": 0, - "exists": false, - "count_cold_us": 3168.312, - "count_warm_med_us": 710.952, - "count_warm_p10_us": 650.282, - "count_warm_p90_us": 1139.29, - "count_engine_med_us": 789.93, - "exists_cold_us": 2443.762, - "exists_warm_med_us": 821.251, - "exists_warm_p10_us": 753.121, - "exists_warm_p90_us": 1070.011, - "exists_engine_med_us": 834.81, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "null_and", - "threads": 1, - "count": 999196, - "exists": true, - "count_cold_us": 35657.177, - "count_warm_med_us": 36063.316, - "count_warm_p10_us": 30961.02, - "count_warm_p90_us": 45946.56, - "count_engine_med_us": 36621.35, - "exists_cold_us": 2789.272, - "exists_warm_med_us": 1035.524, - "exists_warm_p10_us": 1000.516, - "exists_warm_p90_us": 1102.593, - "exists_engine_med_us": 734.41, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "null_not", - "threads": 1, - "count": 4499990, - "exists": true, - "count_cold_us": 21289.359, - "count_warm_med_us": 20619.505, - "count_warm_p10_us": 19062.566, - "count_warm_p90_us": 27337.407, - "count_engine_med_us": 20156.17, - "exists_cold_us": 1931.649, - "exists_warm_med_us": 775.507, - "exists_warm_p10_us": 671.172, - "exists_warm_p90_us": 1011.106, - "exists_engine_med_us": 918.7, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "null_or", - "threads": 1, - "count": 1900011, - "exists": true, - "count_cold_us": 91765.326, - "count_warm_med_us": 99873.386, - "count_warm_p10_us": 92502.283, - "count_warm_p90_us": 125110.66, - "count_engine_med_us": 132234.732, - "exists_cold_us": 2787.508, - "exists_warm_med_us": 1117.043, - "exists_warm_p10_us": 1064.47, - "exists_warm_p90_us": 1181.74, - "exists_engine_med_us": 1165.213, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "null_not_and", - "threads": 1, - "count": 8500703, - "exists": true, - "count_cold_us": 268779.912, - "count_warm_med_us": 268063.025, - "count_warm_p10_us": 253638.211, - "count_warm_p90_us": 292741.012, - "count_engine_med_us": 316992.886, - "exists_cold_us": 2140.296, - "exists_warm_med_us": 787.313, - "exists_warm_p10_us": 763.485, - "exists_warm_p90_us": 855.888, - "exists_engine_med_us": 883.385, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "null_and_5", - "threads": 1, - "count": 2674492, - "exists": true, - "count_cold_us": 60103.157, - "count_warm_med_us": 70334.551, - "count_warm_p10_us": 59095.509, - "count_warm_p90_us": 88203.946, - "count_engine_med_us": 73451.034, - "exists_cold_us": 2260.056, - "exists_warm_med_us": 814.59, - "exists_warm_p10_us": 788.315, - "exists_warm_p90_us": 887.763, - "exists_engine_med_us": 947.001, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 139.161 - }, - { - "id": "k1_tiny_single", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 1871.647, - "count_warm_med_us": 749.223, - "count_warm_p10_us": 678.621, - "count_warm_p90_us": 873.985, - "count_engine_med_us": 608.702, - "exists_cold_us": 1680.336, - "exists_warm_med_us": 740.263, - "exists_warm_p10_us": 646.151, - "exists_warm_p90_us": 856.733, - "exists_engine_med_us": 851.195, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k1_medium_single", - "threads": 4, - "count": 100002, - "exists": true, - "count_cold_us": 6434.684, - "count_warm_med_us": 4115.561, - "count_warm_p10_us": 3877.721, - "count_warm_p90_us": 5311.699, - "count_engine_med_us": 4174.612, - "exists_cold_us": 1729.577, - "exists_warm_med_us": 878.051, - "exists_warm_p10_us": 793.444, - "exists_warm_p90_us": 1077.537, - "exists_engine_med_us": 963.92, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k1_large_single", - "threads": 4, - "count": 5000008, - "exists": true, - "count_cold_us": 5776.252, - "count_warm_med_us": 4483.299, - "count_warm_p10_us": 4219.737, - "count_warm_p90_us": 4782.79, - "count_engine_med_us": 4355.837, - "exists_cold_us": 1907.953, - "exists_warm_med_us": 913.845, - "exists_warm_p10_us": 820.975, - "exists_warm_p90_us": 961.249, - "exists_engine_med_us": 957.333, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_tiny_and", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 15528.342, - "count_warm_med_us": 10953.751, - "count_warm_p10_us": 10139.613, - "count_warm_p90_us": 11809.298, - "count_engine_med_us": 10635.067, - "exists_cold_us": 11377.072, - "exists_warm_med_us": 10196.956, - "exists_warm_p10_us": 9703.267, - "exists_warm_p90_us": 11510.52, - "exists_engine_med_us": 10711.576, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_medium_and", - "threads": 4, - "count": 101386, - "exists": true, - "count_cold_us": 11744.137, - "count_warm_med_us": 9979.637, - "count_warm_p10_us": 9089.253, - "count_warm_p90_us": 11851.182, - "count_engine_med_us": 10728.556, - "exists_cold_us": 2050.705, - "exists_warm_med_us": 1034.455, - "exists_warm_p10_us": 964.839, - "exists_warm_p90_us": 1126.23, - "exists_engine_med_us": 1122.253, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_large_and", - "threads": 4, - "count": 4996187, - "exists": true, - "count_cold_us": 14624.606, - "count_warm_med_us": 12053.086, - "count_warm_p10_us": 11507.726, - "count_warm_p90_us": 13913.602, - "count_engine_med_us": 12181.618, - "exists_cold_us": 1895.561, - "exists_warm_med_us": 1018.205, - "exists_warm_p10_us": 965.207, - "exists_warm_p90_us": 1089.137, - "exists_engine_med_us": 1195.977, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_tiny_or", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 1611.062, - "count_warm_med_us": 648.233, - "count_warm_p10_us": 607.604, - "count_warm_p90_us": 687.717, - "count_engine_med_us": 678.099, - "exists_cold_us": 1741.133, - "exists_warm_med_us": 750.087, - "exists_warm_p10_us": 691.034, - "exists_warm_p90_us": 861.979, - "exists_engine_med_us": 785.754, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_medium_or", - "threads": 4, - "count": 100001, - "exists": true, - "count_cold_us": 21176.712, - "count_warm_med_us": 18505.289, - "count_warm_p10_us": 17818.317, - "count_warm_p90_us": 20038.204, - "count_engine_med_us": 18795.085, - "exists_cold_us": 2297.622, - "exists_warm_med_us": 1011.684, - "exists_warm_p10_us": 958.979, - "exists_warm_p90_us": 1105.431, - "exists_engine_med_us": 1167.361, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_large_or", - "threads": 4, - "count": 5006214, - "exists": true, - "count_cold_us": 56874.199, - "count_warm_med_us": 50145.192, - "count_warm_p10_us": 48939.839, - "count_warm_p90_us": 53301.9, - "count_engine_med_us": 54685.31, - "exists_cold_us": 2441.51, - "exists_warm_med_us": 1035.585, - "exists_warm_p10_us": 925.192, - "exists_warm_p90_us": 1156.646, - "exists_engine_med_us": 1064.823, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_tiny_mixed", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 12750.734, - "count_warm_med_us": 10858.104, - "count_warm_p10_us": 10216.734, - "count_warm_p90_us": 12540.32, - "count_engine_med_us": 10898.165, - "exists_cold_us": 13297.504, - "exists_warm_med_us": 11380.755, - "exists_warm_p10_us": 9960.307, - "exists_warm_p90_us": 12350.923, - "exists_engine_med_us": 12286.24, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_medium_mixed", - "threads": 4, - "count": 98184, - "exists": true, - "count_cold_us": 15832.473, - "count_warm_med_us": 13830.31, - "count_warm_p10_us": 13214.573, - "count_warm_p90_us": 14880.945, - "count_engine_med_us": 12542.499, - "exists_cold_us": 1980.489, - "exists_warm_med_us": 976.191, - "exists_warm_p10_us": 909.123, - "exists_warm_p90_us": 1121.732, - "exists_engine_med_us": 1084.871, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k3_large_mixed", - "threads": 4, - "count": 4994319, - "exists": true, - "count_cold_us": 38519.307, - "count_warm_med_us": 37466.714, - "count_warm_p10_us": 36130.718, - "count_warm_p90_us": 41631.505, - "count_engine_med_us": 40296.914, - "exists_cold_us": 2164.565, - "exists_warm_med_us": 1052.128, - "exists_warm_p10_us": 979.32, - "exists_warm_p90_us": 1187.505, - "exists_engine_med_us": 1219.486, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_tiny_and", - "threads": 4, - "count": 470, - "exists": true, - "count_cold_us": 20922.166, - "count_warm_med_us": 16602.223, - "count_warm_p10_us": 15278.63, - "count_warm_p90_us": 17679.785, - "count_engine_med_us": 19904.764, - "exists_cold_us": 4028.688, - "exists_warm_med_us": 1921.746, - "exists_warm_p10_us": 1721.622, - "exists_warm_p90_us": 2180.01, - "exists_engine_med_us": 1959.764, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_medium_and", - "threads": 4, - "count": 100924, - "exists": true, - "count_cold_us": 26853.624, - "count_warm_med_us": 26988.835, - "count_warm_p10_us": 24780.696, - "count_warm_p90_us": 33097.631, - "count_engine_med_us": 24283.361, - "exists_cold_us": 2554.211, - "exists_warm_med_us": 1249.654, - "exists_warm_p10_us": 1203.72, - "exists_warm_p90_us": 1349.364, - "exists_engine_med_us": 1425.402, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_large_and", - "threads": 4, - "count": 4981051, - "exists": true, - "count_cold_us": 31066.578, - "count_warm_med_us": 30166.363, - "count_warm_p10_us": 27901.775, - "count_warm_p90_us": 32135.999, - "count_engine_med_us": 29397.203, - "exists_cold_us": 5246.5, - "exists_warm_med_us": 1241.485, - "exists_warm_p10_us": 1156.362, - "exists_warm_p90_us": 1304.74, - "exists_engine_med_us": 1292.917, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_tiny_or", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 1965.874, - "count_warm_med_us": 798.097, - "count_warm_p10_us": 739.319, - "count_warm_p90_us": 842.183, - "count_engine_med_us": 851.762, - "exists_cold_us": 1904.567, - "exists_warm_med_us": 1022.548, - "exists_warm_p10_us": 887.954, - "exists_warm_p90_us": 1334.444, - "exists_engine_med_us": 1231.076, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_medium_or", - "threads": 4, - "count": 99996, - "exists": true, - "count_cold_us": 52176.701, - "count_warm_med_us": 51723.336, - "count_warm_p10_us": 45960.011, - "count_warm_p90_us": 58742.962, - "count_engine_med_us": 46572.988, - "exists_cold_us": 3721.637, - "exists_warm_med_us": 1226.379, - "exists_warm_p10_us": 1157.127, - "exists_warm_p90_us": 1306.21, - "exists_engine_med_us": 1403.546, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_large_or", - "threads": 4, - "count": 4988280, - "exists": true, - "count_cold_us": 77316.18, - "count_warm_med_us": 84262.814, - "count_warm_p10_us": 78170.756, - "count_warm_p90_us": 93063.477, - "count_engine_med_us": 89431.826, - "exists_cold_us": 3065.98, - "exists_warm_med_us": 1399.589, - "exists_warm_p10_us": 1296.596, - "exists_warm_p90_us": 1530.809, - "exists_engine_med_us": 1558.938, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_tiny_mixed", - "threads": 4, - "count": 935, - "exists": true, - "count_cold_us": 44939.493, - "count_warm_med_us": 43857.059, - "count_warm_p10_us": 38495.913, - "count_warm_p90_us": 48788.968, - "count_engine_med_us": 43639.95, - "exists_cold_us": 12641.156, - "exists_warm_med_us": 2757.178, - "exists_warm_p10_us": 2507.268, - "exists_warm_p90_us": 3815.503, - "exists_engine_med_us": 3252.194, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_medium_mixed", - "threads": 4, - "count": 99047, - "exists": true, - "count_cold_us": 74151.891, - "count_warm_med_us": 78663.745, - "count_warm_p10_us": 72928.343, - "count_warm_p90_us": 84975.83, - "count_engine_med_us": 87577.482, - "exists_cold_us": 3970.425, - "exists_warm_med_us": 1337.456, - "exists_warm_p10_us": 1244.012, - "exists_warm_p90_us": 1622.865, - "exists_engine_med_us": 1461.696, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k8_large_mixed", - "threads": 4, - "count": 5001665, - "exists": true, - "count_cold_us": 186987.292, - "count_warm_med_us": 187067.914, - "count_warm_p10_us": 179365.609, - "count_warm_p90_us": 203567.056, - "count_engine_med_us": 192926.021, - "exists_cold_us": 2976.847, - "exists_warm_med_us": 1470.576, - "exists_warm_p10_us": 1337.175, - "exists_warm_p90_us": 1620.904, - "exists_engine_med_us": 1572.57, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_tiny_and", - "threads": 4, - "count": 467, - "exists": true, - "count_cold_us": 46080.731, - "count_warm_med_us": 41400.91, - "count_warm_p10_us": 37611.117, - "count_warm_p90_us": 44760.749, - "count_engine_med_us": 37266.567, - "exists_cold_us": 4689.946, - "exists_warm_med_us": 2457.756, - "exists_warm_p10_us": 2359.79, - "exists_warm_p90_us": 2885.134, - "exists_engine_med_us": 2901.454, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_medium_and", - "threads": 4, - "count": 97561, - "exists": true, - "count_cold_us": 46896.638, - "count_warm_med_us": 43895.281, - "count_warm_p10_us": 41964.84, - "count_warm_p90_us": 47762.963, - "count_engine_med_us": 45147.555, - "exists_cold_us": 3833.062, - "exists_warm_med_us": 1537.961, - "exists_warm_p10_us": 1459.985, - "exists_warm_p90_us": 1911.187, - "exists_engine_med_us": 1864.88, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_large_and", - "threads": 4, - "count": 4998174, - "exists": true, - "count_cold_us": 66718.405, - "count_warm_med_us": 57312.287, - "count_warm_p10_us": 54038.012, - "count_warm_p90_us": 65407.923, - "count_engine_med_us": 55350.143, - "exists_cold_us": 3548.841, - "exists_warm_med_us": 1651.631, - "exists_warm_p10_us": 1558.949, - "exists_warm_p90_us": 1980.82, - "exists_engine_med_us": 1882.948, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_tiny_or", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 3615.768, - "count_warm_med_us": 1239.057, - "count_warm_p10_us": 969.255, - "count_warm_p90_us": 1518.573, - "count_engine_med_us": 1011.02, - "exists_cold_us": 6553.592, - "exists_warm_med_us": 1299.219, - "exists_warm_p10_us": 1053.059, - "exists_warm_p90_us": 1496.654, - "exists_engine_med_us": 1162.551, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_medium_or", - "threads": 4, - "count": 100002, - "exists": true, - "count_cold_us": 85288.456, - "count_warm_med_us": 70731.677, - "count_warm_p10_us": 60546.573, - "count_warm_p90_us": 77508.222, - "count_engine_med_us": 71276.998, - "exists_cold_us": 3576.821, - "exists_warm_med_us": 1534.538, - "exists_warm_p10_us": 1477.204, - "exists_warm_p90_us": 1702.162, - "exists_engine_med_us": 1700.985, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_large_or", - "threads": 4, - "count": 5051202, - "exists": true, - "count_cold_us": 134673.595, - "count_warm_med_us": 132258.515, - "count_warm_p10_us": 121620.182, - "count_warm_p90_us": 144933.423, - "count_engine_med_us": 128086.91, - "exists_cold_us": 4738.333, - "exists_warm_med_us": 1600.48, - "exists_warm_p10_us": 1472.364, - "exists_warm_p90_us": 1886.283, - "exists_engine_med_us": 1739.859, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_tiny_mixed", - "threads": 4, - "count": 467, - "exists": true, - "count_cold_us": 46142.743, - "count_warm_med_us": 37984.382, - "count_warm_p10_us": 36448.702, - "count_warm_p90_us": 42364.04, - "count_engine_med_us": 42628.101, - "exists_cold_us": 5223.436, - "exists_warm_med_us": 3366.925, - "exists_warm_p10_us": 2872.097, - "exists_warm_p90_us": 3782.413, - "exists_engine_med_us": 3183.765, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_medium_mixed", - "threads": 4, - "count": 100925, - "exists": true, - "count_cold_us": 102069.82, - "count_warm_med_us": 82346.786, - "count_warm_p10_us": 76204.43, - "count_warm_p90_us": 96357.157, - "count_engine_med_us": 85098.49, - "exists_cold_us": 4511.697, - "exists_warm_med_us": 1813.522, - "exists_warm_p10_us": 1659.229, - "exists_warm_p90_us": 2054.266, - "exists_engine_med_us": 1811.839, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k17_large_mixed", - "threads": 4, - "count": 4982809, - "exists": true, - "count_cold_us": 386468.494, - "count_warm_med_us": 363912.099, - "count_warm_p10_us": 346427.768, - "count_warm_p90_us": 395204.582, - "count_engine_med_us": 367205.728, - "exists_cold_us": 4495.797, - "exists_warm_med_us": 2557.799, - "exists_warm_p10_us": 2317.096, - "exists_warm_p90_us": 2794.218, - "exists_engine_med_us": 2730.663, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_tiny_and", - "threads": 4, - "count": 472, - "exists": true, - "count_cold_us": 44860.351, - "count_warm_med_us": 42430.727, - "count_warm_p10_us": 37389.26, - "count_warm_p90_us": 52364.82, - "count_engine_med_us": 53442.469, - "exists_cold_us": 5692.541, - "exists_warm_med_us": 2717.197, - "exists_warm_p10_us": 2406.995, - "exists_warm_p90_us": 3022.516, - "exists_engine_med_us": 3438.811, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_medium_and", - "threads": 4, - "count": 99057, - "exists": true, - "count_cold_us": 88182.938, - "count_warm_med_us": 55181.249, - "count_warm_p10_us": 49571.319, - "count_warm_p90_us": 61915.714, - "count_engine_med_us": 65205.926, - "exists_cold_us": 6411.247, - "exists_warm_med_us": 2579.024, - "exists_warm_p10_us": 2428.74, - "exists_warm_p90_us": 2775.042, - "exists_engine_med_us": 2760.369, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_large_and", - "threads": 4, - "count": 5020727, - "exists": true, - "count_cold_us": 77131.727, - "count_warm_med_us": 68975.016, - "count_warm_p10_us": 62146.114, - "count_warm_p90_us": 76479.141, - "count_engine_med_us": 69978.948, - "exists_cold_us": 7802.982, - "exists_warm_med_us": 2407.785, - "exists_warm_p10_us": 2222.749, - "exists_warm_p90_us": 2882.511, - "exists_engine_med_us": 2813.396, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_tiny_or", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 4190.414, - "count_warm_med_us": 1637.844, - "count_warm_p10_us": 1510.91, - "count_warm_p90_us": 1732.511, - "count_engine_med_us": 1171.044, - "exists_cold_us": 4118.304, - "exists_warm_med_us": 1724.177, - "exists_warm_p10_us": 1652.152, - "exists_warm_p90_us": 1876.765, - "exists_engine_med_us": 1826.982, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_medium_or", - "threads": 4, - "count": 99996, - "exists": true, - "count_cold_us": 80694.631, - "count_warm_med_us": 88748.34, - "count_warm_p10_us": 68572.613, - "count_warm_p90_us": 110115.158, - "count_engine_med_us": 104740.6, - "exists_cold_us": 5958.114, - "exists_warm_med_us": 3027.837, - "exists_warm_p10_us": 2210.423, - "exists_warm_p90_us": 3368.555, - "exists_engine_med_us": 3568.398, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_large_or", - "threads": 4, - "count": 4956413, - "exists": true, - "count_cold_us": 228291.138, - "count_warm_med_us": 215605.73, - "count_warm_p10_us": 197897.459, - "count_warm_p90_us": 253296.758, - "count_engine_med_us": 212426.936, - "exists_cold_us": 7624.735, - "exists_warm_med_us": 3283.849, - "exists_warm_p10_us": 3100.935, - "exists_warm_p90_us": 3719.634, - "exists_engine_med_us": 4198.876, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_tiny_mixed", - "threads": 4, - "count": 470, - "exists": true, - "count_cold_us": 311491.482, - "count_warm_med_us": 183991.036, - "count_warm_p10_us": 170701.073, - "count_warm_p90_us": 263677.072, - "count_engine_med_us": 179896.046, - "exists_cold_us": 11045.631, - "exists_warm_med_us": 7625.615, - "exists_warm_p10_us": 7096.427, - "exists_warm_p90_us": 8584.633, - "exists_engine_med_us": 7770.666, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_medium_mixed", - "threads": 4, - "count": 99512, - "exists": true, - "count_cold_us": 280559.084, - "count_warm_med_us": 268751.004, - "count_warm_p10_us": 257072.619, - "count_warm_p90_us": 294069.621, - "count_engine_med_us": 291474.061, - "exists_cold_us": 4823.269, - "exists_warm_med_us": 2620.977, - "exists_warm_p10_us": 2231.001, - "exists_warm_p90_us": 2968.209, - "exists_engine_med_us": 2362.137, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "k24_large_mixed", - "threads": 4, - "count": 5004671, - "exists": true, - "count_cold_us": 524591.464, - "count_warm_med_us": 556772.81, - "count_warm_p10_us": 515385.017, - "count_warm_p90_us": 590382.956, - "count_engine_med_us": 516854.479, - "exists_cold_us": 5390.823, - "exists_warm_med_us": 2286.858, - "exists_warm_p10_us": 2102.162, - "exists_warm_p90_us": 2884.733, - "exists_engine_med_us": 3014.98, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_one_everything", - "threads": 4, - "count": 100002, - "exists": true, - "count_cold_us": 15176.351, - "count_warm_med_us": 3725.42, - "count_warm_p10_us": 3511.534, - "count_warm_p90_us": 6466.661, - "count_engine_med_us": 4034.868, - "exists_cold_us": 2410.407, - "exists_warm_med_us": 901.794, - "exists_warm_p10_us": 849.491, - "exists_warm_p90_us": 1008.182, - "exists_engine_med_us": 990.213, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_one_nothing", - "threads": 4, - "count": 10002, - "exists": true, - "count_cold_us": 9038.928, - "count_warm_med_us": 7062.048, - "count_warm_p10_us": 6572.049, - "count_warm_p90_us": 7702.46, - "count_engine_med_us": 7261.472, - "exists_cold_us": 1954.767, - "exists_warm_med_us": 1009.68, - "exists_warm_p10_us": 903.306, - "exists_warm_p90_us": 1102.241, - "exists_engine_med_us": 1020.187, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_or_one_everything", - "threads": 4, - "count": 10000000, - "exists": true, - "count_cold_us": 1629.553, - "count_warm_med_us": 633.246, - "count_warm_p10_us": 580.365, - "count_warm_p90_us": 685.163, - "count_engine_med_us": null, - "exists_cold_us": 1640.778, - "exists_warm_med_us": 771.384, - "exists_warm_p10_us": 732.822, - "exists_warm_p90_us": 828.935, - "exists_engine_med_us": 911.268, - "count_stats_folded": true, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_or_one_nothing", - "threads": 4, - "count": 10000, - "exists": true, - "count_cold_us": 7254.88, - "count_warm_med_us": 5286.979, - "count_warm_p10_us": 4705.961, - "count_warm_p90_us": 6077.722, - "count_engine_med_us": 5569.257, - "exists_cold_us": 1851.471, - "exists_warm_med_us": 916.422, - "exists_warm_p10_us": 868.081, - "exists_warm_p90_us": 992.307, - "exists_engine_med_us": 1063.324, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_16_nonselective", - "threads": 4, - "count": 8271472, - "exists": true, - "count_cold_us": 59025.753, - "count_warm_med_us": 57095.387, - "count_warm_p10_us": 52851.272, - "count_warm_p90_us": 69444.507, - "count_engine_med_us": 59265.863, - "exists_cold_us": 3625.008, - "exists_warm_med_us": 1649.145, - "exists_warm_p10_us": 1525.951, - "exists_warm_p90_us": 1932.595, - "exists_engine_med_us": 1759.583, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_16_collapse_one", - "threads": 4, - "count": 472, - "exists": true, - "count_cold_us": 21144.68, - "count_warm_med_us": 18712.334, - "count_warm_p10_us": 17691.2, - "count_warm_p90_us": 21910.028, - "count_engine_med_us": 19949.109, - "exists_cold_us": 5055.78, - "exists_warm_med_us": 2643.064, - "exists_warm_p10_us": 2473.053, - "exists_warm_p90_us": 2803.595, - "exists_engine_med_us": 2925.082, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_correlated_2", - "threads": 4, - "count": 5000004, - "exists": true, - "count_cold_us": 10956.248, - "count_warm_med_us": 7181.093, - "count_warm_p10_us": 6705.352, - "count_warm_p90_us": 8425.329, - "count_engine_med_us": 6992.324, - "exists_cold_us": 1765.145, - "exists_warm_med_us": 920.959, - "exists_warm_p10_us": 822.843, - "exists_warm_p90_us": 1029.708, - "exists_engine_med_us": 1059.528, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_correlated_5", - "threads": 4, - "count": 4900007, - "exists": true, - "count_cold_us": 9535.014, - "count_warm_med_us": 6878.649, - "count_warm_p10_us": 6244.281, - "count_warm_p90_us": 8467.805, - "count_engine_med_us": 6917.489, - "exists_cold_us": 1933.827, - "exists_warm_med_us": 949.248, - "exists_warm_p10_us": 848.192, - "exists_warm_p90_us": 1042.185, - "exists_engine_med_us": 1051.395, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_contradictory_2", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 1436.248, - "count_warm_med_us": 656.882, - "count_warm_p10_us": 536.658, - "count_warm_p90_us": 823.092, - "count_engine_med_us": 676.598, - "exists_cold_us": 1816.518, - "exists_warm_med_us": 947.912, - "exists_warm_p10_us": 762.45, - "exists_warm_p90_us": 1025.736, - "exists_engine_med_us": 757.721, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "adv_contradictory_17", - "threads": 4, - "count": 0, - "exists": false, - "count_cold_us": 2477.712, - "count_warm_med_us": 790.048, - "count_warm_p10_us": 726.603, - "count_warm_p90_us": 927.14, - "count_engine_med_us": 882.155, - "exists_cold_us": 2475.481, - "exists_warm_med_us": 949.547, - "exists_warm_p10_us": 874.23, - "exists_warm_p90_us": 1082.403, - "exists_engine_med_us": 1007.687, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "null_and", - "threads": 4, - "count": 999196, - "exists": true, - "count_cold_us": 10667.413, - "count_warm_med_us": 8346.251, - "count_warm_p10_us": 7985.069, - "count_warm_p90_us": 9333.508, - "count_engine_med_us": 8109.684, - "exists_cold_us": 2396.618, - "exists_warm_med_us": 961.518, - "exists_warm_p10_us": 883.122, - "exists_warm_p90_us": 1171.194, - "exists_engine_med_us": 1039.501, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "null_not", - "threads": 4, - "count": 4499990, - "exists": true, - "count_cold_us": 6682.983, - "count_warm_med_us": 5210.289, - "count_warm_p10_us": 4729.813, - "count_warm_p90_us": 5772.391, - "count_engine_med_us": 5399.063, - "exists_cold_us": 2232.762, - "exists_warm_med_us": 1018.497, - "exists_warm_p10_us": 897.245, - "exists_warm_p90_us": 1078.882, - "exists_engine_med_us": 1009.994, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "null_or", - "threads": 4, - "count": 1900011, - "exists": true, - "count_cold_us": 27056.836, - "count_warm_med_us": 26963.58, - "count_warm_p10_us": 25184.204, - "count_warm_p90_us": 29545.113, - "count_engine_med_us": 27898.874, - "exists_cold_us": 2313.22, - "exists_warm_med_us": 1347.176, - "exists_warm_p10_us": 1012.047, - "exists_warm_p90_us": 1676.492, - "exists_engine_med_us": 1075.276, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "null_not_and", - "threads": 4, - "count": 8500703, - "exists": true, - "count_cold_us": 79255.859, - "count_warm_med_us": 74116.916, - "count_warm_p10_us": 67114.128, - "count_warm_p90_us": 82435.064, - "count_engine_med_us": 74124.0, - "exists_cold_us": 2337.567, - "exists_warm_med_us": 1188.54, - "exists_warm_p10_us": 1019.509, - "exists_warm_p90_us": 1511.73, - "exists_engine_med_us": 1406.812, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - }, - { - "id": "null_and_5", - "threads": 4, - "count": 2674492, - "exists": true, - "count_cold_us": 21277.003, - "count_warm_med_us": 17936.419, - "count_warm_p10_us": 17015.846, - "count_warm_p90_us": 19324.412, - "count_engine_med_us": 17825.636, - "exists_cold_us": 2237.576, - "exists_warm_med_us": 1060.461, - "exists_warm_p10_us": 978.708, - "exists_warm_p90_us": 1140.16, - "exists_engine_med_us": 1192.2, - "count_stats_folded": false, - "exists_stats_folded": false, - "trivial_query_wall_us": 241.87 - } - ] -} \ No newline at end of file +"n": 10000000, +"duckdb_version": "2.0.0", +"runs": 31, +"load": {"1": {"build_us": 5653755.113, "analyze_us": 943.46, "load_us": 5654698.573, "mem_bytes": 814474936}, "4": {"build_us": 4332828.166, "analyze_us": 613.072, "load_us": 4333441.238, "mem_bytes": 814474936}}, +"records": [ +{"id": "k1_tiny_single", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1502.927, "count_warm_med_us": 477.013, "count_warm_p10_us": 408.835, "count_warm_p90_us": 630.858, "count_engine_med_us": 592.148, "exists_cold_us": 1338.812, "exists_warm_med_us": 590.955, "exists_warm_p10_us": 482.909, "exists_warm_p90_us": 690.654, "exists_engine_med_us": 622.01, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k1_medium_single", "threads": 1, "count": 100002, "exists": true, "count_cold_us": 17806.969, "count_warm_med_us": 16065.49, "count_warm_p10_us": 15530.8, "count_warm_p90_us": 20597.148, "count_engine_med_us": 22895.954, "exists_cold_us": 2287.917, "exists_warm_med_us": 920.903, "exists_warm_p10_us": 897.547, "exists_warm_p90_us": 970.571, "exists_engine_med_us": 953.188, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k1_large_single", "threads": 1, "count": 5000008, "exists": true, "count_cold_us": 21972.435, "count_warm_med_us": 14681.996, "count_warm_p10_us": 14370.354, "count_warm_p90_us": 20998.677, "count_engine_med_us": 16553.427, "exists_cold_us": 2115.024, "exists_warm_med_us": 627.561, "exists_warm_p10_us": 579.828, "exists_warm_p90_us": 966.131, "exists_engine_med_us": 711.952, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_tiny_and", "threads": 1, "count": 0, "exists": false, "count_cold_us": 39107.699, "count_warm_med_us": 36607.801, "count_warm_p10_us": 35727.308, "count_warm_p90_us": 37243.996, "count_engine_med_us": 37059.917, "exists_cold_us": 38545.787, "exists_warm_med_us": 40659.084, "exists_warm_p10_us": 37146.254, "exists_warm_p90_us": 49803.645, "exists_engine_med_us": 38382.767, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_medium_and", "threads": 1, "count": 101386, "exists": true, "count_cold_us": 35388.754, "count_warm_med_us": 34347.86, "count_warm_p10_us": 32493.15, "count_warm_p90_us": 46666.538, "count_engine_med_us": 36076.56, "exists_cold_us": 1915.497, "exists_warm_med_us": 699.225, "exists_warm_p10_us": 668.549, "exists_warm_p90_us": 761.953, "exists_engine_med_us": 777.487, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_large_and", "threads": 1, "count": 4996187, "exists": true, "count_cold_us": 41949.634, "count_warm_med_us": 41119.455, "count_warm_p10_us": 39527.829, "count_warm_p90_us": 43056.729, "count_engine_med_us": 41982.082, "exists_cold_us": 1922.807, "exists_warm_med_us": 713.718, "exists_warm_p10_us": 655.19, "exists_warm_p90_us": 870.533, "exists_engine_med_us": 797.706, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1543.436, "count_warm_med_us": 539.027, "count_warm_p10_us": 465.898, "count_warm_p90_us": 627.315, "count_engine_med_us": 582.296, "exists_cold_us": 1491.669, "exists_warm_med_us": 606.528, "exists_warm_p10_us": 561.03, "exists_warm_p90_us": 660.887, "exists_engine_med_us": 693.028, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_medium_or", "threads": 1, "count": 100001, "exists": true, "count_cold_us": 65330.231, "count_warm_med_us": 66221.265, "count_warm_p10_us": 61354.836, "count_warm_p90_us": 81898.146, "count_engine_med_us": 65374.369, "exists_cold_us": 2907.079, "exists_warm_med_us": 1148.436, "exists_warm_p10_us": 1090.744, "exists_warm_p90_us": 1229.111, "exists_engine_med_us": 1195.573, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_large_or", "threads": 1, "count": 5006214, "exists": true, "count_cold_us": 197823.689, "count_warm_med_us": 192171.033, "count_warm_p10_us": 184787.064, "count_warm_p90_us": 214027.569, "count_engine_med_us": 191457.375, "exists_cold_us": 3055.179, "exists_warm_med_us": 812.988, "exists_warm_p10_us": 740.335, "exists_warm_p90_us": 1276.436, "exists_engine_med_us": 893.209, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_tiny_mixed", "threads": 1, "count": 0, "exists": false, "count_cold_us": 39844.837, "count_warm_med_us": 40149.951, "count_warm_p10_us": 37893.998, "count_warm_p90_us": 52291.964, "count_engine_med_us": 55077.566, "exists_cold_us": 55464.296, "exists_warm_med_us": 52672.705, "exists_warm_p10_us": 38049.641, "exists_warm_p90_us": 54798.037, "exists_engine_med_us": 39506.53, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_medium_mixed", "threads": 1, "count": 98184, "exists": true, "count_cold_us": 49169.464, "count_warm_med_us": 47956.362, "count_warm_p10_us": 46308.891, "count_warm_p90_us": 59247.109, "count_engine_med_us": 52098.581, "exists_cold_us": 2183.775, "exists_warm_med_us": 791.66, "exists_warm_p10_us": 741.61, "exists_warm_p90_us": 896.465, "exists_engine_med_us": 855.07, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k3_large_mixed", "threads": 1, "count": 4994319, "exists": true, "count_cold_us": 147057.985, "count_warm_med_us": 145146.481, "count_warm_p10_us": 139223.291, "count_warm_p90_us": 176244.875, "count_engine_med_us": 147578.576, "exists_cold_us": 2236.074, "exists_warm_med_us": 816.537, "exists_warm_p10_us": 764.745, "exists_warm_p90_us": 946.14, "exists_engine_med_us": 872.718, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_tiny_and", "threads": 1, "count": 470, "exists": true, "count_cold_us": 55956.83, "count_warm_med_us": 54096.707, "count_warm_p10_us": 52613.907, "count_warm_p90_us": 60750.264, "count_engine_med_us": 60818.107, "exists_cold_us": 3842.115, "exists_warm_med_us": 1617.39, "exists_warm_p10_us": 1284.12, "exists_warm_p90_us": 1742.286, "exists_engine_med_us": 1768.812, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_medium_and", "threads": 1, "count": 100924, "exists": true, "count_cold_us": 84760.756, "count_warm_med_us": 83866.331, "count_warm_p10_us": 78918.1, "count_warm_p90_us": 97287.874, "count_engine_med_us": 82392.971, "exists_cold_us": 2725.984, "exists_warm_med_us": 958.659, "exists_warm_p10_us": 903.8, "exists_warm_p90_us": 1021.921, "exists_engine_med_us": 998.406, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_large_and", "threads": 1, "count": 4981051, "exists": true, "count_cold_us": 108266.632, "count_warm_med_us": 108897.643, "count_warm_p10_us": 103072.351, "count_warm_p90_us": 143759.357, "count_engine_med_us": 106359.689, "exists_cold_us": 2578.549, "exists_warm_med_us": 946.59, "exists_warm_p10_us": 900.27, "exists_warm_p90_us": 1052.842, "exists_engine_med_us": 1035.345, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2263.95, "count_warm_med_us": 702.615, "count_warm_p10_us": 616.987, "count_warm_p90_us": 762.604, "count_engine_med_us": 944.155, "exists_cold_us": 2094.385, "exists_warm_med_us": 1262.405, "exists_warm_p10_us": 828.011, "exists_warm_p90_us": 1459.215, "exists_engine_med_us": 1247.973, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_medium_or", "threads": 1, "count": 99996, "exists": true, "count_cold_us": 198433.602, "count_warm_med_us": 173318.713, "count_warm_p10_us": 165066.428, "count_warm_p90_us": 210973.249, "count_engine_med_us": 171537.306, "exists_cold_us": 2952.271, "exists_warm_med_us": 957.676, "exists_warm_p10_us": 897.092, "exists_warm_p90_us": 1081.243, "exists_engine_med_us": 1085.393, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_large_or", "threads": 1, "count": 4988280, "exists": true, "count_cold_us": 293438.828, "count_warm_med_us": 310465.768, "count_warm_p10_us": 287628.682, "count_warm_p90_us": 357198.362, "count_engine_med_us": 300716.615, "exists_cold_us": 2625.46, "exists_warm_med_us": 995.7, "exists_warm_p10_us": 954.724, "exists_warm_p90_us": 1119.895, "exists_engine_med_us": 1097.319, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_tiny_mixed", "threads": 1, "count": 935, "exists": true, "count_cold_us": 156531.439, "count_warm_med_us": 150918.097, "count_warm_p10_us": 139435.223, "count_warm_p90_us": 171941.7, "count_engine_med_us": 146203.897, "exists_cold_us": 4109.031, "exists_warm_med_us": 1770.589, "exists_warm_p10_us": 1685.204, "exists_warm_p90_us": 2006.644, "exists_engine_med_us": 1839.301, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_medium_mixed", "threads": 1, "count": 99047, "exists": true, "count_cold_us": 259289.199, "count_warm_med_us": 263585.041, "count_warm_p10_us": 252283.056, "count_warm_p90_us": 278934.206, "count_engine_med_us": 291324.837, "exists_cold_us": 2864.733, "exists_warm_med_us": 1106.107, "exists_warm_p10_us": 999.16, "exists_warm_p90_us": 1196.28, "exists_engine_med_us": 1126.869, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k8_large_mixed", "threads": 1, "count": 5001665, "exists": true, "count_cold_us": 733782.904, "count_warm_med_us": 717301.74, "count_warm_p10_us": 676493.995, "count_warm_p90_us": 764098.636, "count_engine_med_us": 687487.765, "exists_cold_us": 3179.222, "exists_warm_med_us": 1228.772, "exists_warm_p10_us": 1149.402, "exists_warm_p90_us": 1410.354, "exists_engine_med_us": 1472.383, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_tiny_and", "threads": 1, "count": 467, "exists": true, "count_cold_us": 161678.105, "count_warm_med_us": 142113.741, "count_warm_p10_us": 138068.272, "count_warm_p90_us": 159330.942, "count_engine_med_us": 145205.464, "exists_cold_us": 6489.25, "exists_warm_med_us": 2075.984, "exists_warm_p10_us": 1838.617, "exists_warm_p90_us": 2591.809, "exists_engine_med_us": 2130.671, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_medium_and", "threads": 1, "count": 97561, "exists": true, "count_cold_us": 158241.606, "count_warm_med_us": 159095.187, "count_warm_p10_us": 152453.355, "count_warm_p90_us": 179033.291, "count_engine_med_us": 169152.232, "exists_cold_us": 4727.457, "exists_warm_med_us": 1784.759, "exists_warm_p10_us": 1326.998, "exists_warm_p90_us": 1926.197, "exists_engine_med_us": 1979.829, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_large_and", "threads": 1, "count": 4998174, "exists": true, "count_cold_us": 224923.666, "count_warm_med_us": 212825.209, "count_warm_p10_us": 200323.212, "count_warm_p90_us": 243018.876, "count_engine_med_us": 222076.112, "exists_cold_us": 3894.09, "exists_warm_med_us": 1341.833, "exists_warm_p10_us": 1261.508, "exists_warm_p90_us": 1489.43, "exists_engine_med_us": 1444.638, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2441.139, "count_warm_med_us": 1041.07, "count_warm_p10_us": 861.031, "count_warm_p90_us": 1580.251, "count_engine_med_us": 932.302, "exists_cold_us": 3979.77, "exists_warm_med_us": 1473.901, "exists_warm_p10_us": 998.348, "exists_warm_p90_us": 1587.639, "exists_engine_med_us": 1048.242, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_medium_or", "threads": 1, "count": 100002, "exists": true, "count_cold_us": 218725.526, "count_warm_med_us": 225787.854, "count_warm_p10_us": 217506.411, "count_warm_p90_us": 239055.304, "count_engine_med_us": 239839.676, "exists_cold_us": 4341.183, "exists_warm_med_us": 1347.261, "exists_warm_p10_us": 1285.183, "exists_warm_p90_us": 1574.028, "exists_engine_med_us": 1366.944, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_large_or", "threads": 1, "count": 5051202, "exists": true, "count_cold_us": 470453.96, "count_warm_med_us": 478393.135, "count_warm_p10_us": 459015.548, "count_warm_p90_us": 522631.372, "count_engine_med_us": 542011.279, "exists_cold_us": 3415.555, "exists_warm_med_us": 1348.977, "exists_warm_p10_us": 1297.594, "exists_warm_p90_us": 1419.292, "exists_engine_med_us": 1404.311, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_tiny_mixed", "threads": 1, "count": 467, "exists": true, "count_cold_us": 126345.808, "count_warm_med_us": 136162.45, "count_warm_p10_us": 124953.163, "count_warm_p90_us": 153836.004, "count_engine_med_us": 132247.891, "exists_cold_us": 4726.517, "exists_warm_med_us": 2176.461, "exists_warm_p10_us": 2072.42, "exists_warm_p90_us": 2508.502, "exists_engine_med_us": 2261.205, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_medium_mixed", "threads": 1, "count": 100925, "exists": true, "count_cold_us": 278162.835, "count_warm_med_us": 293817.992, "count_warm_p10_us": 268319.422, "count_warm_p90_us": 334273.536, "count_engine_med_us": 298033.857, "exists_cold_us": 3776.0, "exists_warm_med_us": 1420.571, "exists_warm_p10_us": 1337.46, "exists_warm_p90_us": 1554.073, "exists_engine_med_us": 1634.848, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k17_large_mixed", "threads": 1, "count": 4982809, "exists": true, "count_cold_us": 1245376.339, "count_warm_med_us": 1382934.443, "count_warm_p10_us": 1296478.545, "count_warm_p90_us": 1458620.134, "count_engine_med_us": 1401588.613, "exists_cold_us": 5825.652, "exists_warm_med_us": 2389.558, "exists_warm_p10_us": 2230.868, "exists_warm_p90_us": 2581.573, "exists_engine_med_us": 2381.286, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_tiny_and", "threads": 1, "count": 472, "exists": true, "count_cold_us": 185195.037, "count_warm_med_us": 147036.367, "count_warm_p10_us": 137224.897, "count_warm_p90_us": 177397.347, "count_engine_med_us": 137556.344, "exists_cold_us": 4522.701, "exists_warm_med_us": 1684.933, "exists_warm_p10_us": 1613.6, "exists_warm_p90_us": 1955.555, "exists_engine_med_us": 2038.064, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_medium_and", "threads": 1, "count": 99057, "exists": true, "count_cold_us": 189360.304, "count_warm_med_us": 188568.633, "count_warm_p10_us": 178043.045, "count_warm_p90_us": 207406.084, "count_engine_med_us": 187580.207, "exists_cold_us": 4010.641, "exists_warm_med_us": 1508.858, "exists_warm_p10_us": 1401.005, "exists_warm_p90_us": 1594.974, "exists_engine_med_us": 1675.06, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_large_and", "threads": 1, "count": 5020727, "exists": true, "count_cold_us": 257003.716, "count_warm_med_us": 248329.805, "count_warm_p10_us": 240150.937, "count_warm_p90_us": 273724.578, "count_engine_med_us": 243513.328, "exists_cold_us": 4200.436, "exists_warm_med_us": 1504.527, "exists_warm_p10_us": 1427.48, "exists_warm_p90_us": 1630.253, "exists_engine_med_us": 1775.404, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2913.745, "count_warm_med_us": 1002.399, "count_warm_p10_us": 961.082, "count_warm_p90_us": 1046.008, "count_engine_med_us": 1046.244, "exists_cold_us": 2984.651, "exists_warm_med_us": 1129.842, "exists_warm_p10_us": 1074.763, "exists_warm_p90_us": 1424.99, "exists_engine_med_us": 1119.056, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_medium_or", "threads": 1, "count": 99996, "exists": true, "count_cold_us": 255567.173, "count_warm_med_us": 227149.938, "count_warm_p10_us": 214776.252, "count_warm_p90_us": 254285.605, "count_engine_med_us": 239568.307, "exists_cold_us": 4061.559, "exists_warm_med_us": 1463.55, "exists_warm_p10_us": 1368.286, "exists_warm_p90_us": 1542.053, "exists_engine_med_us": 1592.923, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_large_or", "threads": 1, "count": 4956413, "exists": true, "count_cold_us": 597798.27, "count_warm_med_us": 572694.67, "count_warm_p10_us": 542379.5, "count_warm_p90_us": 619256.523, "count_engine_med_us": 558926.018, "exists_cold_us": 4702.7, "exists_warm_med_us": 1600.601, "exists_warm_p10_us": 1467.353, "exists_warm_p90_us": 1804.452, "exists_engine_med_us": 1799.861, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_tiny_mixed", "threads": 1, "count": 470, "exists": true, "count_cold_us": 617623.369, "count_warm_med_us": 657116.085, "count_warm_p10_us": 580074.094, "count_warm_p90_us": 864066.025, "count_engine_med_us": 567573.711, "exists_cold_us": 4719.75, "exists_warm_med_us": 1916.48, "exists_warm_p10_us": 1847.831, "exists_warm_p90_us": 2013.212, "exists_engine_med_us": 2046.632, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_medium_mixed", "threads": 1, "count": 99512, "exists": true, "count_cold_us": 982435.042, "count_warm_med_us": 932183.176, "count_warm_p10_us": 813157.076, "count_warm_p90_us": 1032239.762, "count_engine_med_us": 981755.737, "exists_cold_us": 4763.673, "exists_warm_med_us": 1784.214, "exists_warm_p10_us": 1681.136, "exists_warm_p90_us": 1973.465, "exists_engine_med_us": 1940.677, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k24_large_mixed", "threads": 1, "count": 5004671, "exists": true, "count_cold_us": 2214063.598, "count_warm_med_us": 2090124.495, "count_warm_p10_us": 1915360.156, "count_warm_p90_us": 2191581.777, "count_engine_med_us": 1985161.07, "exists_cold_us": 4817.631, "exists_warm_med_us": 2006.542, "exists_warm_p10_us": 1922.813, "exists_warm_p90_us": 2198.233, "exists_engine_med_us": 2103.571, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_one_everything", "threads": 1, "count": 100002, "exists": true, "count_cold_us": 15811.984, "count_warm_med_us": 14886.763, "count_warm_p10_us": 14636.467, "count_warm_p90_us": 16135.664, "count_engine_med_us": 24485.818, "exists_cold_us": 2685.022, "exists_warm_med_us": 972.847, "exists_warm_p10_us": 825.463, "exists_warm_p90_us": 1045.69, "exists_engine_med_us": 814.382, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_one_nothing", "threads": 1, "count": 10002, "exists": true, "count_cold_us": 26575.487, "count_warm_med_us": 25638.508, "count_warm_p10_us": 25230.058, "count_warm_p90_us": 31352.376, "count_engine_med_us": 29261.356, "exists_cold_us": 2552.21, "exists_warm_med_us": 1090.365, "exists_warm_p10_us": 1037.793, "exists_warm_p90_us": 1149.761, "exists_engine_med_us": 1089.097, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_or_one_everything", "threads": 1, "count": 10000000, "exists": true, "count_cold_us": 2209.321, "count_warm_med_us": 847.404, "count_warm_p10_us": 799.116, "count_warm_p90_us": 922.304, "count_engine_med_us": null, "exists_cold_us": 2233.189, "exists_warm_med_us": 922.901, "exists_warm_p10_us": 873.196, "exists_warm_p90_us": 1000.03, "exists_engine_med_us": 946.774, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_or_one_nothing", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 30291.237, "count_warm_med_us": 22805.111, "count_warm_p10_us": 20120.688, "count_warm_p90_us": 28261.278, "count_engine_med_us": 23057.298, "exists_cold_us": 1684.895, "exists_warm_med_us": 713.417, "exists_warm_p10_us": 649.133, "exists_warm_p90_us": 824.781, "exists_engine_med_us": 774.878, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_16_nonselective", "threads": 1, "count": 8271472, "exists": true, "count_cold_us": 227110.399, "count_warm_med_us": 217536.641, "count_warm_p10_us": 203810.381, "count_warm_p90_us": 263775.478, "count_engine_med_us": 234985.884, "exists_cold_us": 3606.988, "exists_warm_med_us": 1441.151, "exists_warm_p10_us": 1229.212, "exists_warm_p90_us": 1933.781, "exists_engine_med_us": 1426.411, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_16_collapse_one", "threads": 1, "count": 472, "exists": true, "count_cold_us": 67674.311, "count_warm_med_us": 64304.967, "count_warm_p10_us": 60969.301, "count_warm_p90_us": 71367.624, "count_engine_med_us": 64808.0, "exists_cold_us": 3577.563, "exists_warm_med_us": 1413.118, "exists_warm_p10_us": 1365.213, "exists_warm_p90_us": 1566.712, "exists_engine_med_us": 1538.06, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_correlated_2", "threads": 1, "count": 5000004, "exists": true, "count_cold_us": 27470.857, "count_warm_med_us": 28390.526, "count_warm_p10_us": 27325.025, "count_warm_p90_us": 32607.226, "count_engine_med_us": 30240.064, "exists_cold_us": 1755.252, "exists_warm_med_us": 667.976, "exists_warm_p10_us": 631.758, "exists_warm_p90_us": 783.548, "exists_engine_med_us": 724.291, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_correlated_5", "threads": 1, "count": 4900007, "exists": true, "count_cold_us": 30566.568, "count_warm_med_us": 31018.661, "count_warm_p10_us": 28904.343, "count_warm_p90_us": 37355.472, "count_engine_med_us": 32148.319, "exists_cold_us": 2982.513, "exists_warm_med_us": 782.315, "exists_warm_p10_us": 698.56, "exists_warm_p90_us": 1215.937, "exists_engine_med_us": 860.639, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_contradictory_2", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1831.854, "count_warm_med_us": 727.764, "count_warm_p10_us": 676.574, "count_warm_p90_us": 817.386, "count_engine_med_us": 683.205, "exists_cold_us": 1889.685, "exists_warm_med_us": 856.112, "exists_warm_p10_us": 818.926, "exists_warm_p90_us": 932.513, "exists_engine_med_us": 823.408, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "adv_contradictory_17", "threads": 1, "count": 0, "exists": false, "count_cold_us": 3168.312, "count_warm_med_us": 710.952, "count_warm_p10_us": 650.282, "count_warm_p90_us": 1139.29, "count_engine_med_us": 789.93, "exists_cold_us": 2443.762, "exists_warm_med_us": 821.251, "exists_warm_p10_us": 753.121, "exists_warm_p90_us": 1070.011, "exists_engine_med_us": 834.81, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "null_and", "threads": 1, "count": 999196, "exists": true, "count_cold_us": 35657.177, "count_warm_med_us": 36063.316, "count_warm_p10_us": 30961.02, "count_warm_p90_us": 45946.56, "count_engine_med_us": 36621.35, "exists_cold_us": 2789.272, "exists_warm_med_us": 1035.524, "exists_warm_p10_us": 1000.516, "exists_warm_p90_us": 1102.593, "exists_engine_med_us": 734.41, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "null_not", "threads": 1, "count": 4499990, "exists": true, "count_cold_us": 21289.359, "count_warm_med_us": 20619.505, "count_warm_p10_us": 19062.566, "count_warm_p90_us": 27337.407, "count_engine_med_us": 20156.17, "exists_cold_us": 1931.649, "exists_warm_med_us": 775.507, "exists_warm_p10_us": 671.172, "exists_warm_p90_us": 1011.106, "exists_engine_med_us": 918.7, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "null_or", "threads": 1, "count": 1900011, "exists": true, "count_cold_us": 91765.326, "count_warm_med_us": 99873.386, "count_warm_p10_us": 92502.283, "count_warm_p90_us": 125110.66, "count_engine_med_us": 132234.732, "exists_cold_us": 2787.508, "exists_warm_med_us": 1117.043, "exists_warm_p10_us": 1064.47, "exists_warm_p90_us": 1181.74, "exists_engine_med_us": 1165.213, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "null_not_and", "threads": 1, "count": 8500703, "exists": true, "count_cold_us": 268779.912, "count_warm_med_us": 268063.025, "count_warm_p10_us": 253638.211, "count_warm_p90_us": 292741.012, "count_engine_med_us": 316992.886, "exists_cold_us": 2140.296, "exists_warm_med_us": 787.313, "exists_warm_p10_us": 763.485, "exists_warm_p90_us": 855.888, "exists_engine_med_us": 883.385, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "null_and_5", "threads": 1, "count": 2674492, "exists": true, "count_cold_us": 60103.157, "count_warm_med_us": 70334.551, "count_warm_p10_us": 59095.509, "count_warm_p90_us": 88203.946, "count_engine_med_us": 73451.034, "exists_cold_us": 2260.056, "exists_warm_med_us": 814.59, "exists_warm_p10_us": 788.315, "exists_warm_p90_us": 887.763, "exists_engine_med_us": 947.001, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, +{"id": "k1_tiny_single", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1871.647, "count_warm_med_us": 749.223, "count_warm_p10_us": 678.621, "count_warm_p90_us": 873.985, "count_engine_med_us": 608.702, "exists_cold_us": 1680.336, "exists_warm_med_us": 740.263, "exists_warm_p10_us": 646.151, "exists_warm_p90_us": 856.733, "exists_engine_med_us": 851.195, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k1_medium_single", "threads": 4, "count": 100002, "exists": true, "count_cold_us": 6434.684, "count_warm_med_us": 4115.561, "count_warm_p10_us": 3877.721, "count_warm_p90_us": 5311.699, "count_engine_med_us": 4174.612, "exists_cold_us": 1729.577, "exists_warm_med_us": 878.051, "exists_warm_p10_us": 793.444, "exists_warm_p90_us": 1077.537, "exists_engine_med_us": 963.92, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k1_large_single", "threads": 4, "count": 5000008, "exists": true, "count_cold_us": 5776.252, "count_warm_med_us": 4483.299, "count_warm_p10_us": 4219.737, "count_warm_p90_us": 4782.79, "count_engine_med_us": 4355.837, "exists_cold_us": 1907.953, "exists_warm_med_us": 913.845, "exists_warm_p10_us": 820.975, "exists_warm_p90_us": 961.249, "exists_engine_med_us": 957.333, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_tiny_and", "threads": 4, "count": 0, "exists": false, "count_cold_us": 15528.342, "count_warm_med_us": 10953.751, "count_warm_p10_us": 10139.613, "count_warm_p90_us": 11809.298, "count_engine_med_us": 10635.067, "exists_cold_us": 11377.072, "exists_warm_med_us": 10196.956, "exists_warm_p10_us": 9703.267, "exists_warm_p90_us": 11510.52, "exists_engine_med_us": 10711.576, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_medium_and", "threads": 4, "count": 101386, "exists": true, "count_cold_us": 11744.137, "count_warm_med_us": 9979.637, "count_warm_p10_us": 9089.253, "count_warm_p90_us": 11851.182, "count_engine_med_us": 10728.556, "exists_cold_us": 2050.705, "exists_warm_med_us": 1034.455, "exists_warm_p10_us": 964.839, "exists_warm_p90_us": 1126.23, "exists_engine_med_us": 1122.253, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_large_and", "threads": 4, "count": 4996187, "exists": true, "count_cold_us": 14624.606, "count_warm_med_us": 12053.086, "count_warm_p10_us": 11507.726, "count_warm_p90_us": 13913.602, "count_engine_med_us": 12181.618, "exists_cold_us": 1895.561, "exists_warm_med_us": 1018.205, "exists_warm_p10_us": 965.207, "exists_warm_p90_us": 1089.137, "exists_engine_med_us": 1195.977, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1611.062, "count_warm_med_us": 648.233, "count_warm_p10_us": 607.604, "count_warm_p90_us": 687.717, "count_engine_med_us": 678.099, "exists_cold_us": 1741.133, "exists_warm_med_us": 750.087, "exists_warm_p10_us": 691.034, "exists_warm_p90_us": 861.979, "exists_engine_med_us": 785.754, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_medium_or", "threads": 4, "count": 100001, "exists": true, "count_cold_us": 21176.712, "count_warm_med_us": 18505.289, "count_warm_p10_us": 17818.317, "count_warm_p90_us": 20038.204, "count_engine_med_us": 18795.085, "exists_cold_us": 2297.622, "exists_warm_med_us": 1011.684, "exists_warm_p10_us": 958.979, "exists_warm_p90_us": 1105.431, "exists_engine_med_us": 1167.361, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_large_or", "threads": 4, "count": 5006214, "exists": true, "count_cold_us": 56874.199, "count_warm_med_us": 50145.192, "count_warm_p10_us": 48939.839, "count_warm_p90_us": 53301.9, "count_engine_med_us": 54685.31, "exists_cold_us": 2441.51, "exists_warm_med_us": 1035.585, "exists_warm_p10_us": 925.192, "exists_warm_p90_us": 1156.646, "exists_engine_med_us": 1064.823, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_tiny_mixed", "threads": 4, "count": 0, "exists": false, "count_cold_us": 12750.734, "count_warm_med_us": 10858.104, "count_warm_p10_us": 10216.734, "count_warm_p90_us": 12540.32, "count_engine_med_us": 10898.165, "exists_cold_us": 13297.504, "exists_warm_med_us": 11380.755, "exists_warm_p10_us": 9960.307, "exists_warm_p90_us": 12350.923, "exists_engine_med_us": 12286.24, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_medium_mixed", "threads": 4, "count": 98184, "exists": true, "count_cold_us": 15832.473, "count_warm_med_us": 13830.31, "count_warm_p10_us": 13214.573, "count_warm_p90_us": 14880.945, "count_engine_med_us": 12542.499, "exists_cold_us": 1980.489, "exists_warm_med_us": 976.191, "exists_warm_p10_us": 909.123, "exists_warm_p90_us": 1121.732, "exists_engine_med_us": 1084.871, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k3_large_mixed", "threads": 4, "count": 4994319, "exists": true, "count_cold_us": 38519.307, "count_warm_med_us": 37466.714, "count_warm_p10_us": 36130.718, "count_warm_p90_us": 41631.505, "count_engine_med_us": 40296.914, "exists_cold_us": 2164.565, "exists_warm_med_us": 1052.128, "exists_warm_p10_us": 979.32, "exists_warm_p90_us": 1187.505, "exists_engine_med_us": 1219.486, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_tiny_and", "threads": 4, "count": 470, "exists": true, "count_cold_us": 20922.166, "count_warm_med_us": 16602.223, "count_warm_p10_us": 15278.63, "count_warm_p90_us": 17679.785, "count_engine_med_us": 19904.764, "exists_cold_us": 4028.688, "exists_warm_med_us": 1921.746, "exists_warm_p10_us": 1721.622, "exists_warm_p90_us": 2180.01, "exists_engine_med_us": 1959.764, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_medium_and", "threads": 4, "count": 100924, "exists": true, "count_cold_us": 26853.624, "count_warm_med_us": 26988.835, "count_warm_p10_us": 24780.696, "count_warm_p90_us": 33097.631, "count_engine_med_us": 24283.361, "exists_cold_us": 2554.211, "exists_warm_med_us": 1249.654, "exists_warm_p10_us": 1203.72, "exists_warm_p90_us": 1349.364, "exists_engine_med_us": 1425.402, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_large_and", "threads": 4, "count": 4981051, "exists": true, "count_cold_us": 31066.578, "count_warm_med_us": 30166.363, "count_warm_p10_us": 27901.775, "count_warm_p90_us": 32135.999, "count_engine_med_us": 29397.203, "exists_cold_us": 5246.5, "exists_warm_med_us": 1241.485, "exists_warm_p10_us": 1156.362, "exists_warm_p90_us": 1304.74, "exists_engine_med_us": 1292.917, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1965.874, "count_warm_med_us": 798.097, "count_warm_p10_us": 739.319, "count_warm_p90_us": 842.183, "count_engine_med_us": 851.762, "exists_cold_us": 1904.567, "exists_warm_med_us": 1022.548, "exists_warm_p10_us": 887.954, "exists_warm_p90_us": 1334.444, "exists_engine_med_us": 1231.076, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_medium_or", "threads": 4, "count": 99996, "exists": true, "count_cold_us": 52176.701, "count_warm_med_us": 51723.336, "count_warm_p10_us": 45960.011, "count_warm_p90_us": 58742.962, "count_engine_med_us": 46572.988, "exists_cold_us": 3721.637, "exists_warm_med_us": 1226.379, "exists_warm_p10_us": 1157.127, "exists_warm_p90_us": 1306.21, "exists_engine_med_us": 1403.546, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_large_or", "threads": 4, "count": 4988280, "exists": true, "count_cold_us": 77316.18, "count_warm_med_us": 84262.814, "count_warm_p10_us": 78170.756, "count_warm_p90_us": 93063.477, "count_engine_med_us": 89431.826, "exists_cold_us": 3065.98, "exists_warm_med_us": 1399.589, "exists_warm_p10_us": 1296.596, "exists_warm_p90_us": 1530.809, "exists_engine_med_us": 1558.938, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_tiny_mixed", "threads": 4, "count": 935, "exists": true, "count_cold_us": 44939.493, "count_warm_med_us": 43857.059, "count_warm_p10_us": 38495.913, "count_warm_p90_us": 48788.968, "count_engine_med_us": 43639.95, "exists_cold_us": 12641.156, "exists_warm_med_us": 2757.178, "exists_warm_p10_us": 2507.268, "exists_warm_p90_us": 3815.503, "exists_engine_med_us": 3252.194, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_medium_mixed", "threads": 4, "count": 99047, "exists": true, "count_cold_us": 74151.891, "count_warm_med_us": 78663.745, "count_warm_p10_us": 72928.343, "count_warm_p90_us": 84975.83, "count_engine_med_us": 87577.482, "exists_cold_us": 3970.425, "exists_warm_med_us": 1337.456, "exists_warm_p10_us": 1244.012, "exists_warm_p90_us": 1622.865, "exists_engine_med_us": 1461.696, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k8_large_mixed", "threads": 4, "count": 5001665, "exists": true, "count_cold_us": 186987.292, "count_warm_med_us": 187067.914, "count_warm_p10_us": 179365.609, "count_warm_p90_us": 203567.056, "count_engine_med_us": 192926.021, "exists_cold_us": 2976.847, "exists_warm_med_us": 1470.576, "exists_warm_p10_us": 1337.175, "exists_warm_p90_us": 1620.904, "exists_engine_med_us": 1572.57, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_tiny_and", "threads": 4, "count": 467, "exists": true, "count_cold_us": 46080.731, "count_warm_med_us": 41400.91, "count_warm_p10_us": 37611.117, "count_warm_p90_us": 44760.749, "count_engine_med_us": 37266.567, "exists_cold_us": 4689.946, "exists_warm_med_us": 2457.756, "exists_warm_p10_us": 2359.79, "exists_warm_p90_us": 2885.134, "exists_engine_med_us": 2901.454, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_medium_and", "threads": 4, "count": 97561, "exists": true, "count_cold_us": 46896.638, "count_warm_med_us": 43895.281, "count_warm_p10_us": 41964.84, "count_warm_p90_us": 47762.963, "count_engine_med_us": 45147.555, "exists_cold_us": 3833.062, "exists_warm_med_us": 1537.961, "exists_warm_p10_us": 1459.985, "exists_warm_p90_us": 1911.187, "exists_engine_med_us": 1864.88, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_large_and", "threads": 4, "count": 4998174, "exists": true, "count_cold_us": 66718.405, "count_warm_med_us": 57312.287, "count_warm_p10_us": 54038.012, "count_warm_p90_us": 65407.923, "count_engine_med_us": 55350.143, "exists_cold_us": 3548.841, "exists_warm_med_us": 1651.631, "exists_warm_p10_us": 1558.949, "exists_warm_p90_us": 1980.82, "exists_engine_med_us": 1882.948, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 3615.768, "count_warm_med_us": 1239.057, "count_warm_p10_us": 969.255, "count_warm_p90_us": 1518.573, "count_engine_med_us": 1011.02, "exists_cold_us": 6553.592, "exists_warm_med_us": 1299.219, "exists_warm_p10_us": 1053.059, "exists_warm_p90_us": 1496.654, "exists_engine_med_us": 1162.551, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_medium_or", "threads": 4, "count": 100002, "exists": true, "count_cold_us": 85288.456, "count_warm_med_us": 70731.677, "count_warm_p10_us": 60546.573, "count_warm_p90_us": 77508.222, "count_engine_med_us": 71276.998, "exists_cold_us": 3576.821, "exists_warm_med_us": 1534.538, "exists_warm_p10_us": 1477.204, "exists_warm_p90_us": 1702.162, "exists_engine_med_us": 1700.985, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_large_or", "threads": 4, "count": 5051202, "exists": true, "count_cold_us": 134673.595, "count_warm_med_us": 132258.515, "count_warm_p10_us": 121620.182, "count_warm_p90_us": 144933.423, "count_engine_med_us": 128086.91, "exists_cold_us": 4738.333, "exists_warm_med_us": 1600.48, "exists_warm_p10_us": 1472.364, "exists_warm_p90_us": 1886.283, "exists_engine_med_us": 1739.859, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_tiny_mixed", "threads": 4, "count": 467, "exists": true, "count_cold_us": 46142.743, "count_warm_med_us": 37984.382, "count_warm_p10_us": 36448.702, "count_warm_p90_us": 42364.04, "count_engine_med_us": 42628.101, "exists_cold_us": 5223.436, "exists_warm_med_us": 3366.925, "exists_warm_p10_us": 2872.097, "exists_warm_p90_us": 3782.413, "exists_engine_med_us": 3183.765, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_medium_mixed", "threads": 4, "count": 100925, "exists": true, "count_cold_us": 102069.82, "count_warm_med_us": 82346.786, "count_warm_p10_us": 76204.43, "count_warm_p90_us": 96357.157, "count_engine_med_us": 85098.49, "exists_cold_us": 4511.697, "exists_warm_med_us": 1813.522, "exists_warm_p10_us": 1659.229, "exists_warm_p90_us": 2054.266, "exists_engine_med_us": 1811.839, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k17_large_mixed", "threads": 4, "count": 4982809, "exists": true, "count_cold_us": 386468.494, "count_warm_med_us": 363912.099, "count_warm_p10_us": 346427.768, "count_warm_p90_us": 395204.582, "count_engine_med_us": 367205.728, "exists_cold_us": 4495.797, "exists_warm_med_us": 2557.799, "exists_warm_p10_us": 2317.096, "exists_warm_p90_us": 2794.218, "exists_engine_med_us": 2730.663, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_tiny_and", "threads": 4, "count": 472, "exists": true, "count_cold_us": 44860.351, "count_warm_med_us": 42430.727, "count_warm_p10_us": 37389.26, "count_warm_p90_us": 52364.82, "count_engine_med_us": 53442.469, "exists_cold_us": 5692.541, "exists_warm_med_us": 2717.197, "exists_warm_p10_us": 2406.995, "exists_warm_p90_us": 3022.516, "exists_engine_med_us": 3438.811, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_medium_and", "threads": 4, "count": 99057, "exists": true, "count_cold_us": 88182.938, "count_warm_med_us": 55181.249, "count_warm_p10_us": 49571.319, "count_warm_p90_us": 61915.714, "count_engine_med_us": 65205.926, "exists_cold_us": 6411.247, "exists_warm_med_us": 2579.024, "exists_warm_p10_us": 2428.74, "exists_warm_p90_us": 2775.042, "exists_engine_med_us": 2760.369, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_large_and", "threads": 4, "count": 5020727, "exists": true, "count_cold_us": 77131.727, "count_warm_med_us": 68975.016, "count_warm_p10_us": 62146.114, "count_warm_p90_us": 76479.141, "count_engine_med_us": 69978.948, "exists_cold_us": 7802.982, "exists_warm_med_us": 2407.785, "exists_warm_p10_us": 2222.749, "exists_warm_p90_us": 2882.511, "exists_engine_med_us": 2813.396, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 4190.414, "count_warm_med_us": 1637.844, "count_warm_p10_us": 1510.91, "count_warm_p90_us": 1732.511, "count_engine_med_us": 1171.044, "exists_cold_us": 4118.304, "exists_warm_med_us": 1724.177, "exists_warm_p10_us": 1652.152, "exists_warm_p90_us": 1876.765, "exists_engine_med_us": 1826.982, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_medium_or", "threads": 4, "count": 99996, "exists": true, "count_cold_us": 80694.631, "count_warm_med_us": 88748.34, "count_warm_p10_us": 68572.613, "count_warm_p90_us": 110115.158, "count_engine_med_us": 104740.6, "exists_cold_us": 5958.114, "exists_warm_med_us": 3027.837, "exists_warm_p10_us": 2210.423, "exists_warm_p90_us": 3368.555, "exists_engine_med_us": 3568.398, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_large_or", "threads": 4, "count": 4956413, "exists": true, "count_cold_us": 228291.138, "count_warm_med_us": 215605.73, "count_warm_p10_us": 197897.459, "count_warm_p90_us": 253296.758, "count_engine_med_us": 212426.936, "exists_cold_us": 7624.735, "exists_warm_med_us": 3283.849, "exists_warm_p10_us": 3100.935, "exists_warm_p90_us": 3719.634, "exists_engine_med_us": 4198.876, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_tiny_mixed", "threads": 4, "count": 470, "exists": true, "count_cold_us": 311491.482, "count_warm_med_us": 183991.036, "count_warm_p10_us": 170701.073, "count_warm_p90_us": 263677.072, "count_engine_med_us": 179896.046, "exists_cold_us": 11045.631, "exists_warm_med_us": 7625.615, "exists_warm_p10_us": 7096.427, "exists_warm_p90_us": 8584.633, "exists_engine_med_us": 7770.666, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_medium_mixed", "threads": 4, "count": 99512, "exists": true, "count_cold_us": 280559.084, "count_warm_med_us": 268751.004, "count_warm_p10_us": 257072.619, "count_warm_p90_us": 294069.621, "count_engine_med_us": 291474.061, "exists_cold_us": 4823.269, "exists_warm_med_us": 2620.977, "exists_warm_p10_us": 2231.001, "exists_warm_p90_us": 2968.209, "exists_engine_med_us": 2362.137, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "k24_large_mixed", "threads": 4, "count": 5004671, "exists": true, "count_cold_us": 524591.464, "count_warm_med_us": 556772.81, "count_warm_p10_us": 515385.017, "count_warm_p90_us": 590382.956, "count_engine_med_us": 516854.479, "exists_cold_us": 5390.823, "exists_warm_med_us": 2286.858, "exists_warm_p10_us": 2102.162, "exists_warm_p90_us": 2884.733, "exists_engine_med_us": 3014.98, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_one_everything", "threads": 4, "count": 100002, "exists": true, "count_cold_us": 15176.351, "count_warm_med_us": 3725.42, "count_warm_p10_us": 3511.534, "count_warm_p90_us": 6466.661, "count_engine_med_us": 4034.868, "exists_cold_us": 2410.407, "exists_warm_med_us": 901.794, "exists_warm_p10_us": 849.491, "exists_warm_p90_us": 1008.182, "exists_engine_med_us": 990.213, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_one_nothing", "threads": 4, "count": 10002, "exists": true, "count_cold_us": 9038.928, "count_warm_med_us": 7062.048, "count_warm_p10_us": 6572.049, "count_warm_p90_us": 7702.46, "count_engine_med_us": 7261.472, "exists_cold_us": 1954.767, "exists_warm_med_us": 1009.68, "exists_warm_p10_us": 903.306, "exists_warm_p90_us": 1102.241, "exists_engine_med_us": 1020.187, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_or_one_everything", "threads": 4, "count": 10000000, "exists": true, "count_cold_us": 1629.553, "count_warm_med_us": 633.246, "count_warm_p10_us": 580.365, "count_warm_p90_us": 685.163, "count_engine_med_us": null, "exists_cold_us": 1640.778, "exists_warm_med_us": 771.384, "exists_warm_p10_us": 732.822, "exists_warm_p90_us": 828.935, "exists_engine_med_us": 911.268, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_or_one_nothing", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 7254.88, "count_warm_med_us": 5286.979, "count_warm_p10_us": 4705.961, "count_warm_p90_us": 6077.722, "count_engine_med_us": 5569.257, "exists_cold_us": 1851.471, "exists_warm_med_us": 916.422, "exists_warm_p10_us": 868.081, "exists_warm_p90_us": 992.307, "exists_engine_med_us": 1063.324, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_16_nonselective", "threads": 4, "count": 8271472, "exists": true, "count_cold_us": 59025.753, "count_warm_med_us": 57095.387, "count_warm_p10_us": 52851.272, "count_warm_p90_us": 69444.507, "count_engine_med_us": 59265.863, "exists_cold_us": 3625.008, "exists_warm_med_us": 1649.145, "exists_warm_p10_us": 1525.951, "exists_warm_p90_us": 1932.595, "exists_engine_med_us": 1759.583, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_16_collapse_one", "threads": 4, "count": 472, "exists": true, "count_cold_us": 21144.68, "count_warm_med_us": 18712.334, "count_warm_p10_us": 17691.2, "count_warm_p90_us": 21910.028, "count_engine_med_us": 19949.109, "exists_cold_us": 5055.78, "exists_warm_med_us": 2643.064, "exists_warm_p10_us": 2473.053, "exists_warm_p90_us": 2803.595, "exists_engine_med_us": 2925.082, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_correlated_2", "threads": 4, "count": 5000004, "exists": true, "count_cold_us": 10956.248, "count_warm_med_us": 7181.093, "count_warm_p10_us": 6705.352, "count_warm_p90_us": 8425.329, "count_engine_med_us": 6992.324, "exists_cold_us": 1765.145, "exists_warm_med_us": 920.959, "exists_warm_p10_us": 822.843, "exists_warm_p90_us": 1029.708, "exists_engine_med_us": 1059.528, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_correlated_5", "threads": 4, "count": 4900007, "exists": true, "count_cold_us": 9535.014, "count_warm_med_us": 6878.649, "count_warm_p10_us": 6244.281, "count_warm_p90_us": 8467.805, "count_engine_med_us": 6917.489, "exists_cold_us": 1933.827, "exists_warm_med_us": 949.248, "exists_warm_p10_us": 848.192, "exists_warm_p90_us": 1042.185, "exists_engine_med_us": 1051.395, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_contradictory_2", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1436.248, "count_warm_med_us": 656.882, "count_warm_p10_us": 536.658, "count_warm_p90_us": 823.092, "count_engine_med_us": 676.598, "exists_cold_us": 1816.518, "exists_warm_med_us": 947.912, "exists_warm_p10_us": 762.45, "exists_warm_p90_us": 1025.736, "exists_engine_med_us": 757.721, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "adv_contradictory_17", "threads": 4, "count": 0, "exists": false, "count_cold_us": 2477.712, "count_warm_med_us": 790.048, "count_warm_p10_us": 726.603, "count_warm_p90_us": 927.14, "count_engine_med_us": 882.155, "exists_cold_us": 2475.481, "exists_warm_med_us": 949.547, "exists_warm_p10_us": 874.23, "exists_warm_p90_us": 1082.403, "exists_engine_med_us": 1007.687, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "null_and", "threads": 4, "count": 999196, "exists": true, "count_cold_us": 10667.413, "count_warm_med_us": 8346.251, "count_warm_p10_us": 7985.069, "count_warm_p90_us": 9333.508, "count_engine_med_us": 8109.684, "exists_cold_us": 2396.618, "exists_warm_med_us": 961.518, "exists_warm_p10_us": 883.122, "exists_warm_p90_us": 1171.194, "exists_engine_med_us": 1039.501, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "null_not", "threads": 4, "count": 4499990, "exists": true, "count_cold_us": 6682.983, "count_warm_med_us": 5210.289, "count_warm_p10_us": 4729.813, "count_warm_p90_us": 5772.391, "count_engine_med_us": 5399.063, "exists_cold_us": 2232.762, "exists_warm_med_us": 1018.497, "exists_warm_p10_us": 897.245, "exists_warm_p90_us": 1078.882, "exists_engine_med_us": 1009.994, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "null_or", "threads": 4, "count": 1900011, "exists": true, "count_cold_us": 27056.836, "count_warm_med_us": 26963.58, "count_warm_p10_us": 25184.204, "count_warm_p90_us": 29545.113, "count_engine_med_us": 27898.874, "exists_cold_us": 2313.22, "exists_warm_med_us": 1347.176, "exists_warm_p10_us": 1012.047, "exists_warm_p90_us": 1676.492, "exists_engine_med_us": 1075.276, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "null_not_and", "threads": 4, "count": 8500703, "exists": true, "count_cold_us": 79255.859, "count_warm_med_us": 74116.916, "count_warm_p10_us": 67114.128, "count_warm_p90_us": 82435.064, "count_engine_med_us": 74124.0, "exists_cold_us": 2337.567, "exists_warm_med_us": 1188.54, "exists_warm_p10_us": 1019.509, "exists_warm_p90_us": 1511.73, "exists_engine_med_us": 1406.812, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, +{"id": "null_and_5", "threads": 4, "count": 2674492, "exists": true, "count_cold_us": 21277.003, "count_warm_med_us": 17936.419, "count_warm_p10_us": 17015.846, "count_warm_p90_us": 19324.412, "count_engine_med_us": 17825.636, "exists_cold_us": 2237.576, "exists_warm_med_us": 1060.461, "exists_warm_p10_us": 978.708, "exists_warm_p90_us": 1140.16, "exists_engine_med_us": 1192.2, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87} +] +} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log deleted file mode 100644 index f12227883..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/wk10m.log +++ /dev/null @@ -1,762 +0,0 @@ -== N = 10000000 == -columns built in 2.07 s (16 x i32 lanes + validity plane) -case k1_tiny_single K=1 target 50 achieved 0 met=false -case k1_medium_single K=1 target 100000 achieved 100002 met=true -case k1_large_single K=1 target 5000000 achieved 5000008 met=true -case k3_tiny_and K=3 target 50 achieved 0 met=false -case k3_medium_and K=3 target 100000 achieved 101386 met=true -case k3_large_and K=3 target 5000000 achieved 4996187 met=true -case k3_tiny_or K=3 target 50 achieved 0 met=false -case k3_medium_or K=3 target 100000 achieved 100001 met=true -case k3_large_or K=3 target 5000000 achieved 5006214 met=true -case k3_tiny_mixed K=3 target 50 achieved 0 met=false -case k3_medium_mixed K=3 target 100000 achieved 98184 met=true -case k3_large_mixed K=3 target 5000000 achieved 4994319 met=true -case k8_tiny_and K=8 target 50 achieved 470 met=false -case k8_medium_and K=8 target 100000 achieved 100924 met=true -case k8_large_and K=8 target 5000000 achieved 4981051 met=true -case k8_tiny_or K=8 target 50 achieved 0 met=false -case k8_medium_or K=8 target 100000 achieved 99996 met=true -case k8_large_or K=8 target 5000000 achieved 4988280 met=true -case k8_tiny_mixed K=8 target 50 achieved 935 met=false -case k8_medium_mixed K=8 target 100000 achieved 99047 met=true -case k8_large_mixed K=8 target 5000000 achieved 5001665 met=true -case k17_tiny_and K=17 target 50 achieved 467 met=false -case k17_medium_and K=17 target 100000 achieved 97561 met=true -case k17_large_and K=17 target 5000000 achieved 4998174 met=true -case k17_tiny_or K=17 target 50 achieved 0 met=false -case k17_medium_or K=17 target 100000 achieved 100002 met=true -case k17_large_or K=17 target 5000000 achieved 5051202 met=true -case k17_tiny_mixed K=17 target 50 achieved 467 met=false -case k17_medium_mixed K=17 target 100000 achieved 100925 met=true -case k17_large_mixed K=17 target 5000000 achieved 4982809 met=true -case k24_tiny_and K=24 target 50 achieved 472 met=false -case k24_medium_and K=24 target 100000 achieved 99057 met=true -case k24_large_and K=24 target 5000000 achieved 5020727 met=true -case k24_tiny_or K=24 target 50 achieved 0 met=false -case k24_medium_or K=24 target 100000 achieved 99996 met=true -case k24_large_or K=24 target 5000000 achieved 4956413 met=true -case k24_tiny_mixed K=24 target 50 achieved 470 met=false -case k24_medium_mixed K=24 target 100000 achieved 99512 met=true -case k24_large_mixed K=24 target 5000000 achieved 5004671 met=true -case adv_one_everything K=2 target 0 achieved 100002 met=- -case adv_one_nothing K=3 target 0 achieved 10002 met=- -case adv_or_one_everything K=2 target 0 achieved 10000000 met=- -case adv_or_one_nothing K=2 target 0 achieved 10000 met=- -case adv_16_nonselective K=16 target 0 achieved 8271472 met=- -case adv_16_collapse_one K=16 target 0 achieved 472 met=- -case adv_correlated_2 K=2 target 0 achieved 5000004 met=- -case adv_correlated_5 K=5 target 0 achieved 4900007 met=- -case adv_contradictory_2 K=2 target 0 achieved 0 met=- -case adv_contradictory_17 K=17 target 0 achieved 0 met=- -case null_and K=2 target 0 achieved 999196 met=- -case null_not K=1 target 0 achieved 4499990 met=- -case null_or K=2 target 0 achieved 1900011 met=- -case null_not_and K=2 target 0 achieved 8500703 met=- -case null_and_5 K=5 target 0 achieved 2674492 met=- -generated 54 cases in 107.55 s -FAILED-GATE n=10000000 case=k1_tiny_single variant=plain count warm 1688.3 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=plain any warm 1709.1 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=plain rows warm 1759.2 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=fused count warm 1689.8 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=fused any warm 1664.0 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=fused rows warm 1725.5 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=skip count warm 1717.8 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=skip any warm 1676.6 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=skip rows warm 1707.7 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=skip_fused count warm 1710.5 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=skip_fused any warm 1882.5 us -FAILED-GATE n=10000000 case=k1_tiny_single variant=skip_fused rows warm 1819.1 us -measured k1_tiny_single K=1 achieved 0 lower plain 0.096 fused 0.107 us, best count plain = 1688.30 us -FAILED-GATE n=10000000 case=k1_medium_single variant=plain count warm 1684.3 us -FAILED-GATE n=10000000 case=k1_medium_single variant=plain any warm 1970.7 us -FAILED-GATE n=10000000 case=k1_medium_single variant=plain rows warm 1751.8 us -FAILED-GATE n=10000000 case=k1_medium_single variant=fused count warm 1686.3 us -FAILED-GATE n=10000000 case=k1_medium_single variant=fused any warm 1700.3 us -FAILED-GATE n=10000000 case=k1_medium_single variant=fused rows warm 1824.8 us -FAILED-GATE n=10000000 case=k1_medium_single variant=skip count warm 1833.4 us -FAILED-GATE n=10000000 case=k1_medium_single variant=skip any warm 1855.2 us -FAILED-GATE n=10000000 case=k1_medium_single variant=skip rows warm 1792.8 us -FAILED-GATE n=10000000 case=k1_medium_single variant=skip_fused count warm 1760.2 us -FAILED-GATE n=10000000 case=k1_medium_single variant=skip_fused any warm 1833.3 us -FAILED-GATE n=10000000 case=k1_medium_single variant=skip_fused rows warm 1849.0 us -measured k1_medium_single K=1 achieved 100002 lower plain 0.096 fused 0.108 us, best count plain = 1684.30 us -FAILED-GATE n=10000000 case=k1_large_single variant=plain count warm 1799.7 us -FAILED-GATE n=10000000 case=k1_large_single variant=plain any warm 1808.5 us -FAILED-GATE n=10000000 case=k1_large_single variant=plain rows warm 1862.7 us -FAILED-GATE n=10000000 case=k1_large_single variant=fused count warm 1832.7 us -FAILED-GATE n=10000000 case=k1_large_single variant=fused any warm 1749.7 us -FAILED-GATE n=10000000 case=k1_large_single variant=fused rows warm 1786.3 us -FAILED-GATE n=10000000 case=k1_large_single variant=skip count warm 1748.9 us -FAILED-GATE n=10000000 case=k1_large_single variant=skip any warm 1747.3 us -FAILED-GATE n=10000000 case=k1_large_single variant=skip rows warm 1815.5 us -FAILED-GATE n=10000000 case=k1_large_single variant=skip_fused count warm 1821.7 us -FAILED-GATE n=10000000 case=k1_large_single variant=skip_fused any warm 1749.9 us -FAILED-GATE n=10000000 case=k1_large_single variant=skip_fused rows warm 1759.2 us -measured k1_large_single K=1 achieved 5000008 lower plain 0.090 fused 0.101 us, best count skip = 1748.86 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=plain count warm 6340.3 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=plain any warm 7086.6 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=plain rows warm 7859.9 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=fused count warm 7292.5 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=fused any warm 6416.1 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=fused rows warm 5596.8 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=skip count warm 6483.8 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=skip any warm 6956.0 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=skip rows warm 6877.8 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=skip_fused count warm 5178.7 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=skip_fused any warm 5326.2 us -FAILED-GATE n=10000000 case=k3_tiny_and variant=skip_fused rows warm 5270.8 us -measured k3_tiny_and K=3 achieved 0 lower plain 0.283 fused 0.499 us, best count skip_fused = 5178.66 us -FAILED-GATE n=10000000 case=k3_medium_and variant=plain count warm 6321.0 us -FAILED-GATE n=10000000 case=k3_medium_and variant=plain any warm 6046.6 us -FAILED-GATE n=10000000 case=k3_medium_and variant=plain rows warm 7897.9 us -FAILED-GATE n=10000000 case=k3_medium_and variant=fused count warm 5419.4 us -FAILED-GATE n=10000000 case=k3_medium_and variant=fused any warm 5667.1 us -FAILED-GATE n=10000000 case=k3_medium_and variant=fused rows warm 5938.0 us -FAILED-GATE n=10000000 case=k3_medium_and variant=skip count warm 6616.3 us -FAILED-GATE n=10000000 case=k3_medium_and variant=skip any warm 7026.2 us -FAILED-GATE n=10000000 case=k3_medium_and variant=skip rows warm 7823.4 us -FAILED-GATE n=10000000 case=k3_medium_and variant=skip_fused count warm 5495.8 us -FAILED-GATE n=10000000 case=k3_medium_and variant=skip_fused any warm 5422.3 us -FAILED-GATE n=10000000 case=k3_medium_and variant=skip_fused rows warm 5255.3 us -measured k3_medium_and K=3 achieved 101386 lower plain 0.283 fused 0.498 us, best count fused = 5419.38 us -FAILED-GATE n=10000000 case=k3_large_and variant=plain count warm 6745.9 us -FAILED-GATE n=10000000 case=k3_large_and variant=plain any warm 7129.0 us -FAILED-GATE n=10000000 case=k3_large_and variant=plain rows warm 7100.4 us -FAILED-GATE n=10000000 case=k3_large_and variant=fused count warm 5718.5 us -FAILED-GATE n=10000000 case=k3_large_and variant=fused any warm 5541.9 us -FAILED-GATE n=10000000 case=k3_large_and variant=fused rows warm 5727.1 us -FAILED-GATE n=10000000 case=k3_large_and variant=skip count warm 6202.5 us -FAILED-GATE n=10000000 case=k3_large_and variant=skip any warm 6442.0 us -FAILED-GATE n=10000000 case=k3_large_and variant=skip rows warm 6955.0 us -FAILED-GATE n=10000000 case=k3_large_and variant=skip_fused count warm 5251.0 us -FAILED-GATE n=10000000 case=k3_large_and variant=skip_fused any warm 5352.5 us -FAILED-GATE n=10000000 case=k3_large_and variant=skip_fused rows warm 6234.3 us -measured k3_large_and K=3 achieved 4996187 lower plain 0.286 fused 0.501 us, best count skip_fused = 5251.01 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=plain count warm 6004.9 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=plain any warm 5665.7 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=plain rows warm 5720.2 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=fused count warm 5663.8 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=fused any warm 5755.9 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=fused rows warm 5892.8 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=skip count warm 5701.6 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=skip any warm 5499.0 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=skip rows warm 5215.8 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=skip_fused count warm 5334.0 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=skip_fused any warm 5699.2 us -FAILED-GATE n=10000000 case=k3_tiny_or variant=skip_fused rows warm 6344.6 us -measured k3_tiny_or K=3 achieved 0 lower plain 0.284 fused 0.590 us, best count skip_fused = 5333.99 us -FAILED-GATE n=10000000 case=k3_medium_or variant=plain count warm 5516.6 us -FAILED-GATE n=10000000 case=k3_medium_or variant=plain any warm 5670.7 us -FAILED-GATE n=10000000 case=k3_medium_or variant=plain rows warm 5909.0 us -FAILED-GATE n=10000000 case=k3_medium_or variant=fused count warm 5042.6 us -FAILED-GATE n=10000000 case=k3_medium_or variant=fused any warm 5064.9 us -FAILED-GATE n=10000000 case=k3_medium_or variant=fused rows warm 5126.4 us -FAILED-GATE n=10000000 case=k3_medium_or variant=skip count warm 5098.5 us -FAILED-GATE n=10000000 case=k3_medium_or variant=skip any warm 5323.8 us -FAILED-GATE n=10000000 case=k3_medium_or variant=skip rows warm 5390.4 us -FAILED-GATE n=10000000 case=k3_medium_or variant=skip_fused count warm 5634.7 us -FAILED-GATE n=10000000 case=k3_medium_or variant=skip_fused any warm 5565.2 us -FAILED-GATE n=10000000 case=k3_medium_or variant=skip_fused rows warm 5935.2 us -measured k3_medium_or K=3 achieved 100001 lower plain 0.285 fused 0.566 us, best count fused = 5042.59 us -FAILED-GATE n=10000000 case=k3_large_or variant=plain count warm 8708.8 us -FAILED-GATE n=10000000 case=k3_large_or variant=plain any warm 6530.5 us -FAILED-GATE n=10000000 case=k3_large_or variant=plain rows warm 9036.8 us -FAILED-GATE n=10000000 case=k3_large_or variant=fused count warm 6013.2 us -FAILED-GATE n=10000000 case=k3_large_or variant=fused any warm 5159.8 us -FAILED-GATE n=10000000 case=k3_large_or variant=fused rows warm 5780.3 us -FAILED-GATE n=10000000 case=k3_large_or variant=skip count warm 5115.4 us -FAILED-GATE n=10000000 case=k3_large_or variant=skip any warm 5444.2 us -FAILED-GATE n=10000000 case=k3_large_or variant=skip rows warm 5833.9 us -FAILED-GATE n=10000000 case=k3_large_or variant=skip_fused count warm 6047.6 us -FAILED-GATE n=10000000 case=k3_large_or variant=skip_fused any warm 6620.3 us -FAILED-GATE n=10000000 case=k3_large_or variant=skip_fused rows warm 5582.6 us -measured k3_large_or K=3 achieved 5006214 lower plain 0.284 fused 0.567 us, best count skip = 5115.43 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=plain count warm 5928.7 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=plain any warm 6274.1 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=plain rows warm 6046.1 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=fused count warm 5720.6 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=fused any warm 5952.3 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=fused rows warm 5525.2 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip count warm 8135.3 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip any warm 9777.0 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip rows warm 7338.2 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip_fused count warm 5430.3 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip_fused any warm 5656.4 us -FAILED-GATE n=10000000 case=k3_tiny_mixed variant=skip_fused rows warm 6157.9 us -measured k3_tiny_mixed K=3 achieved 0 lower plain 0.368 fused 0.655 us, best count skip_fused = 5430.33 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=plain count warm 5987.9 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=plain any warm 5768.4 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=plain rows warm 6144.8 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=fused count warm 6114.1 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=fused any warm 6041.4 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=fused rows warm 5627.6 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip count warm 9328.5 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip any warm 8676.2 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip rows warm 8673.1 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip_fused count warm 5937.1 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip_fused any warm 5703.2 us -FAILED-GATE n=10000000 case=k3_medium_mixed variant=skip_fused rows warm 5487.3 us -measured k3_medium_mixed K=3 achieved 98184 lower plain 0.356 fused 0.633 us, best count skip_fused = 5937.11 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=plain count warm 5598.2 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=plain any warm 5622.8 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=plain rows warm 6067.3 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=fused count warm 5961.9 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=fused any warm 5757.5 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=fused rows warm 5708.8 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=skip count warm 6618.2 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=skip any warm 6245.6 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=skip rows warm 7954.0 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=skip_fused count warm 5676.9 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=skip_fused any warm 5345.6 us -FAILED-GATE n=10000000 case=k3_large_mixed variant=skip_fused rows warm 5390.8 us -measured k3_large_mixed K=3 achieved 4994319 lower plain 0.368 fused 0.655 us, best count plain = 5598.21 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=plain count warm 24039.1 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=plain any warm 22140.7 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=plain rows warm 24092.4 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=fused count warm 39899.6 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=fused any warm 37163.1 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=fused rows warm 36378.6 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=skip count warm 25557.5 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=skip any warm 25174.7 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=skip rows warm 25445.5 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=skip_fused count warm 37543.9 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=skip_fused any warm 36982.8 us -FAILED-GATE n=10000000 case=k8_tiny_and variant=skip_fused rows warm 36928.9 us -measured k8_tiny_and K=8 achieved 470 lower plain 0.738 fused 3.915 us, best count plain = 24039.09 us -FAILED-GATE n=10000000 case=k8_medium_and variant=plain count warm 47391.0 us -FAILED-GATE n=10000000 case=k8_medium_and variant=plain any warm 47533.9 us -FAILED-GATE n=10000000 case=k8_medium_and variant=plain rows warm 49247.8 us -FAILED-GATE n=10000000 case=k8_medium_and variant=fused count warm 36402.6 us -FAILED-GATE n=10000000 case=k8_medium_and variant=fused any warm 36781.7 us -FAILED-GATE n=10000000 case=k8_medium_and variant=fused rows warm 37327.5 us -FAILED-GATE n=10000000 case=k8_medium_and variant=skip count warm 48138.6 us -FAILED-GATE n=10000000 case=k8_medium_and variant=skip any warm 50830.9 us -FAILED-GATE n=10000000 case=k8_medium_and variant=skip rows warm 50536.3 us -FAILED-GATE n=10000000 case=k8_medium_and variant=skip_fused count warm 37278.7 us -FAILED-GATE n=10000000 case=k8_medium_and variant=skip_fused any warm 36642.3 us -FAILED-GATE n=10000000 case=k8_medium_and variant=skip_fused rows warm 38635.2 us -measured k8_medium_and K=8 achieved 100924 lower plain 0.512 fused 2.396 us, best count fused = 36402.56 us -FAILED-GATE n=10000000 case=k8_large_and variant=plain count warm 54317.5 us -FAILED-GATE n=10000000 case=k8_large_and variant=plain any warm 49803.4 us -FAILED-GATE n=10000000 case=k8_large_and variant=plain rows warm 52506.4 us -FAILED-GATE n=10000000 case=k8_large_and variant=fused count warm 36861.7 us -FAILED-GATE n=10000000 case=k8_large_and variant=fused any warm 36170.7 us -FAILED-GATE n=10000000 case=k8_large_and variant=fused rows warm 36718.5 us -FAILED-GATE n=10000000 case=k8_large_and variant=skip count warm 50435.6 us -FAILED-GATE n=10000000 case=k8_large_and variant=skip any warm 55576.0 us -FAILED-GATE n=10000000 case=k8_large_and variant=skip rows warm 52389.3 us -FAILED-GATE n=10000000 case=k8_large_and variant=skip_fused count warm 37287.1 us -FAILED-GATE n=10000000 case=k8_large_and variant=skip_fused any warm 39489.4 us -FAILED-GATE n=10000000 case=k8_large_and variant=skip_fused rows warm 40190.3 us -measured k8_large_and K=8 achieved 4981051 lower plain 0.520 fused 2.388 us, best count fused = 36861.67 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=plain count warm 36982.7 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=plain any warm 36412.7 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=plain rows warm 37027.6 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=fused count warm 37102.3 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=fused any warm 37117.4 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=fused rows warm 36805.6 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=skip count warm 36453.4 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=skip any warm 39482.9 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=skip rows warm 38088.9 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=skip_fused count warm 37250.3 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=skip_fused any warm 36962.1 us -FAILED-GATE n=10000000 case=k8_tiny_or variant=skip_fused rows warm 36664.2 us -measured k8_tiny_or K=8 achieved 0 lower plain 0.511 fused 2.607 us, best count skip = 36453.41 us -FAILED-GATE n=10000000 case=k8_medium_or variant=plain count warm 37405.8 us -FAILED-GATE n=10000000 case=k8_medium_or variant=plain any warm 38979.8 us -FAILED-GATE n=10000000 case=k8_medium_or variant=plain rows warm 39449.6 us -FAILED-GATE n=10000000 case=k8_medium_or variant=fused count warm 38106.9 us -FAILED-GATE n=10000000 case=k8_medium_or variant=fused any warm 36474.3 us -FAILED-GATE n=10000000 case=k8_medium_or variant=fused rows warm 37855.4 us -FAILED-GATE n=10000000 case=k8_medium_or variant=skip count warm 38150.9 us -FAILED-GATE n=10000000 case=k8_medium_or variant=skip any warm 38858.5 us -FAILED-GATE n=10000000 case=k8_medium_or variant=skip rows warm 37010.6 us -FAILED-GATE n=10000000 case=k8_medium_or variant=skip_fused count warm 36492.9 us -FAILED-GATE n=10000000 case=k8_medium_or variant=skip_fused any warm 36093.6 us -FAILED-GATE n=10000000 case=k8_medium_or variant=skip_fused rows warm 36554.4 us -measured k8_medium_or K=8 achieved 99996 lower plain 0.511 fused 2.629 us, best count skip_fused = 36492.95 us -FAILED-GATE n=10000000 case=k8_large_or variant=plain count warm 36812.0 us -FAILED-GATE n=10000000 case=k8_large_or variant=plain any warm 36750.4 us -FAILED-GATE n=10000000 case=k8_large_or variant=plain rows warm 36270.9 us -FAILED-GATE n=10000000 case=k8_large_or variant=fused count warm 35830.7 us -FAILED-GATE n=10000000 case=k8_large_or variant=fused any warm 35629.5 us -FAILED-GATE n=10000000 case=k8_large_or variant=fused rows warm 36135.2 us -FAILED-GATE n=10000000 case=k8_large_or variant=skip count warm 39602.8 us -FAILED-GATE n=10000000 case=k8_large_or variant=skip any warm 36305.3 us -FAILED-GATE n=10000000 case=k8_large_or variant=skip rows warm 37713.7 us -FAILED-GATE n=10000000 case=k8_large_or variant=skip_fused count warm 37956.4 us -FAILED-GATE n=10000000 case=k8_large_or variant=skip_fused any warm 36540.3 us -FAILED-GATE n=10000000 case=k8_large_or variant=skip_fused rows warm 37173.6 us -measured k8_large_or K=8 achieved 4988280 lower plain 0.509 fused 2.649 us, best count fused = 35830.66 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=plain count warm 40505.7 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=plain any warm 38387.4 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=plain rows warm 37997.5 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=fused count warm 36491.6 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=fused any warm 37142.3 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=fused rows warm 39076.1 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip count warm 38260.8 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip any warm 37811.0 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip rows warm 38791.9 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip_fused count warm 37973.9 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip_fused any warm 39645.6 us -FAILED-GATE n=10000000 case=k8_tiny_mixed variant=skip_fused rows warm 37749.2 us -measured k8_tiny_mixed K=8 achieved 935 lower plain 0.884 fused 2.644 us, best count fused = 36491.56 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=plain count warm 49326.2 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=plain any warm 50915.7 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=plain rows warm 48613.8 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=fused count warm 37299.6 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=fused any warm 37822.5 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=fused rows warm 38002.4 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip count warm 51830.5 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip any warm 48607.5 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip rows warm 47862.6 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip_fused count warm 36740.6 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip_fused any warm 39731.9 us -FAILED-GATE n=10000000 case=k8_medium_mixed variant=skip_fused rows warm 37476.0 us -measured k8_medium_mixed K=8 achieved 99047 lower plain 0.873 fused 2.663 us, best count skip_fused = 36740.59 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=plain count warm 50086.6 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=plain any warm 48321.2 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=plain rows warm 64264.2 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=fused count warm 53750.3 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=fused any warm 47112.3 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=fused rows warm 56540.9 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=skip count warm 64757.9 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=skip any warm 65552.6 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=skip rows warm 61927.9 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=skip_fused count warm 46483.4 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=skip_fused any warm 52329.9 us -FAILED-GATE n=10000000 case=k8_large_mixed variant=skip_fused rows warm 50481.7 us -measured k8_large_mixed K=8 achieved 5001665 lower plain 0.840 fused 2.555 us, best count skip_fused = 46483.36 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=plain count warm 103185.9 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=plain any warm 101385.7 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=plain rows warm 100279.1 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=fused count warm 76862.5 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=fused any warm 74427.4 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=fused rows warm 75155.7 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=skip count warm 100743.3 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=skip any warm 105356.6 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=skip rows warm 104722.6 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=skip_fused count warm 74264.2 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=skip_fused any warm 71629.8 us -FAILED-GATE n=10000000 case=k17_tiny_and variant=skip_fused rows warm 71875.5 us -measured k17_tiny_and K=17 achieved 467 lower plain 1.387 fused 18.718 us, best count skip_fused = 74264.18 us -FAILED-GATE n=10000000 case=k17_medium_and variant=plain count warm 97168.2 us -FAILED-GATE n=10000000 case=k17_medium_and variant=plain any warm 99032.9 us -FAILED-GATE n=10000000 case=k17_medium_and variant=plain rows warm 104324.4 us -FAILED-GATE n=10000000 case=k17_medium_and variant=fused count warm 79100.9 us -FAILED-GATE n=10000000 case=k17_medium_and variant=fused any warm 73776.2 us -FAILED-GATE n=10000000 case=k17_medium_and variant=fused rows warm 74798.9 us -FAILED-GATE n=10000000 case=k17_medium_and variant=skip count warm 102771.7 us -FAILED-GATE n=10000000 case=k17_medium_and variant=skip any warm 99400.7 us -FAILED-GATE n=10000000 case=k17_medium_and variant=skip rows warm 96801.4 us -FAILED-GATE n=10000000 case=k17_medium_and variant=skip_fused count warm 73592.4 us -FAILED-GATE n=10000000 case=k17_medium_and variant=skip_fused any warm 75664.5 us -FAILED-GATE n=10000000 case=k17_medium_and variant=skip_fused rows warm 82645.8 us -measured k17_medium_and K=17 achieved 97561 lower plain 1.057 fused 7.595 us, best count skip_fused = 73592.43 us -FAILED-GATE n=10000000 case=k17_large_and variant=plain count warm 104394.3 us -FAILED-GATE n=10000000 case=k17_large_and variant=plain any warm 119456.8 us -FAILED-GATE n=10000000 case=k17_large_and variant=plain rows warm 115958.5 us -FAILED-GATE n=10000000 case=k17_large_and variant=fused count warm 75036.1 us -FAILED-GATE n=10000000 case=k17_large_and variant=fused any warm 73588.6 us -FAILED-GATE n=10000000 case=k17_large_and variant=fused rows warm 74003.9 us -FAILED-GATE n=10000000 case=k17_large_and variant=skip count warm 103585.8 us -FAILED-GATE n=10000000 case=k17_large_and variant=skip any warm 111179.7 us -FAILED-GATE n=10000000 case=k17_large_and variant=skip rows warm 107186.7 us -FAILED-GATE n=10000000 case=k17_large_and variant=skip_fused count warm 74987.7 us -FAILED-GATE n=10000000 case=k17_large_and variant=skip_fused any warm 76251.7 us -FAILED-GATE n=10000000 case=k17_large_and variant=skip_fused rows warm 77455.0 us -measured k17_large_and K=17 achieved 4998174 lower plain 1.642 fused 11.694 us, best count skip_fused = 74987.65 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=plain count warm 75762.4 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=plain any warm 74831.3 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=plain rows warm 76992.4 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=fused count warm 79048.4 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=fused any warm 81795.7 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=fused rows warm 82459.6 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=skip count warm 77341.4 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=skip any warm 86855.6 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=skip rows warm 79884.1 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=skip_fused count warm 74191.9 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=skip_fused any warm 73149.9 us -FAILED-GATE n=10000000 case=k17_tiny_or variant=skip_fused rows warm 76023.9 us -measured k17_tiny_or K=17 achieved 0 lower plain 1.041 fused 8.036 us, best count skip_fused = 74191.90 us -FAILED-GATE n=10000000 case=k17_medium_or variant=plain count warm 79434.4 us -FAILED-GATE n=10000000 case=k17_medium_or variant=plain any warm 75765.8 us -FAILED-GATE n=10000000 case=k17_medium_or variant=plain rows warm 73661.7 us -FAILED-GATE n=10000000 case=k17_medium_or variant=fused count warm 73765.0 us -FAILED-GATE n=10000000 case=k17_medium_or variant=fused any warm 76878.0 us -FAILED-GATE n=10000000 case=k17_medium_or variant=fused rows warm 75717.7 us -FAILED-GATE n=10000000 case=k17_medium_or variant=skip count warm 79581.7 us -FAILED-GATE n=10000000 case=k17_medium_or variant=skip any warm 75681.1 us -FAILED-GATE n=10000000 case=k17_medium_or variant=skip rows warm 73443.5 us -FAILED-GATE n=10000000 case=k17_medium_or variant=skip_fused count warm 73705.7 us -FAILED-GATE n=10000000 case=k17_medium_or variant=skip_fused any warm 73464.6 us -FAILED-GATE n=10000000 case=k17_medium_or variant=skip_fused rows warm 79902.0 us -measured k17_medium_or K=17 achieved 100002 lower plain 1.686 fused 12.853 us, best count skip_fused = 73705.66 us -FAILED-GATE n=10000000 case=k17_large_or variant=plain count warm 76605.0 us -FAILED-GATE n=10000000 case=k17_large_or variant=plain any warm 79808.5 us -FAILED-GATE n=10000000 case=k17_large_or variant=plain rows warm 77189.2 us -FAILED-GATE n=10000000 case=k17_large_or variant=fused count warm 76236.6 us -FAILED-GATE n=10000000 case=k17_large_or variant=fused any warm 78224.2 us -FAILED-GATE n=10000000 case=k17_large_or variant=fused rows warm 78134.0 us -FAILED-GATE n=10000000 case=k17_large_or variant=skip count warm 80711.4 us -FAILED-GATE n=10000000 case=k17_large_or variant=skip any warm 76449.7 us -FAILED-GATE n=10000000 case=k17_large_or variant=skip rows warm 76371.5 us -FAILED-GATE n=10000000 case=k17_large_or variant=skip_fused count warm 72316.1 us -FAILED-GATE n=10000000 case=k17_large_or variant=skip_fused any warm 71382.2 us -FAILED-GATE n=10000000 case=k17_large_or variant=skip_fused rows warm 81167.1 us -measured k17_large_or K=17 achieved 5051202 lower plain 1.006 fused 7.856 us, best count skip_fused = 72316.14 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=plain count warm 98416.0 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=plain any warm 99039.4 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=plain rows warm 100113.3 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=fused count warm 76888.7 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=fused any warm 78963.2 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=fused rows warm 77562.4 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip count warm 41805.2 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip any warm 48830.1 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip rows warm 43736.1 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip_fused count warm 90323.0 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip_fused any warm 77447.6 us -FAILED-GATE n=10000000 case=k17_tiny_mixed variant=skip_fused rows warm 80227.5 us -measured k17_tiny_mixed K=17 achieved 467 lower plain 1.887 fused 6.911 us, best count skip = 41805.20 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=plain count warm 114968.1 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=plain any warm 107467.1 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=plain rows warm 108564.1 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=fused count warm 83106.9 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=fused any warm 77523.7 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=fused rows warm 73476.4 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip count warm 102476.6 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip any warm 100933.0 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip rows warm 105331.6 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip_fused count warm 73473.0 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip_fused any warm 78242.0 us -FAILED-GATE n=10000000 case=k17_medium_mixed variant=skip_fused rows warm 83451.6 us -measured k17_medium_mixed K=17 achieved 100925 lower plain 2.757 fused 10.564 us, best count skip_fused = 73473.00 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=plain count warm 107093.0 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=plain any warm 105667.8 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=plain rows warm 111345.9 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=fused count warm 74632.9 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=fused any warm 94747.0 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=fused rows warm 77808.7 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=skip count warm 119365.9 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=skip any warm 103544.8 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=skip rows warm 103497.7 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=skip_fused count warm 75020.1 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=skip_fused any warm 76445.0 us -FAILED-GATE n=10000000 case=k17_large_mixed variant=skip_fused rows warm 75979.7 us -measured k17_large_mixed K=17 achieved 4982809 lower plain 2.957 fused 11.567 us, best count fused = 74632.92 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=plain count warm 119053.7 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=plain any warm 119331.6 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=plain rows warm 112533.3 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=fused count warm 93763.9 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=fused any warm 98722.9 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=fused rows warm 88694.3 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=skip count warm 106022.6 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=skip any warm 113690.8 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=skip rows warm 123109.1 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=skip_fused count warm 96570.3 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=skip_fused any warm 91951.2 us -FAILED-GATE n=10000000 case=k24_tiny_and variant=skip_fused rows warm 90544.2 us -measured k24_tiny_and K=24 achieved 472 lower plain 1.420 fused 15.610 us, best count fused = 93763.94 us -FAILED-GATE n=10000000 case=k24_medium_and variant=plain count warm 135670.2 us -FAILED-GATE n=10000000 case=k24_medium_and variant=plain any warm 123678.8 us -FAILED-GATE n=10000000 case=k24_medium_and variant=plain rows warm 127720.7 us -FAILED-GATE n=10000000 case=k24_medium_and variant=fused count warm 89354.6 us -FAILED-GATE n=10000000 case=k24_medium_and variant=fused any warm 100287.7 us -FAILED-GATE n=10000000 case=k24_medium_and variant=fused rows warm 96070.1 us -FAILED-GATE n=10000000 case=k24_medium_and variant=skip count warm 120959.9 us -FAILED-GATE n=10000000 case=k24_medium_and variant=skip any warm 133711.1 us -FAILED-GATE n=10000000 case=k24_medium_and variant=skip rows warm 140643.7 us -FAILED-GATE n=10000000 case=k24_medium_and variant=skip_fused count warm 114852.4 us -FAILED-GATE n=10000000 case=k24_medium_and variant=skip_fused any warm 101101.0 us -FAILED-GATE n=10000000 case=k24_medium_and variant=skip_fused rows warm 95396.5 us -measured k24_medium_and K=24 achieved 99057 lower plain 1.898 fused 15.703 us, best count fused = 89354.55 us -FAILED-GATE n=10000000 case=k24_large_and variant=plain count warm 143182.2 us -FAILED-GATE n=10000000 case=k24_large_and variant=plain any warm 126378.2 us -FAILED-GATE n=10000000 case=k24_large_and variant=plain rows warm 122060.7 us -FAILED-GATE n=10000000 case=k24_large_and variant=fused count warm 86026.9 us -FAILED-GATE n=10000000 case=k24_large_and variant=fused any warm 85642.2 us -FAILED-GATE n=10000000 case=k24_large_and variant=fused rows warm 91331.0 us -FAILED-GATE n=10000000 case=k24_large_and variant=skip count warm 124567.5 us -FAILED-GATE n=10000000 case=k24_large_and variant=skip any warm 127668.5 us -FAILED-GATE n=10000000 case=k24_large_and variant=skip rows warm 123671.5 us -FAILED-GATE n=10000000 case=k24_large_and variant=skip_fused count warm 90414.2 us -FAILED-GATE n=10000000 case=k24_large_and variant=skip_fused any warm 87802.3 us -FAILED-GATE n=10000000 case=k24_large_and variant=skip_fused rows warm 90768.2 us -measured k24_large_and K=24 achieved 5020727 lower plain 2.100 fused 24.457 us, best count fused = 86026.94 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=plain count warm 88091.3 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=plain any warm 90924.0 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=plain rows warm 92582.7 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=fused count warm 94057.4 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=fused any warm 91883.6 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=fused rows warm 90129.3 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=skip count warm 89024.3 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=skip any warm 90998.4 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=skip rows warm 87911.4 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=skip_fused count warm 98203.9 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=skip_fused any warm 87496.3 us -FAILED-GATE n=10000000 case=k24_tiny_or variant=skip_fused rows warm 98608.2 us -measured k24_tiny_or K=24 achieved 0 lower plain 1.461 fused 16.603 us, best count plain = 88091.35 us -FAILED-GATE n=10000000 case=k24_medium_or variant=plain count warm 92045.6 us -FAILED-GATE n=10000000 case=k24_medium_or variant=plain any warm 87348.0 us -FAILED-GATE n=10000000 case=k24_medium_or variant=plain rows warm 92022.7 us -FAILED-GATE n=10000000 case=k24_medium_or variant=fused count warm 110723.2 us -FAILED-GATE n=10000000 case=k24_medium_or variant=fused any warm 86339.9 us -FAILED-GATE n=10000000 case=k24_medium_or variant=fused rows warm 88804.6 us -FAILED-GATE n=10000000 case=k24_medium_or variant=skip count warm 90460.6 us -FAILED-GATE n=10000000 case=k24_medium_or variant=skip any warm 92867.0 us -FAILED-GATE n=10000000 case=k24_medium_or variant=skip rows warm 89056.7 us -FAILED-GATE n=10000000 case=k24_medium_or variant=skip_fused count warm 92488.2 us -FAILED-GATE n=10000000 case=k24_medium_or variant=skip_fused any warm 95329.2 us -FAILED-GATE n=10000000 case=k24_medium_or variant=skip_fused rows warm 97694.1 us -measured k24_medium_or K=24 achieved 99996 lower plain 1.452 fused 16.548 us, best count skip = 90460.61 us -FAILED-GATE n=10000000 case=k24_large_or variant=plain count warm 90258.5 us -FAILED-GATE n=10000000 case=k24_large_or variant=plain any warm 87843.6 us -FAILED-GATE n=10000000 case=k24_large_or variant=plain rows warm 88561.5 us -FAILED-GATE n=10000000 case=k24_large_or variant=fused count warm 90960.6 us -FAILED-GATE n=10000000 case=k24_large_or variant=fused any warm 90959.9 us -FAILED-GATE n=10000000 case=k24_large_or variant=fused rows warm 86445.5 us -FAILED-GATE n=10000000 case=k24_large_or variant=skip count warm 89297.0 us -FAILED-GATE n=10000000 case=k24_large_or variant=skip any warm 86766.6 us -FAILED-GATE n=10000000 case=k24_large_or variant=skip rows warm 99855.8 us -FAILED-GATE n=10000000 case=k24_large_or variant=skip_fused count warm 103195.6 us -FAILED-GATE n=10000000 case=k24_large_or variant=skip_fused any warm 115924.2 us -FAILED-GATE n=10000000 case=k24_large_or variant=skip_fused rows warm 119111.5 us -measured k24_large_or K=24 achieved 4956413 lower plain 2.260 fused 25.333 us, best count skip = 89296.99 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=plain count warm 126336.6 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=plain any warm 125424.3 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=plain rows warm 116477.5 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=fused count warm 90773.9 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=fused any warm 90343.5 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=fused rows warm 88104.2 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip count warm 113814.8 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip any warm 127055.2 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip rows warm 140897.4 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip_fused count warm 94299.2 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip_fused any warm 92838.0 us -FAILED-GATE n=10000000 case=k24_tiny_mixed variant=skip_fused rows warm 93242.7 us -measured k24_tiny_mixed K=24 achieved 470 lower plain 3.567 fused 16.524 us, best count fused = 90773.89 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=plain count warm 122003.0 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=plain any warm 119026.6 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=plain rows warm 132335.5 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=fused count warm 89640.1 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=fused any warm 84966.5 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=fused rows warm 98574.2 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip count warm 136404.0 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip any warm 120942.5 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip rows warm 126367.3 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip_fused count warm 94532.8 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip_fused any warm 95272.1 us -FAILED-GATE n=10000000 case=k24_medium_mixed variant=skip_fused rows warm 86376.5 us -measured k24_medium_mixed K=24 achieved 99512 lower plain 2.600 fused 11.117 us, best count fused = 89640.12 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=plain count warm 128187.1 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=plain any warm 122442.3 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=plain rows warm 120999.9 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=fused count warm 85767.4 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=fused any warm 85184.7 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=fused rows warm 85509.0 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=skip count warm 124834.2 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=skip any warm 150774.4 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=skip rows warm 136635.1 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=skip_fused count warm 89718.2 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=skip_fused any warm 96651.3 us -FAILED-GATE n=10000000 case=k24_large_mixed variant=skip_fused rows warm 93110.9 us -measured k24_large_mixed K=24 achieved 5004671 lower plain 2.580 fused 11.122 us, best count fused = 85767.43 us -FAILED-GATE n=10000000 case=adv_one_everything variant=plain count warm 13021.7 us -FAILED-GATE n=10000000 case=adv_one_everything variant=plain any warm 4107.5 us -FAILED-GATE n=10000000 case=adv_one_everything variant=plain rows warm 4521.5 us -FAILED-GATE n=10000000 case=adv_one_everything variant=fused count warm 3704.0 us -FAILED-GATE n=10000000 case=adv_one_everything variant=fused any warm 3578.4 us -FAILED-GATE n=10000000 case=adv_one_everything variant=fused rows warm 3699.6 us -FAILED-GATE n=10000000 case=adv_one_everything variant=skip count warm 4263.4 us -FAILED-GATE n=10000000 case=adv_one_everything variant=skip any warm 4363.3 us -FAILED-GATE n=10000000 case=adv_one_everything variant=skip rows warm 3374.6 us -FAILED-GATE n=10000000 case=adv_one_everything variant=skip_fused count warm 3643.2 us -FAILED-GATE n=10000000 case=adv_one_everything variant=skip_fused any warm 3536.2 us -FAILED-GATE n=10000000 case=adv_one_everything variant=skip_fused rows warm 3842.7 us -measured adv_one_everything K=2 achieved 100002 lower plain 0.284 fused 0.634 us, best count skip_fused = 3643.24 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=plain count warm 3250.0 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=plain any warm 4084.9 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=plain rows warm 2999.3 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=fused count warm 10956.3 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=fused any warm 9288.7 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=fused rows warm 9282.6 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=skip count warm 2803.7 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=skip any warm 4055.7 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=skip rows warm 2853.7 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=skip_fused count warm 7684.3 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=skip_fused any warm 6675.6 us -FAILED-GATE n=10000000 case=adv_one_nothing variant=skip_fused rows warm 8523.0 us -measured adv_one_nothing K=3 achieved 10002 lower plain 0.397 fused 0.787 us, best count skip = 2803.72 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=plain count warm 3585.9 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=plain any warm 3483.9 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=plain rows warm 3525.1 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=fused count warm 3591.6 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=fused any warm 3519.4 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=fused rows warm 3569.8 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip count warm 3465.4 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip any warm 3510.3 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip rows warm 3498.3 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip_fused count warm 3479.8 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip_fused any warm 3458.5 us -FAILED-GATE n=10000000 case=adv_or_one_everything variant=skip_fused rows warm 3461.7 us -measured adv_or_one_everything K=2 achieved 10000000 lower plain 0.207 fused 0.394 us, best count skip = 3465.39 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=plain count warm 3468.9 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=plain any warm 3610.1 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=plain rows warm 3595.3 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=fused count warm 3505.3 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=fused any warm 3475.6 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=fused rows warm 3935.8 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip count warm 3429.9 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip any warm 3499.2 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip rows warm 4560.5 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip_fused count warm 4531.1 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip_fused any warm 3522.6 us -FAILED-GATE n=10000000 case=adv_or_one_nothing variant=skip_fused rows warm 3616.5 us -measured adv_or_one_nothing K=2 achieved 10000 lower plain 0.210 fused 0.400 us, best count skip = 3429.93 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=plain count warm 117693.3 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=plain any warm 112288.5 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=plain rows warm 107928.7 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=fused count warm 72430.2 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=fused any warm 76745.6 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=fused rows warm 82753.7 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip count warm 104896.3 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip any warm 99535.8 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip rows warm 105721.9 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip_fused count warm 73045.8 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip_fused any warm 71969.7 us -FAILED-GATE n=10000000 case=adv_16_nonselective variant=skip_fused rows warm 70735.1 us -measured adv_16_nonselective K=16 achieved 8271472 lower plain 0.965 fused 6.735 us, best count fused = 72430.22 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=plain count warm 19888.7 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=plain any warm 20468.5 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=plain rows warm 20370.5 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=fused count warm 74652.7 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=fused any warm 71789.2 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=fused rows warm 74788.3 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip count warm 21780.5 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip any warm 23239.7 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip rows warm 21942.5 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip_fused count warm 73524.1 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip_fused any warm 82288.2 us -FAILED-GATE n=10000000 case=adv_16_collapse_one variant=skip_fused rows warm 84159.4 us -measured adv_16_collapse_one K=16 achieved 472 lower plain 0.972 fused 6.640 us, best count plain = 19888.75 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=plain count warm 10480.7 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=plain any warm 5989.2 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=plain rows warm 4172.9 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=fused count warm 3531.9 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=fused any warm 3495.6 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=fused rows warm 3639.5 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip count warm 3994.7 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip any warm 4053.9 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip rows warm 4773.2 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip_fused count warm 3632.2 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip_fused any warm 3574.0 us -FAILED-GATE n=10000000 case=adv_correlated_2 variant=skip_fused rows warm 3595.0 us -measured adv_correlated_2 K=2 achieved 5000004 lower plain 0.216 fused 0.373 us, best count fused = 3531.89 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=plain count warm 15799.6 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=plain any warm 17284.3 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=plain rows warm 16729.2 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=fused count warm 12279.7 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=fused any warm 16349.8 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=fused rows warm 16336.8 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip count warm 21425.6 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip any warm 21167.1 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip rows warm 22286.5 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip_fused count warm 12771.9 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip_fused any warm 13044.9 us -FAILED-GATE n=10000000 case=adv_correlated_5 variant=skip_fused rows warm 12683.7 us -measured adv_correlated_5 K=5 achieved 4900007 lower plain 0.553 fused 1.151 us, best count fused = 12279.65 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=plain count warm 5706.5 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=plain any warm 5478.8 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=plain rows warm 4333.6 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=fused count warm 3628.9 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=fused any warm 3101.8 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=fused rows warm 2978.0 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip count warm 3275.2 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip any warm 3246.5 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip rows warm 3292.9 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip_fused count warm 2926.0 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip_fused any warm 2904.2 us -FAILED-GATE n=10000000 case=adv_contradictory_2 variant=skip_fused rows warm 2977.3 us -measured adv_contradictory_2 K=2 achieved 0 lower plain 0.215 fused 0.372 us, best count skip_fused = 2925.98 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=plain count warm 7505.2 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=plain any warm 8087.9 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=plain rows warm 15923.3 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=fused count warm 77129.3 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=fused any warm 77147.8 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=fused rows warm 73680.0 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip count warm 12875.5 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip any warm 14033.2 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip rows warm 14375.9 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip_fused count warm 83003.7 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip_fused any warm 94780.9 us -FAILED-GATE n=10000000 case=adv_contradictory_17 variant=skip_fused rows warm 76953.9 us -measured adv_contradictory_17 K=17 achieved 0 lower plain 1.058 fused 7.829 us, best count plain = 7505.22 us -FAILED-GATE n=10000000 case=null_and variant=plain count warm 13974.9 us -FAILED-GATE n=10000000 case=null_and variant=plain any warm 11996.5 us -FAILED-GATE n=10000000 case=null_and variant=plain rows warm 11437.0 us -FAILED-GATE n=10000000 case=null_and variant=fused count warm 11153.7 us -FAILED-GATE n=10000000 case=null_and variant=fused any warm 8191.3 us -FAILED-GATE n=10000000 case=null_and variant=fused rows warm 4810.2 us -FAILED-GATE n=10000000 case=null_and variant=skip count warm 5498.4 us -FAILED-GATE n=10000000 case=null_and variant=skip any warm 5726.6 us -FAILED-GATE n=10000000 case=null_and variant=skip rows warm 5295.4 us -FAILED-GATE n=10000000 case=null_and variant=skip_fused count warm 4670.4 us -FAILED-GATE n=10000000 case=null_and variant=skip_fused any warm 10825.3 us -FAILED-GATE n=10000000 case=null_and variant=skip_fused rows warm 11974.5 us -measured null_and K=2 achieved 999196 lower plain 0.317 fused 0.490 us, best count skip_fused = 4670.40 us -FAILED-GATE n=10000000 case=null_not variant=plain count warm 3566.9 us -FAILED-GATE n=10000000 case=null_not variant=plain any warm 3409.7 us -FAILED-GATE n=10000000 case=null_not variant=plain rows warm 3667.0 us -FAILED-GATE n=10000000 case=null_not variant=fused count warm 3524.0 us -FAILED-GATE n=10000000 case=null_not variant=fused any warm 3502.6 us -FAILED-GATE n=10000000 case=null_not variant=fused rows warm 3377.6 us -FAILED-GATE n=10000000 case=null_not variant=skip count warm 4116.5 us -FAILED-GATE n=10000000 case=null_not variant=skip any warm 2238.5 us -FAILED-GATE n=10000000 case=null_not variant=skip rows warm 2221.7 us -FAILED-GATE n=10000000 case=null_not variant=skip_fused count warm 2179.7 us -FAILED-GATE n=10000000 case=null_not variant=skip_fused any warm 2179.2 us -FAILED-GATE n=10000000 case=null_not variant=skip_fused rows warm 2553.8 us -measured null_not K=1 achieved 4499990 lower plain 0.375 fused 0.759 us, best count skip_fused = 2179.67 us -FAILED-GATE n=10000000 case=null_or variant=plain count warm 7063.6 us -FAILED-GATE n=10000000 case=null_or variant=plain any warm 4970.0 us -FAILED-GATE n=10000000 case=null_or variant=plain rows warm 6495.0 us -FAILED-GATE n=10000000 case=null_or variant=fused count warm 4957.3 us -FAILED-GATE n=10000000 case=null_or variant=fused any warm 4509.9 us -FAILED-GATE n=10000000 case=null_or variant=fused rows warm 7951.1 us -FAILED-GATE n=10000000 case=null_or variant=skip count warm 4684.8 us -FAILED-GATE n=10000000 case=null_or variant=skip any warm 7439.4 us -FAILED-GATE n=10000000 case=null_or variant=skip rows warm 4904.5 us -FAILED-GATE n=10000000 case=null_or variant=skip_fused count warm 6276.6 us -FAILED-GATE n=10000000 case=null_or variant=skip_fused any warm 4032.7 us -FAILED-GATE n=10000000 case=null_or variant=skip_fused rows warm 5698.6 us -measured null_or K=2 achieved 1900011 lower plain 0.319 fused 0.530 us, best count skip = 4684.79 us -FAILED-GATE n=10000000 case=null_not_and variant=plain count warm 8061.4 us -FAILED-GATE n=10000000 case=null_not_and variant=plain any warm 6900.7 us -FAILED-GATE n=10000000 case=null_not_and variant=plain rows warm 7951.0 us -FAILED-GATE n=10000000 case=null_not_and variant=fused count warm 3955.8 us -FAILED-GATE n=10000000 case=null_not_and variant=fused any warm 3971.0 us -FAILED-GATE n=10000000 case=null_not_and variant=fused rows warm 4159.1 us -FAILED-GATE n=10000000 case=null_not_and variant=skip count warm 4476.5 us -FAILED-GATE n=10000000 case=null_not_and variant=skip any warm 4378.0 us -FAILED-GATE n=10000000 case=null_not_and variant=skip rows warm 5079.8 us -FAILED-GATE n=10000000 case=null_not_and variant=skip_fused count warm 7299.7 us -FAILED-GATE n=10000000 case=null_not_and variant=skip_fused any warm 9938.5 us -FAILED-GATE n=10000000 case=null_not_and variant=skip_fused rows warm 12735.1 us -measured null_not_and K=2 achieved 8500703 lower plain 0.442 fused 0.872 us, best count fused = 3955.83 us -FAILED-GATE n=10000000 case=null_and_5 variant=plain count warm 28629.1 us -FAILED-GATE n=10000000 case=null_and_5 variant=plain any warm 28868.2 us -FAILED-GATE n=10000000 case=null_and_5 variant=plain rows warm 28619.7 us -FAILED-GATE n=10000000 case=null_and_5 variant=fused count warm 21901.5 us -FAILED-GATE n=10000000 case=null_and_5 variant=fused any warm 22263.4 us -FAILED-GATE n=10000000 case=null_and_5 variant=fused rows warm 22509.1 us -FAILED-GATE n=10000000 case=null_and_5 variant=skip count warm 26032.9 us -FAILED-GATE n=10000000 case=null_and_5 variant=skip any warm 26315.6 us -FAILED-GATE n=10000000 case=null_and_5 variant=skip rows warm 26524.1 us -FAILED-GATE n=10000000 case=null_and_5 variant=skip_fused count warm 22175.2 us -FAILED-GATE n=10000000 case=null_and_5 variant=skip_fused any warm 22161.4 us -FAILED-GATE n=10000000 case=null_and_5 variant=skip_fused rows warm 22731.5 us -measured null_and_5 K=5 achieved 2674492 lower plain 0.924 fused 2.126 us, best count fused = 21901.48 us -N=10000000: 648 FAILED-GATE values (warm >= 1000 us, reported), 0 mismatches -WHERE-K ALL ANSWERS MATCH THE ORACLE -rc=0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log b/.claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log deleted file mode 100644 index 61cdcc0b0..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/wk1m.log +++ /dev/null @@ -1,470 +0,0 @@ -== N = 1000000 == -columns built in 0.12 s (16 x i32 lanes + validity plane) -case k1_tiny_single K=1 target 50 achieved 1000 met=false -case k1_medium_single K=1 target 10000 achieved 10000 met=true -case k1_large_single K=1 target 500000 achieved 500005 met=true -case k3_tiny_and K=3 target 50 achieved 765 met=false -case k3_medium_and K=3 target 10000 achieved 10139 met=true -case k3_large_and K=3 target 500000 achieved 499628 met=true -case k3_tiny_or K=3 target 50 achieved 999 met=false -case k3_medium_or K=3 target 10000 achieved 10000 met=true -case k3_large_or K=3 target 500000 achieved 500615 met=true -case k3_tiny_mixed K=3 target 50 achieved 428 met=false -case k3_medium_mixed K=3 target 10000 achieved 9819 met=true -case k3_large_mixed K=3 target 500000 achieved 499424 met=true -case k8_tiny_and K=8 target 50 achieved 46 met=true -case k8_medium_and K=8 target 10000 achieved 10097 met=true -case k8_large_and K=8 target 500000 achieved 498124 met=true -case k8_tiny_or K=8 target 50 achieved 999 met=false -case k8_medium_or K=8 target 10000 achieved 9997 met=true -case k8_large_or K=8 target 500000 achieved 498831 met=true -case k8_tiny_mixed K=8 target 50 achieved 91 met=true -case k8_medium_mixed K=8 target 10000 achieved 9901 met=true -case k8_large_mixed K=8 target 500000 achieved 500157 met=true -case k17_tiny_and K=17 target 50 achieved 45 met=true -case k17_medium_and K=17 target 10000 achieved 9754 met=true -case k17_large_and K=17 target 500000 achieved 499819 met=true -case k17_tiny_or K=17 target 50 achieved 1000 met=false -case k17_medium_or K=17 target 10000 achieved 10000 met=true -case k17_large_or K=17 target 500000 achieved 505114 met=true -case k17_tiny_mixed K=17 target 50 achieved 46 met=true -case k17_medium_mixed K=17 target 10000 achieved 10098 met=true -case k17_large_mixed K=17 target 500000 achieved 498269 met=true -case k24_tiny_and K=24 target 50 achieved 50 met=true -case k24_medium_and K=24 target 10000 achieved 9900 met=true -case k24_large_and K=24 target 500000 achieved 502071 met=true -case k24_tiny_or K=24 target 50 achieved 1001 met=false -case k24_medium_or K=24 target 10000 achieved 9995 met=true -case k24_large_or K=24 target 500000 achieved 495651 met=true -case k24_tiny_mixed K=24 target 50 achieved 48 met=true -case k24_medium_mixed K=24 target 10000 achieved 9953 met=true -case k24_large_mixed K=24 target 500000 achieved 500471 met=true -case adv_one_everything K=2 target 0 achieved 10000 met=- -case adv_one_nothing K=3 target 0 achieved 1002 met=- -case adv_or_one_everything K=2 target 0 achieved 1000000 met=- -case adv_or_one_nothing K=2 target 0 achieved 1000 met=- -case adv_16_nonselective K=16 target 0 achieved 827152 met=- -case adv_16_collapse_one K=16 target 0 achieved 46 met=- -case adv_correlated_2 K=2 target 0 achieved 500001 met=- -case adv_correlated_5 K=5 target 0 achieved 490001 met=- -case adv_contradictory_2 K=2 target 0 achieved 0 met=- -case adv_contradictory_17 K=17 target 0 achieved 0 met=- -case null_and K=2 target 0 achieved 99875 met=- -case null_not K=1 target 0 achieved 450007 met=- -case null_or K=2 target 0 achieved 190006 met=- -case null_not_and K=2 target 0 achieved 850017 met=- -case null_and_5 K=5 target 0 achieved 267454 met=- -generated 54 cases in 5.97 s -measured k1_tiny_single K=1 achieved 1000 lower plain 0.096 fused 0.109 us, best count skip_fused = 140.59 us -measured k1_medium_single K=1 achieved 10000 lower plain 0.103 fused 0.108 us, best count skip = 138.57 us -measured k1_large_single K=1 achieved 500005 lower plain 0.095 fused 0.108 us, best count plain = 140.49 us -measured k3_tiny_and K=3 achieved 765 lower plain 0.284 fused 0.509 us, best count skip_fused = 567.79 us -measured k3_medium_and K=3 achieved 10139 lower plain 0.339 fused 0.694 us, best count skip_fused = 528.71 us -measured k3_large_and K=3 achieved 499628 lower plain 0.399 fused 0.853 us, best count fused = 531.40 us -measured k3_tiny_or K=3 achieved 999 lower plain 0.278 fused 0.568 us, best count plain = 582.33 us -measured k3_medium_or K=3 achieved 10000 lower plain 0.279 fused 0.563 us, best count skip_fused = 557.82 us -measured k3_large_or K=3 achieved 500615 lower plain 0.281 fused 0.566 us, best count skip = 529.72 us -measured k3_tiny_mixed K=3 achieved 428 lower plain 0.368 fused 0.652 us, best count skip_fused = 547.41 us -measured k3_medium_mixed K=3 achieved 9819 lower plain 0.367 fused 0.651 us, best count skip_fused = 536.75 us -measured k3_large_mixed K=3 achieved 499424 lower plain 0.362 fused 0.645 us, best count skip_fused = 516.12 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=plain any warm 1384.3 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=plain rows warm 1372.4 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=fused count warm 1390.4 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=fused any warm 1382.6 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=fused rows warm 1412.0 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=skip_fused count warm 1368.4 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=skip_fused any warm 1374.5 us -FAILED-GATE n=1000000 case=k8_tiny_and variant=skip_fused rows warm 1372.1 us -measured k8_tiny_and K=8 achieved 46 lower plain 0.526 fused 2.341 us, best count plain = 959.38 us -FAILED-GATE n=1000000 case=k8_medium_and variant=plain count warm 1584.0 us -FAILED-GATE n=1000000 case=k8_medium_and variant=plain any warm 1607.7 us -FAILED-GATE n=1000000 case=k8_medium_and variant=plain rows warm 1617.7 us -FAILED-GATE n=1000000 case=k8_medium_and variant=fused count warm 1362.3 us -FAILED-GATE n=1000000 case=k8_medium_and variant=fused any warm 1365.2 us -FAILED-GATE n=1000000 case=k8_medium_and variant=fused rows warm 1378.7 us -FAILED-GATE n=1000000 case=k8_medium_and variant=skip count warm 1636.3 us -FAILED-GATE n=1000000 case=k8_medium_and variant=skip any warm 1651.5 us -FAILED-GATE n=1000000 case=k8_medium_and variant=skip rows warm 1872.0 us -FAILED-GATE n=1000000 case=k8_medium_and variant=skip_fused count warm 1544.7 us -FAILED-GATE n=1000000 case=k8_medium_and variant=skip_fused any warm 1517.2 us -FAILED-GATE n=1000000 case=k8_medium_and variant=skip_fused rows warm 1530.0 us -measured k8_medium_and K=8 achieved 10097 lower plain 0.517 fused 2.376 us, best count fused = 1362.29 us -FAILED-GATE n=1000000 case=k8_large_and variant=plain count warm 1822.4 us -FAILED-GATE n=1000000 case=k8_large_and variant=plain any warm 1794.2 us -FAILED-GATE n=1000000 case=k8_large_and variant=plain rows warm 1776.4 us -FAILED-GATE n=1000000 case=k8_large_and variant=fused count warm 1433.0 us -FAILED-GATE n=1000000 case=k8_large_and variant=fused any warm 1425.0 us -FAILED-GATE n=1000000 case=k8_large_and variant=fused rows warm 1725.7 us -FAILED-GATE n=1000000 case=k8_large_and variant=skip count warm 2446.8 us -FAILED-GATE n=1000000 case=k8_large_and variant=skip any warm 2478.2 us -FAILED-GATE n=1000000 case=k8_large_and variant=skip rows warm 2441.7 us -FAILED-GATE n=1000000 case=k8_large_and variant=skip_fused count warm 1830.9 us -FAILED-GATE n=1000000 case=k8_large_and variant=skip_fused any warm 1790.0 us -FAILED-GATE n=1000000 case=k8_large_and variant=skip_fused rows warm 1498.7 us -measured k8_large_and K=8 achieved 498124 lower plain 0.629 fused 2.427 us, best count fused = 1433.03 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=plain count warm 1510.9 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=plain any warm 1573.7 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=plain rows warm 1628.2 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=fused count warm 1559.5 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=fused any warm 1604.9 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=fused rows warm 1501.9 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=skip count warm 1459.0 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=skip any warm 1422.4 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=skip rows warm 1433.4 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=skip_fused count warm 1430.3 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=skip_fused any warm 1473.2 us -FAILED-GATE n=1000000 case=k8_tiny_or variant=skip_fused rows warm 1473.0 us -measured k8_tiny_or K=8 achieved 999 lower plain 0.506 fused 2.628 us, best count skip_fused = 1430.31 us -FAILED-GATE n=1000000 case=k8_medium_or variant=plain count warm 1540.9 us -FAILED-GATE n=1000000 case=k8_medium_or variant=plain any warm 1506.0 us -FAILED-GATE n=1000000 case=k8_medium_or variant=plain rows warm 1519.6 us -FAILED-GATE n=1000000 case=k8_medium_or variant=fused count warm 1530.3 us -FAILED-GATE n=1000000 case=k8_medium_or variant=fused any warm 1484.5 us -FAILED-GATE n=1000000 case=k8_medium_or variant=fused rows warm 1521.2 us -FAILED-GATE n=1000000 case=k8_medium_or variant=skip count warm 1567.3 us -FAILED-GATE n=1000000 case=k8_medium_or variant=skip any warm 1595.7 us -FAILED-GATE n=1000000 case=k8_medium_or variant=skip rows warm 1633.1 us -FAILED-GATE n=1000000 case=k8_medium_or variant=skip_fused count warm 1600.5 us -FAILED-GATE n=1000000 case=k8_medium_or variant=skip_fused any warm 1613.6 us -FAILED-GATE n=1000000 case=k8_medium_or variant=skip_fused rows warm 1574.8 us -measured k8_medium_or K=8 achieved 9997 lower plain 0.760 fused 4.193 us, best count fused = 1530.31 us -FAILED-GATE n=1000000 case=k8_large_or variant=plain count warm 1487.1 us -FAILED-GATE n=1000000 case=k8_large_or variant=plain any warm 1822.2 us -FAILED-GATE n=1000000 case=k8_large_or variant=plain rows warm 1798.7 us -FAILED-GATE n=1000000 case=k8_large_or variant=fused count warm 1417.1 us -FAILED-GATE n=1000000 case=k8_large_or variant=fused any warm 1408.1 us -FAILED-GATE n=1000000 case=k8_large_or variant=fused rows warm 1701.4 us -FAILED-GATE n=1000000 case=k8_large_or variant=skip count warm 1698.6 us -FAILED-GATE n=1000000 case=k8_large_or variant=skip any warm 1748.9 us -FAILED-GATE n=1000000 case=k8_large_or variant=skip rows warm 1622.3 us -FAILED-GATE n=1000000 case=k8_large_or variant=skip_fused count warm 1599.1 us -FAILED-GATE n=1000000 case=k8_large_or variant=skip_fused any warm 1815.9 us -FAILED-GATE n=1000000 case=k8_large_or variant=skip_fused rows warm 1458.2 us -measured k8_large_or K=8 achieved 498831 lower plain 0.505 fused 2.610 us, best count fused = 1417.11 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=plain count warm 1570.7 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=plain any warm 1511.1 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=plain rows warm 1778.1 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=fused count warm 1763.7 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=fused any warm 1773.5 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=fused rows warm 1816.8 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip count warm 1429.4 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip any warm 1385.6 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip rows warm 1394.0 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip_fused count warm 1459.3 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip_fused any warm 1468.7 us -FAILED-GATE n=1000000 case=k8_tiny_mixed variant=skip_fused rows warm 1705.6 us -measured k8_tiny_mixed K=8 achieved 91 lower plain 0.872 fused 2.649 us, best count skip = 1429.38 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=plain count warm 1664.2 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=plain any warm 1707.3 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=plain rows warm 1701.4 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=fused count warm 1433.0 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=fused any warm 1418.6 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=fused rows warm 1440.9 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip count warm 1709.1 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip any warm 1779.5 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip rows warm 1694.7 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip_fused count warm 1399.0 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip_fused any warm 1390.1 us -FAILED-GATE n=1000000 case=k8_medium_mixed variant=skip_fused rows warm 1463.3 us -measured k8_medium_mixed K=8 achieved 9901 lower plain 0.858 fused 2.608 us, best count skip_fused = 1399.04 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=plain count warm 1755.9 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=plain any warm 1854.6 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=plain rows warm 2424.5 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=fused count warm 1635.5 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=fused any warm 1631.3 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=fused rows warm 1633.4 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=skip count warm 2546.6 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=skip any warm 1836.7 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=skip rows warm 1796.2 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=skip_fused count warm 1492.9 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=skip_fused any warm 1528.4 us -FAILED-GATE n=1000000 case=k8_large_mixed variant=skip_fused rows warm 1475.3 us -measured k8_large_mixed K=8 achieved 500157 lower plain 0.850 fused 2.615 us, best count skip_fused = 1492.95 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=plain count warm 4127.7 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=plain any warm 3837.8 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=plain rows warm 3745.5 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=fused count warm 3236.4 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=fused any warm 3232.4 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=fused rows warm 3230.9 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=skip count warm 3813.2 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=skip any warm 3831.1 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=skip rows warm 3728.6 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=skip_fused count warm 2839.3 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=skip_fused any warm 2888.1 us -FAILED-GATE n=1000000 case=k17_tiny_and variant=skip_fused rows warm 2961.9 us -measured k17_tiny_and K=17 achieved 45 lower plain 1.074 fused 7.439 us, best count skip_fused = 2839.27 us -FAILED-GATE n=1000000 case=k17_medium_and variant=plain count warm 3794.4 us -FAILED-GATE n=1000000 case=k17_medium_and variant=plain any warm 3840.5 us -FAILED-GATE n=1000000 case=k17_medium_and variant=plain rows warm 3888.3 us -FAILED-GATE n=1000000 case=k17_medium_and variant=fused count warm 2956.7 us -FAILED-GATE n=1000000 case=k17_medium_and variant=fused any warm 2891.1 us -FAILED-GATE n=1000000 case=k17_medium_and variant=fused rows warm 2873.7 us -FAILED-GATE n=1000000 case=k17_medium_and variant=skip count warm 3523.0 us -FAILED-GATE n=1000000 case=k17_medium_and variant=skip any warm 3610.3 us -FAILED-GATE n=1000000 case=k17_medium_and variant=skip rows warm 3576.3 us -FAILED-GATE n=1000000 case=k17_medium_and variant=skip_fused count warm 2909.6 us -FAILED-GATE n=1000000 case=k17_medium_and variant=skip_fused any warm 2879.3 us -FAILED-GATE n=1000000 case=k17_medium_and variant=skip_fused rows warm 2909.7 us -measured k17_medium_and K=17 achieved 9754 lower plain 1.063 fused 7.979 us, best count skip_fused = 2909.58 us -FAILED-GATE n=1000000 case=k17_large_and variant=plain count warm 3764.5 us -FAILED-GATE n=1000000 case=k17_large_and variant=plain any warm 3778.4 us -FAILED-GATE n=1000000 case=k17_large_and variant=plain rows warm 3738.4 us -FAILED-GATE n=1000000 case=k17_large_and variant=fused count warm 3039.2 us -FAILED-GATE n=1000000 case=k17_large_and variant=fused any warm 3308.7 us -FAILED-GATE n=1000000 case=k17_large_and variant=fused rows warm 3171.6 us -FAILED-GATE n=1000000 case=k17_large_and variant=skip count warm 3679.5 us -FAILED-GATE n=1000000 case=k17_large_and variant=skip any warm 3597.5 us -FAILED-GATE n=1000000 case=k17_large_and variant=skip rows warm 3545.0 us -FAILED-GATE n=1000000 case=k17_large_and variant=skip_fused count warm 2776.0 us -FAILED-GATE n=1000000 case=k17_large_and variant=skip_fused any warm 2764.1 us -FAILED-GATE n=1000000 case=k17_large_and variant=skip_fused rows warm 2786.9 us -measured k17_large_and K=17 achieved 499819 lower plain 1.059 fused 7.438 us, best count skip_fused = 2776.04 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=plain count warm 3323.0 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=plain any warm 3222.7 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=plain rows warm 3258.6 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=fused count warm 3196.0 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=fused any warm 3233.4 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=fused rows warm 3222.5 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=skip count warm 3199.3 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=skip any warm 3167.7 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=skip rows warm 3170.0 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=skip_fused count warm 2835.1 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=skip_fused any warm 2854.0 us -FAILED-GATE n=1000000 case=k17_tiny_or variant=skip_fused rows warm 2956.5 us -measured k17_tiny_or K=17 achieved 1000 lower plain 1.071 fused 7.978 us, best count skip_fused = 2835.07 us -FAILED-GATE n=1000000 case=k17_medium_or variant=plain count warm 2853.3 us -FAILED-GATE n=1000000 case=k17_medium_or variant=plain any warm 2892.7 us -FAILED-GATE n=1000000 case=k17_medium_or variant=plain rows warm 3218.8 us -FAILED-GATE n=1000000 case=k17_medium_or variant=fused count warm 3091.5 us -FAILED-GATE n=1000000 case=k17_medium_or variant=fused any warm 2844.7 us -FAILED-GATE n=1000000 case=k17_medium_or variant=fused rows warm 3123.4 us -FAILED-GATE n=1000000 case=k17_medium_or variant=skip count warm 2947.0 us -FAILED-GATE n=1000000 case=k17_medium_or variant=skip any warm 2769.2 us -FAILED-GATE n=1000000 case=k17_medium_or variant=skip rows warm 2996.4 us -FAILED-GATE n=1000000 case=k17_medium_or variant=skip_fused count warm 2987.7 us -FAILED-GATE n=1000000 case=k17_medium_or variant=skip_fused any warm 3267.0 us -FAILED-GATE n=1000000 case=k17_medium_or variant=skip_fused rows warm 3200.8 us -measured k17_medium_or K=17 achieved 10000 lower plain 1.038 fused 8.229 us, best count plain = 2853.33 us -FAILED-GATE n=1000000 case=k17_large_or variant=plain count warm 3234.5 us -FAILED-GATE n=1000000 case=k17_large_or variant=plain any warm 3188.7 us -FAILED-GATE n=1000000 case=k17_large_or variant=plain rows warm 3158.6 us -FAILED-GATE n=1000000 case=k17_large_or variant=fused count warm 3025.3 us -FAILED-GATE n=1000000 case=k17_large_or variant=fused any warm 2772.4 us -FAILED-GATE n=1000000 case=k17_large_or variant=fused rows warm 2785.1 us -FAILED-GATE n=1000000 case=k17_large_or variant=skip count warm 2798.5 us -FAILED-GATE n=1000000 case=k17_large_or variant=skip any warm 2780.8 us -FAILED-GATE n=1000000 case=k17_large_or variant=skip rows warm 2816.9 us -FAILED-GATE n=1000000 case=k17_large_or variant=skip_fused count warm 2833.3 us -FAILED-GATE n=1000000 case=k17_large_or variant=skip_fused any warm 2827.5 us -FAILED-GATE n=1000000 case=k17_large_or variant=skip_fused rows warm 2877.3 us -measured k17_large_or K=17 achieved 505114 lower plain 1.061 fused 8.185 us, best count skip = 2798.45 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=plain count warm 3332.5 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=plain any warm 3331.9 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=plain rows warm 3537.4 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=fused count warm 3081.2 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=fused any warm 3415.1 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=fused rows warm 3565.8 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip count warm 2378.1 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip any warm 2308.0 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip rows warm 1620.0 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip_fused count warm 3068.9 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip_fused any warm 3350.7 us -FAILED-GATE n=1000000 case=k17_tiny_mixed variant=skip_fused rows warm 4055.6 us -measured k17_tiny_mixed K=17 achieved 46 lower plain 1.914 fused 6.994 us, best count skip = 2378.08 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=plain count warm 4986.8 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=plain any warm 3701.8 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=plain rows warm 4047.4 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=fused count warm 3252.1 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=fused any warm 3559.2 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=fused rows warm 3580.7 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip count warm 3864.9 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip any warm 4146.2 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip rows warm 5311.9 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip_fused count warm 3878.5 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip_fused any warm 3867.5 us -FAILED-GATE n=1000000 case=k17_medium_mixed variant=skip_fused rows warm 3708.4 us -measured k17_medium_mixed K=17 achieved 10098 lower plain 2.921 fused 10.529 us, best count fused = 3252.11 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=plain count warm 3938.4 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=plain any warm 3896.9 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=plain rows warm 3879.8 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=fused count warm 2838.3 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=fused any warm 3284.2 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=fused rows warm 3294.0 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=skip count warm 3865.8 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=skip any warm 3823.7 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=skip rows warm 5792.0 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=skip_fused count warm 3032.2 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=skip_fused any warm 2916.9 us -FAILED-GATE n=1000000 case=k17_large_mixed variant=skip_fused rows warm 2881.7 us -measured k17_large_mixed K=17 achieved 498269 lower plain 1.907 fused 6.987 us, best count fused = 2838.34 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=plain count warm 3972.3 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=plain any warm 4062.2 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=plain rows warm 4053.8 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=fused count warm 3951.5 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=fused any warm 3962.9 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=fused rows warm 3960.5 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=skip count warm 4081.3 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=skip any warm 4207.2 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=skip rows warm 4061.2 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=skip_fused count warm 3822.1 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=skip_fused any warm 3885.5 us -FAILED-GATE n=1000000 case=k24_tiny_and variant=skip_fused rows warm 3864.8 us -measured k24_tiny_and K=24 achieved 50 lower plain 1.475 fused 15.644 us, best count skip_fused = 3822.07 us -FAILED-GATE n=1000000 case=k24_medium_and variant=plain count warm 5267.8 us -FAILED-GATE n=1000000 case=k24_medium_and variant=plain any warm 5445.2 us -FAILED-GATE n=1000000 case=k24_medium_and variant=plain rows warm 5098.5 us -FAILED-GATE n=1000000 case=k24_medium_and variant=fused count warm 4083.0 us -FAILED-GATE n=1000000 case=k24_medium_and variant=fused any warm 4096.0 us -FAILED-GATE n=1000000 case=k24_medium_and variant=fused rows warm 4106.0 us -FAILED-GATE n=1000000 case=k24_medium_and variant=skip count warm 5393.8 us -FAILED-GATE n=1000000 case=k24_medium_and variant=skip any warm 8121.5 us -FAILED-GATE n=1000000 case=k24_medium_and variant=skip rows warm 5029.2 us -FAILED-GATE n=1000000 case=k24_medium_and variant=skip_fused count warm 3980.4 us -FAILED-GATE n=1000000 case=k24_medium_and variant=skip_fused any warm 3775.8 us -FAILED-GATE n=1000000 case=k24_medium_and variant=skip_fused rows warm 3769.6 us -measured k24_medium_and K=24 achieved 9900 lower plain 1.442 fused 15.568 us, best count skip_fused = 3980.37 us -FAILED-GATE n=1000000 case=k24_large_and variant=plain count warm 5248.2 us -FAILED-GATE n=1000000 case=k24_large_and variant=plain any warm 5420.1 us -FAILED-GATE n=1000000 case=k24_large_and variant=plain rows warm 7114.1 us -FAILED-GATE n=1000000 case=k24_large_and variant=fused count warm 5288.6 us -FAILED-GATE n=1000000 case=k24_large_and variant=fused any warm 4908.2 us -FAILED-GATE n=1000000 case=k24_large_and variant=fused rows warm 4145.8 us -FAILED-GATE n=1000000 case=k24_large_and variant=skip count warm 4814.3 us -FAILED-GATE n=1000000 case=k24_large_and variant=skip any warm 7140.3 us -FAILED-GATE n=1000000 case=k24_large_and variant=skip rows warm 5021.3 us -FAILED-GATE n=1000000 case=k24_large_and variant=skip_fused count warm 4162.7 us -FAILED-GATE n=1000000 case=k24_large_and variant=skip_fused any warm 3867.2 us -FAILED-GATE n=1000000 case=k24_large_and variant=skip_fused rows warm 3806.4 us -measured k24_large_and K=24 achieved 502071 lower plain 1.419 fused 15.699 us, best count skip_fused = 4162.74 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=plain count warm 3800.6 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=plain any warm 3815.8 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=plain rows warm 4074.0 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=fused count warm 3822.0 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=fused any warm 3834.9 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=fused rows warm 3741.7 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=skip count warm 3725.8 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=skip any warm 3887.2 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=skip rows warm 3984.3 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=skip_fused count warm 3865.0 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=skip_fused any warm 4067.1 us -FAILED-GATE n=1000000 case=k24_tiny_or variant=skip_fused rows warm 4364.6 us -measured k24_tiny_or K=24 achieved 1001 lower plain 1.459 fused 16.353 us, best count skip = 3725.78 us -FAILED-GATE n=1000000 case=k24_medium_or variant=plain count warm 4178.5 us -FAILED-GATE n=1000000 case=k24_medium_or variant=plain any warm 3952.4 us -FAILED-GATE n=1000000 case=k24_medium_or variant=plain rows warm 3907.4 us -FAILED-GATE n=1000000 case=k24_medium_or variant=fused count warm 3754.6 us -FAILED-GATE n=1000000 case=k24_medium_or variant=fused any warm 3878.1 us -FAILED-GATE n=1000000 case=k24_medium_or variant=fused rows warm 4369.6 us -FAILED-GATE n=1000000 case=k24_medium_or variant=skip count warm 5078.9 us -FAILED-GATE n=1000000 case=k24_medium_or variant=skip any warm 5107.8 us -FAILED-GATE n=1000000 case=k24_medium_or variant=skip rows warm 3736.2 us -FAILED-GATE n=1000000 case=k24_medium_or variant=skip_fused count warm 3713.5 us -FAILED-GATE n=1000000 case=k24_medium_or variant=skip_fused any warm 3723.3 us -FAILED-GATE n=1000000 case=k24_medium_or variant=skip_fused rows warm 3757.5 us -measured k24_medium_or K=24 achieved 9995 lower plain 2.180 fused 24.738 us, best count skip_fused = 3713.45 us -FAILED-GATE n=1000000 case=k24_large_or variant=plain count warm 3749.3 us -FAILED-GATE n=1000000 case=k24_large_or variant=plain any warm 3784.1 us -FAILED-GATE n=1000000 case=k24_large_or variant=plain rows warm 3719.0 us -FAILED-GATE n=1000000 case=k24_large_or variant=fused count warm 4348.8 us -FAILED-GATE n=1000000 case=k24_large_or variant=fused any warm 4014.5 us -FAILED-GATE n=1000000 case=k24_large_or variant=fused rows warm 4310.1 us -FAILED-GATE n=1000000 case=k24_large_or variant=skip count warm 4078.1 us -FAILED-GATE n=1000000 case=k24_large_or variant=skip any warm 3964.9 us -FAILED-GATE n=1000000 case=k24_large_or variant=skip rows warm 4041.4 us -FAILED-GATE n=1000000 case=k24_large_or variant=skip_fused count warm 3864.8 us -FAILED-GATE n=1000000 case=k24_large_or variant=skip_fused any warm 3997.6 us -FAILED-GATE n=1000000 case=k24_large_or variant=skip_fused rows warm 4185.6 us -measured k24_large_or K=24 achieved 495651 lower plain 1.437 fused 16.395 us, best count plain = 3749.30 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=plain count warm 5111.5 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=plain any warm 5521.6 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=plain rows warm 7437.4 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=fused count warm 3932.4 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=fused any warm 3859.8 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=fused rows warm 3999.1 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip count warm 7088.2 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip any warm 6828.0 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip rows warm 5817.3 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip_fused count warm 3872.5 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip_fused any warm 4014.0 us -FAILED-GATE n=1000000 case=k24_tiny_mixed variant=skip_fused rows warm 4749.7 us -measured k24_tiny_mixed K=24 achieved 48 lower plain 2.623 fused 11.035 us, best count skip_fused = 3872.48 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=plain count warm 5119.7 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=plain any warm 5373.6 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=plain rows warm 6574.3 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=fused count warm 3859.2 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=fused any warm 4081.9 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=fused rows warm 4333.1 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip count warm 4947.8 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip any warm 5032.3 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip rows warm 5298.9 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip_fused count warm 3732.2 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip_fused any warm 3833.5 us -FAILED-GATE n=1000000 case=k24_medium_mixed variant=skip_fused rows warm 4130.1 us -measured k24_medium_mixed K=24 achieved 9953 lower plain 2.563 fused 10.944 us, best count skip_fused = 3732.17 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=plain count warm 5032.5 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=plain any warm 4900.7 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=plain rows warm 5513.0 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=fused count warm 3885.2 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=fused any warm 3820.9 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=fused rows warm 3818.3 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=skip count warm 5226.4 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=skip any warm 4865.4 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=skip rows warm 5037.2 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=skip_fused count warm 4379.8 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=skip_fused any warm 4235.6 us -FAILED-GATE n=1000000 case=k24_large_mixed variant=skip_fused rows warm 3867.3 us -measured k24_large_mixed K=24 achieved 500471 lower plain 2.565 fused 10.787 us, best count fused = 3885.19 us -measured adv_one_everything K=2 achieved 10000 lower plain 0.215 fused 0.374 us, best count skip = 284.84 us -measured adv_one_nothing K=3 achieved 1002 lower plain 0.292 fused 0.504 us, best count plain = 290.04 us -measured adv_or_one_everything K=2 achieved 1000000 lower plain 0.212 fused 0.405 us, best count skip_fused = 333.90 us -measured adv_or_one_nothing K=2 achieved 1000 lower plain 0.211 fused 0.404 us, best count skip_fused = 316.06 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=plain count warm 4511.8 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=plain any warm 3776.1 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=plain rows warm 4160.1 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=fused count warm 2742.0 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=fused any warm 2762.9 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=fused rows warm 2774.1 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip count warm 3620.1 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip any warm 3492.9 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip rows warm 3567.2 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip_fused count warm 3048.0 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip_fused any warm 3003.4 us -FAILED-GATE n=1000000 case=adv_16_nonselective variant=skip_fused rows warm 2993.0 us -measured adv_16_nonselective K=16 achieved 827152 lower plain 0.963 fused 6.746 us, best count fused = 2741.99 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=plain any warm 1030.5 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=plain rows warm 1003.0 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=fused count warm 3024.0 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=fused any warm 3055.9 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=fused rows warm 2881.2 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=skip_fused count warm 2886.6 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=skip_fused any warm 2867.3 us -FAILED-GATE n=1000000 case=adv_16_collapse_one variant=skip_fused rows warm 2849.9 us -measured adv_16_collapse_one K=16 achieved 46 lower plain 0.987 fused 6.589 us, best count skip = 958.51 us -measured adv_correlated_2 K=2 achieved 500001 lower plain 0.216 fused 0.375 us, best count fused = 316.29 us -measured adv_correlated_5 K=5 achieved 490001 lower plain 0.389 fused 1.164 us, best count skip_fused = 612.30 us -measured adv_contradictory_2 K=2 achieved 0 lower plain 0.308 fused 0.607 us, best count fused = 271.82 us -FAILED-GATE n=1000000 case=adv_contradictory_17 variant=fused count warm 3689.5 us -FAILED-GATE n=1000000 case=adv_contradictory_17 variant=fused any warm 3483.8 us -FAILED-GATE n=1000000 case=adv_contradictory_17 variant=fused rows warm 2992.8 us -FAILED-GATE n=1000000 case=adv_contradictory_17 variant=skip_fused count warm 2964.9 us -FAILED-GATE n=1000000 case=adv_contradictory_17 variant=skip_fused any warm 2934.1 us -FAILED-GATE n=1000000 case=adv_contradictory_17 variant=skip_fused rows warm 2857.1 us -measured adv_contradictory_17 K=17 achieved 0 lower plain 1.041 fused 7.625 us, best count skip = 657.51 us -measured null_and K=2 achieved 99875 lower plain 0.322 fused 0.503 us, best count skip_fused = 346.41 us -measured null_not K=1 achieved 450007 lower plain 0.240 fused 0.452 us, best count fused = 186.52 us -measured null_or K=2 achieved 190006 lower plain 0.357 fused 0.532 us, best count plain = 345.29 us -measured null_not_and K=2 achieved 850017 lower plain 0.447 fused 0.846 us, best count skip_fused = 366.14 us -FAILED-GATE n=1000000 case=null_and_5 variant=plain count warm 1082.4 us -FAILED-GATE n=1000000 case=null_and_5 variant=plain any warm 1078.4 us -FAILED-GATE n=1000000 case=null_and_5 variant=plain rows warm 1123.8 us -FAILED-GATE n=1000000 case=null_and_5 variant=fused any warm 1015.9 us -FAILED-GATE n=1000000 case=null_and_5 variant=skip count warm 1048.7 us -FAILED-GATE n=1000000 case=null_and_5 variant=skip any warm 1094.2 us -FAILED-GATE n=1000000 case=null_and_5 variant=skip rows warm 1060.3 us -measured null_and_5 K=5 achieved 267454 lower plain 0.612 fused 1.500 us, best count skip_fused = 931.39 us -N=1000000: 353 FAILED-GATE values (warm >= 1000 us, reported), 0 mismatches -WHERE-K ALL ANSWERS MATCH THE ORACLE - -real 0m49.576s -user 0m48.802s -sys 0m0.049s From 3a360093e491ebba05391fdc3d0e6ed0e76a21ce Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:54:27 +0000 Subject: [PATCH 22/23] board: regenerate entries index after merging main The merge auto-combined README.md, but the index was stale against the entries that main gained (D-DRAM-0, D-GRAMMAR-WHEN-1). Regenerated with entries_index.py --write: 569 rows, structurally sound. The supersession index is current. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .claude/board/entries/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude/board/entries/README.md b/.claude/board/entries/README.md index 07e149991..73ec68041 100644 --- a/.claude/board/entries/README.md +++ b/.claude/board/entries/README.md @@ -25,7 +25,7 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately opposite directions; the stranding this convention prevents shows up in exactly one of them, never both. -567 entries, 2026-08-06 .. 2026-11-03. +569 entries, 2026-08-06 .. 2026-11-03. | date | entry id | finding | file | |---|---|---|---| From bdcc25ee1c5b0bb52a27de3d67d47042e2a7bd3a Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 22:59:14 +0000 Subject: [PATCH 23/23] lab: move D-GLOBAL-WHERE P2 probe code and raw data to a research branch The in-memory probe (probe/), the DuckDB scripts (duckdb/) and all measurements (results/) now live only on research/d-global-where-p2 (commit 1422b2b92); main does not get them. main keeps REPORT.md, ENGINEERING-PARITY.md, LANCE-TRACE.md, SPEC.md, the board entry and the crepe-plan-probe changes. Each doc says that its probe/, duckdb/ and results/ paths refer to the research branch, and links it. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .../entries/2026-11-03-d-global-where-p2.md | 2 +- .../ENGINEERING-PARITY.md | 2 + .../LANCE-TRACE.md | 2 + .../2026-11-03-d-global-where-p1/REPORT.md | 8 + .../2026-11-03-d-global-where-p1/SPEC.md | 2 + .../duckdb/bench_big.py | 234 --- .../duckdb/bench_where.py | 232 --- .../duckdb/compare_big.py | 245 --- .../duckdb/compare_where.py | 269 --- .../probe/Cargo.toml | 26 - .../probe/src/bin/compose.rs | 1348 --------------- .../probe/src/bin/corrections.rs | 609 ------- .../probe/src/bin/falsify_p1.rs | 1304 -------------- .../probe/src/bin/project.rs | 976 ----------- .../probe/src/bin/where_k.rs | 1065 ------------ .../probe/src/lib.rs | 1528 ----------------- .../results/comp_both.log | 124 -- .../results/compose/n1000000/compose.json | 1 - .../results/compose/n10000000/compose.json | 1 - .../results/compose/scaling.json | 1 - .../results/corrections/corrections.log | 98 -- .../corrections/n1000000/corrections.json | 30 - .../corrections/n10000000/corrections.json | 30 - .../results/falsify_p1.log | 39 - .../results/lance_arm/n1000000/lance_arm.json | 108 -- .../results/lance_arm/n1000000/lance_arm.log | 162 -- .../lance_arm/n10000000/lance_arm.json | 108 -- .../results/lance_arm/n10000000/lance_arm.log | 163 -- .../lance_arm/n10000000/notcontiguous.log | 31 - .../results/project/n1000000/project.json | 44 - .../results/project/n10000000/project.json | 44 - .../results/where/n1000000/cases.json | 56 - .../results/where/n1000000/compare_where.md | 168 -- .../where/n1000000/explain/k17_medium_and.txt | 143 -- .../n1000000/explain/k1_medium_single.txt | 127 -- .../where/n1000000/explain/k3_medium_and.txt | 131 -- .../where/n1000000/explain/k8_medium_and.txt | 136 -- .../results/where/n1000000/where_duckdb.json | 116 -- .../results/where/n1000000/where_ours.json | 56 - .../results/where/n10000000/cases.json | 56 - .../results/where/n10000000/compare_where.md | 168 -- .../results/where/n10000000/where_duckdb.json | 116 -- .../results/where/n10000000/where_ours.json | 56 - 43 files changed, 15 insertions(+), 10150 deletions(-) delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json delete mode 100644 .claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json diff --git a/.claude/board/entries/2026-11-03-d-global-where-p2.md b/.claude/board/entries/2026-11-03-d-global-where-p2.md index b172592dc..b604a0b64 100644 --- a/.claude/board/entries/2026-11-03-d-global-where-p2.md +++ b/.claude/board/entries/2026-11-03-d-global-where-p2.md @@ -1,7 +1,7 @@ # D-GLOBAL-WHERE-P2: criteria-aware WHERE, DR composition, Lance selective read, three parity verdicts **Status:** MEASURED, lab only. No production change. -**Probe:** `.claude/probes/2026-11-03-d-global-where-p1/`. Read `REPORT.md` for numbers and verdicts, `ENGINEERING-PARITY.md` for the literature matrix, and `LANCE-TRACE.md` for the source-backed caller path. The Lance arm lives in `crates/crepe-plan-probe/examples/where_lance_arm.rs`. +**Probe:** `.claude/probes/2026-11-03-d-global-where-p1/` on `main` holds the docs. The probe code, DuckDB scripts and raw results are on the research branch `research/d-global-where-p2` (commit `1422b2b92`). Read `REPORT.md` for numbers and verdicts, `ENGINEERING-PARITY.md` for the literature matrix, and `LANCE-TRACE.md` for the source-backed caller path. The Lance arm lives in `crates/crepe-plan-probe/examples/where_lance_arm.rs`. **Semantic parity: reached.** - Every count and EXISTS answer equals both the oracle and DuckDB 2.0.0, at 1M and 10M, threads 1 and 4. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md b/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md index 219894546..ebfc25f27 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/ENGINEERING-PARITY.md @@ -1,5 +1,7 @@ # Engineering parity: DuckDB literature against DR / Quack / mask-risc / Lance 13 +> Paths under `probe/`, `duckdb/` and `results/` refer to the research branch [`research/d-global-where-p2`](https://github.com/AdaWorldAPI/lance-graph/tree/research/d-global-where-p2/.claude/probes/2026-11-03-d-global-where-p1) (commit `1422b2b92`); they are not on `main`. + Date: 2026-11-03. Lab research, READ-ONLY. This replaces the earlier draft (scope change: literature first). Grades: diff --git a/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md b/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md index c2d14acb1..82985090d 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/LANCE-TRACE.md @@ -1,5 +1,7 @@ # Lance 13 selective-read trace — D-GLOBAL-WHERE vs established contracts +> Paths under `probe/`, `duckdb/` and `results/` refer to the research branch [`research/d-global-where-p2`](https://github.com/AdaWorldAPI/lance-graph/tree/research/d-global-where-p2/.claude/probes/2026-11-03-d-global-where-p1) (commit `1422b2b92`); they are not on `main`. + Repo `/home/user/lg-p1`, branch `ccr-85acaff0-oszq40-global-where-p1` (HEAD `3fb41149d`). Read-only. No cargo run. Labels: **VERIFIED-IN-CODE** (read first-hand, file:line), **VERIFIED-IN-DOC** (read in a committed plan/entry/PR body), **HYPOTHESIS**, **OPEN**. ## Step 1 — established contracts diff --git a/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md index dd839e664..816a6eef5 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/REPORT.md @@ -3,6 +3,14 @@ Date: 2026-11-03. LAB ONLY. No production crate changed. Nothing here is authorized as a design; S-INGRESS and D4 stay open. +**Code and raw data live on the research branch**, not on `main`: +[`research/d-global-where-p2`](https://github.com/AdaWorldAPI/lance-graph/tree/research/d-global-where-p2/.claude/probes/2026-11-03-d-global-where-p1) +(commit `1422b2b92`). It holds the in-memory probe (`probe/`), the DuckDB +scripts (`duckdb/`) and every measurement (`results/`). Any `probe/…`, +`duckdb/…` or `results/…` path cited below refers to that branch. On `main` +are this report, `ENGINEERING-PARITY.md`, `LANCE-TRACE.md`, `SPEC.md` and the +Lance arm (`crates/crepe-plan-probe/examples/where_lance_arm.rs`). + Labels used on every number: - **in-memory**: the P2 probe (`probe/`), data generated in memory, no storage. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md b/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md index 1b480d29a..4eefd3837 100644 --- a/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md +++ b/.claude/probes/2026-11-03-d-global-where-p1/SPEC.md @@ -1,5 +1,7 @@ # D-GLOBAL-WHERE P1 probe spec: 64K page amortization, routing arms, cost model (lab only) +> Paths under `probe/`, `duckdb/` and `results/` refer to the research branch [`research/d-global-where-p2`](https://github.com/AdaWorldAPI/lance-graph/tree/research/d-global-where-p2/.claude/probes/2026-11-03-d-global-where-p1) (commit `1422b2b92`); they are not on `main`. + Written by the orchestrator; implemented by workers. Root: `/home/user/lg-p1`, branch `ccr-85acaff0-oszq40-global-where-p1`, cut from `origin/main` `ebbdb27d9`. Edit only inside `.claude/probes/2026-11-03-d-global-where-p1/`. diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py deleted file mode 100644 index 9d0949785..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_big.py +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/env python3 -"""D-GLOBAL-WHERE P1 probe, DuckDB side (Part 4 of SPEC.md): the 10M-node corpus. - -LAB SCRIPT. Not production code, not part of any build or CI gate. Measures -DuckDB (python package, in-memory, normal optimizer) on the CSVs written by the -Rust `big` binary and writes `$OUT/big/duckdb_big.json` for `compare_big.py`. - -Run: python3 -I bench_big.py [ ...] [--threads 1,4] [--runs 51] - [--arms plain,indexed] - -Each is one corpus size (e.g. $OUT/big_1m, $OUT/big_10m) holding -{nodes,edges,delete}.csv; /duckdb_big.json is written into each, and -explain texts go to /explain/. Arms: `plain` (load + ANALYZE only) and -`indexed` (additionally CREATE INDEX idx_e ON edges(src); CREATE INDEX idx_n ON -nodes(id); build time reported as index_build_us, charged as preprocessing). -Every record carries "arm". One fresh in-memory connection -per threads x query, so every cold figure is a real cold one and the DELETE -cannot leak into another query's measurement. - -Per connection: - 1. SET threads=T; load the CSVs with read_csv and explicit column types - (id/src/dst BIGINT, a/b INTEGER); ANALYZE. load_us = load + ANALYZE. - Indexed arm: then the two CREATE INDEX statements (index_build_us), then - ANALYZE again (not charged to either figure). - 2. cold_us = PREPARE + first EXECUTE (t=300 for parameterized queries). - 3. answer_per_t: one EXECUTE per t in [100..500] (G1 has no parameter, its - answer is repeated for each t so the shape matches the others). - 4. warm: RUNS EXECUTEs cycling t over [100..500]; wall median/p10/p90. - 5. engine_med_us: one profiled EXECUTE per t (JSON profiling, - `query.total_time`), median over the five. - 6. trivial_query_wall_us: median wall of a prepared `SELECT 1`. REPORTED, NOT - SUBTRACTED anywhere. - 7. mem_bytes: sum(memory_usage_bytes) FROM duckdb_memory() after the warm runs. - 8. threads=1 only: EXPLAIN ANALYZE (t=300 inlined) -> /explain/G?.txt - (plain) or /explain/indexed_G?.txt. - 9. W8-style update: DELETE FROM edges WHERE (src,dst) IN (SELECT src,dst FROM - del), timed as update_us; then one EXECUTE per t again -> - after_delete_per_t. - -All times are microseconds. -""" -import json -import os -import statistics -import sys -import tempfile -import time - -import duckdb - -TS = [100, 200, 300, 400, 500] -COLD_T = 300 - -SQL = { - "G1": "SELECT count(*) FROM nodes WHERE a < 1", - "G2": "SELECT count(*) FROM nodes n WHERE n.a < 1 AND EXISTS (SELECT 1 FROM edges e JOIN nodes m ON m.id = e.dst WHERE e.src = n.id AND m.b < $1)", - "G3": "SELECT count(*) FROM nodes n WHERE n.a < 1 AND EXISTS (SELECT 1 FROM edges e1 JOIN edges e2 ON e2.src = e1.dst JOIN nodes m ON m.id = e2.dst WHERE e1.src = n.id AND m.b < $1)", - "G4": "SELECT count(DISTINCT e3.dst) FROM nodes n JOIN edges e1 ON e1.src = n.id JOIN edges e2 ON e2.src = e1.dst JOIN edges e3 ON e3.src = e2.dst JOIN nodes m ON m.id = e3.dst WHERE n.a < 1 AND m.b < $1", - "G5": "SELECT count(DISTINCT e.dst) FROM edges e JOIN nodes n ON n.id = e.src JOIN nodes m ON m.id = e.dst WHERE n.a < 1 AND m.b < $1", - "G6": "SELECT count(*) FROM edges e1 JOIN edges e2 ON e2.src = e1.dst JOIN nodes n ON n.id = e1.src JOIN nodes m ON m.id = e2.dst WHERE n.a < 1 AND m.b < $1", -} -DELETE_SQL = "DELETE FROM edges WHERE (src, dst) IN (SELECT src, dst FROM del)" - - -def us(ns): - return round(ns / 1000.0, 3) - - -def pct(s, p): - return s[min(len(s) - 1, max(0, int(round(p * (len(s) - 1)))))] - - -def has_header(path): - with open(path) as f: - first = f.readline().split(",")[0].strip() - try: - int(first) - return False - except ValueError: - return True - - -def qs(path): - return path.replace("'", "''") - - -def load(con, big): - t0 = time.perf_counter_ns() - spec = [ - ("nodes", "nodes.csv", "{'id':'BIGINT','a':'INTEGER','b':'INTEGER'}"), - ("edges", "edges.csv", "{'src':'BIGINT','dst':'BIGINT'}"), - ("del", "delete.csv", "{'src':'BIGINT','dst':'BIGINT'}"), - ] - for name, fn, cols in spec: - p = os.path.join(big, fn) - hdr = "true" if has_header(p) else "false" - con.execute(f"CREATE TABLE {name} AS SELECT * FROM read_csv('{qs(p)}', header={hdr}, columns={cols})") - con.execute("ANALYZE") - return us(time.perf_counter_ns() - t0) - - -def exe(con, name, t, param): - stmt = f"EXECUTE {name}({t})" if param else f"EXECUTE {name}" - return con.execute(stmt).fetchone()[0] - - -def engine_us(con, name, t, param, tmpdir): - path = os.path.join(tmpdir, "profile.json") - if os.path.exists(path): - os.remove(path) - con.execute("PRAGMA enable_profiling='json'") - con.execute(f"PRAGMA profiling_output='{qs(path)}'") - exe(con, name, t, param) - con.execute("PRAGMA disable_profiling") - with open(path) as f: - return round(json.load(f)["query"]["total_time"] * 1e6, 3) - - -def answers(con, name, param): - if param: - return [exe(con, name, t, True) for t in TS] - a = exe(con, name, 0, False) - return [a] * len(TS) - - -def run_one(big, T, wl, arm, runs, tmpdir): - sql = SQL[wl] - param = "$1" in sql - con = duckdb.connect(":memory:") - con.execute(f"SET threads={T}") - load_us = load(con, big) - index_us = None - if arm == "indexed": - t0 = time.perf_counter_ns() - con.execute("CREATE INDEX idx_e ON edges(src)") - con.execute("CREATE INDEX idx_n ON nodes(id)") - index_us = us(time.perf_counter_ns() - t0) - con.execute("ANALYZE") - - t0 = time.perf_counter_ns() - con.execute(f"PREPARE q AS {sql}") - cold_ans = exe(con, "q", COLD_T, param) - cold_us = us(time.perf_counter_ns() - t0) - - ans = answers(con, "q", param) - if param: - assert cold_ans == ans[TS.index(COLD_T)], "cold answer != warm answer" - - ns = [] - for i in range(runs): - t = TS[i % len(TS)] - t0 = time.perf_counter_ns() - a = exe(con, "q", t, param) - ns.append(time.perf_counter_ns() - t0) - assert a == ans[TS.index(t)], f"answer drift at t={t}" - s = sorted(ns) - engs = [engine_us(con, "q", t, param, tmpdir) for t in TS] - - con.execute("PREPARE f AS SELECT 1") - fl = [] - for _ in range(runs): - t0 = time.perf_counter_ns() - con.execute("EXECUTE f").fetchone() - fl.append(time.perf_counter_ns() - t0) - triv = us(statistics.median(fl)) - - mem = con.execute("SELECT sum(memory_usage_bytes) FROM duckdb_memory()").fetchone()[0] - - if T == 1: - lit = sql.replace("$1", str(COLD_T)) - txt = con.execute(f"EXPLAIN ANALYZE {lit}").fetchall()[0][1] - os.makedirs(os.path.join(big, "explain"), exist_ok=True) - with open(os.path.join(big, "explain", f"{wl}.txt" if arm == "plain" else f"indexed_{wl}.txt"), "w") as f: - f.write(f"-- {lit}\n{txt}\n") - - t0 = time.perf_counter_ns() - con.execute(DELETE_SQL) - upd = us(time.perf_counter_ns() - t0) - after = answers(con, "q", param) - con.close() - return { - "query": wl, "arm": arm, "threads": T, "index_build_us": index_us, "answer_per_t": ans, "after_delete_per_t": after, - "cold_us": cold_us, "warm_med_us": us(statistics.median(s)), - "warm_p10_us": us(pct(s, 0.10)), "warm_p90_us": us(pct(s, 0.90)), - "engine_med_us": round(statistics.median(engs), 3), - "trivial_query_wall_us": triv, "load_us": load_us, "update_us": upd, - "mem_bytes": int(mem) if mem is not None else None, - } - - -def main(argv): - if len(argv) < 2 or argv[1].startswith("-"): - print(__doc__) - return 2 - dirs, threads, runs, arms = [], [1, 4], 51, ["plain", "indexed"] - i = 1 - while i < len(argv): - if argv[i] == "--threads": - threads = [int(x) for x in argv[i + 1].split(",")] - i += 2 - elif argv[i] == "--runs": - runs = int(argv[i + 1]) - i += 2 - elif argv[i] == "--arms": - arms = argv[i + 1].split(",") - i += 2 - elif argv[i].startswith("-"): - print("unknown arg", argv[i]) - return 2 - else: - dirs.append(argv[i]) - i += 1 - for big in dirs: - for fn in ("nodes.csv", "edges.csv", "delete.csv"): - if not os.path.exists(os.path.join(big, fn)): - print("missing", os.path.join(big, fn)) - return 2 - with tempfile.TemporaryDirectory() as tmpdir: - for big in dirs: - recs = [] - for arm in arms: - for T in threads: - for wl in SQL: - recs.append(run_one(big, T, wl, arm, runs, tmpdir)) - print(f"{big} arm={arm} threads={T} {wl} done", flush=True) - dst = os.path.join(big, "duckdb_big.json") - with open(dst, "w") as f: - json.dump(recs, f, indent=1) - print(f"wrote {len(recs)} records to {dst}") - return 0 - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py deleted file mode 100644 index 271f9240b..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/bench_where.py +++ /dev/null @@ -1,232 +0,0 @@ -#!/usr/bin/env python3 -"""D-GLOBAL-WHERE P2 Part 5, DuckDB side: the criteria-aware WHERE. - -LAB SCRIPT. Not production code, not part of any build or CI gate. Measures -DuckDB 2.0.0 (python package, in-memory, normal optimizer) on the predicate -trees the Rust `where_k` binary writes to `/cases.json`, and writes -`/where_duckdb.json` for `compare_where.py`. - -Run: python3 -I bench_where.py [ ...] [--threads 1,4] [--runs 31] - -Each is `/where/n` (one corpus size). The `nodes` table is built -inside DuckDB from the same closed formula the Rust side uses, no CSV: - - f(id, j) = (((id * 2654435761 + j * 40503) % 2147483648) * 1103515245 - % 2147483648) % 1000 (BIGINT, no overflow) - c_j = f(id, j) for j != 1; c1 = (c0 + f(id, 1) % 20) % 1000 - c15 = NULL where f(id, 15) % 10 == 0, else f(id, 15) - -and the table is ANALYZEd. The predicate SQL is built from the SAME tree, with -SQL three-valued semantics (NULL in c15 makes a comparison UNKNOWN; the WHERE -keeps TRUE rows only), which is exactly what the Rust side's -`Filter::sql_where` is required to reproduce. Answers are checked by -compare_where.py. - -Per (threads, case), on one fresh connection per thread count: - count query: SELECT count(*) FROM nodes WHERE - exists query: SELECT EXISTS(SELECT 1 FROM nodes WHERE ) -Each is a PREPAREd statement (constants inlined: the predicate IS the case). - cold_us = PREPARE + first EXECUTE (the table is warm; the statement is not) - warm = RUNS EXECUTEs; wall median / p10 / p90 - engine_med_us= median over 5 profiled EXECUTEs of JSON `query.total_time` - trivial_query_wall_us = median wall of a prepared `SELECT 1`, REPORTED, not - subtracted anywhere -threads = 1 only: EXPLAIN ANALYZE of one case per K group to /explain/. -All times are microseconds. Load = building `nodes` + ANALYZE, reported per -thread count as build_us / analyze_us / load_us. -""" -import json -import os -import statistics -import sys -import tempfile -import time - -import duckdb - -SQL_OP = {"lt": "<", "le": "<=", "gt": ">", "ge": ">=", "eq": "=", "ne": "<>"} - - -def f_expr(j, idv="i"): - return f"((((({idv} * 2654435761 + {j * 40503}) % 2147483648) * 1103515245) % 2147483648) % 1000)" - - -def col_expr(j): - if j == 1: - return f"CAST((({f_expr(0)} + ({f_expr(1)} % 20)) % 1000) AS INTEGER)" - if j == 15: - return f"CASE WHEN {f_expr(15)} % 10 = 0 THEN NULL ELSE CAST({f_expr(15)} AS INTEGER) END" - return f"CAST({f_expr(j)} AS INTEGER)" - - -def build_sql(n): - cols = ", ".join(f"{col_expr(j)} AS c{j}" for j in range(16)) - return f"CREATE TABLE nodes AS SELECT i AS id, {cols} FROM range({n}) t(i)" - - -def pred_sql(t): - op = t["op"] - if op == "cmp": - return f"(c{t['col']} {SQL_OP[t['cmpop']]} {t['value']})" - if op in ("and", "or"): - return "(" + f" {op.upper()} ".join(pred_sql(a) for a in t["args"]) + ")" - if op == "not": - return f"(NOT {pred_sql(t['arg'])})" - raise ValueError(f"bad op {op}") - - -def us(ns): - return round(ns / 1000.0, 3) - - -def pct(s, p): - return s[min(len(s) - 1, max(0, int(round(p * (len(s) - 1)))))] - - -def qs(path): - return path.replace("'", "''") - - -def engine_us(con, name, tmpdir): - path = os.path.join(tmpdir, "profile.json") - if os.path.exists(path): - os.remove(path) - con.execute("PRAGMA enable_profiling='json'") - con.execute(f"PRAGMA profiling_output='{qs(path)}'") - con.execute(f"EXECUTE {name}").fetchone() - con.execute("PRAGMA disable_profiling") - # DuckDB answers some predicates (e.g. a tautology over min/max statistics) - # from table statistics alone: the plan is a constant Column Data Scan, no - # operator executes and no profile is written. That is a real answer path, - # recorded as engine time None + stats_folded, never as an error. - if not os.path.exists(path): - return None - with open(path) as f: - return round(json.load(f)["query"]["total_time"] * 1e6, 3) - - -def measure(con, name, sql, runs, tmpdir): - t0 = time.perf_counter_ns() - con.execute(f"PREPARE {name} AS {sql}") - ans = con.execute(f"EXECUTE {name}").fetchone()[0] - cold = us(time.perf_counter_ns() - t0) - ns = [] - for _ in range(runs): - t0 = time.perf_counter_ns() - a = con.execute(f"EXECUTE {name}").fetchone()[0] - ns.append(time.perf_counter_ns() - t0) - assert a == ans, "answer drift" - s = sorted(ns) - engs = [engine_us(con, name, tmpdir) for _ in range(5)] - folded = any(e is None for e in engs) - engs = [e for e in engs if e is not None] - return { - "answer": ans if isinstance(ans, bool) else int(ans), - "cold_us": cold, - "warm_med_us": us(statistics.median(s)), - "warm_p10_us": us(pct(s, 0.10)), - "warm_p90_us": us(pct(s, 0.90)), - "engine_med_us": round(statistics.median(engs), 3) if engs else None, - "stats_folded": folded, - } - - -def explain_picks(cases): - """One case per K group for EXPLAIN ANALYZE: prefer a regular medium AND.""" - picks = {} - for c in cases: - g = c["k_group"] - pref = (not c["adversarial"]) and c["pop"] == "medium" and c["shape"] in ("and", "single") - if g not in picks or (pref and not picks[g][1]): - picks[g] = (c, pref) - return [v[0] for v in picks.values()] - - -def run_dir(d, threads, runs, tmpdir): - with open(os.path.join(d, "cases.json")) as f: - spec = json.load(f) - n = spec["n"] - cases = spec["cases"] - recs = [] - loads = {} - explained = {c["id"] for c in explain_picks(cases)} - for T in threads: - con = duckdb.connect(":memory:") - con.execute(f"SET threads={T}") - t0 = time.perf_counter_ns() - con.execute(build_sql(n)) - t1 = time.perf_counter_ns() - con.execute("ANALYZE") - t2 = time.perf_counter_ns() - loads[str(T)] = {"build_us": us(t1 - t0), "analyze_us": us(t2 - t1), "load_us": us(t2 - t0)} - con.execute("PREPARE triv AS SELECT 1") - fl = [] - for _ in range(runs): - t0 = time.perf_counter_ns() - con.execute("EXECUTE triv").fetchone() - fl.append(time.perf_counter_ns() - t0) - triv = us(statistics.median(fl)) - print(f"{d} threads={T} built in {loads[str(T)]['build_us']:.0f} us, analyze {loads[str(T)]['analyze_us']:.0f} us", flush=True) - for c in cases: - pred = pred_sql(c["tree"]) - cnt = measure(con, "qc", f"SELECT count(*) FROM nodes WHERE {pred}", runs, tmpdir) - ex = measure(con, "qe", f"SELECT EXISTS(SELECT 1 FROM nodes WHERE {pred})", runs, tmpdir) - assert ex["answer"] == (cnt["answer"] > 0), f"exists/count disagree on {c['id']}" - if T == 1 and c["id"] in explained: - txt = con.execute(f"EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE {pred}").fetchall()[0][1] - os.makedirs(os.path.join(d, "explain"), exist_ok=True) - with open(os.path.join(d, "explain", f"{c['id']}.txt"), "w") as fh: - fh.write(f"-- {c['id']} (K group {c['k_group']})\n-- WHERE {pred}\n{txt}\n") - recs.append({ - "id": c["id"], "threads": T, "count": cnt["answer"], "exists": ex["answer"], - "count_cold_us": cnt["cold_us"], "count_warm_med_us": cnt["warm_med_us"], - "count_warm_p10_us": cnt["warm_p10_us"], "count_warm_p90_us": cnt["warm_p90_us"], - "count_engine_med_us": cnt["engine_med_us"], - "exists_cold_us": ex["cold_us"], "exists_warm_med_us": ex["warm_med_us"], - "exists_warm_p10_us": ex["warm_p10_us"], "exists_warm_p90_us": ex["warm_p90_us"], - "exists_engine_med_us": ex["engine_med_us"], - "count_stats_folded": cnt["stats_folded"], "exists_stats_folded": ex["stats_folded"], - "trivial_query_wall_us": triv, - }) - print(f"{d} threads={T} {c['id']} count={cnt['answer']} warm {cnt['warm_med_us']:.1f} us", flush=True) - mem = con.execute("SELECT sum(memory_usage_bytes) FROM duckdb_memory()").fetchone()[0] - loads[str(T)]["mem_bytes"] = int(mem) if mem is not None else None - con.close() - out = {"n": n, "duckdb_version": duckdb.__version__, "runs": runs, "load": loads, "records": recs} - dst = os.path.join(d, "where_duckdb.json") - with open(dst, "w") as fh: - json.dump(out, fh, indent=1) - print(f"wrote {len(recs)} records to {dst}") - - -def main(argv): - if len(argv) < 2 or argv[1].startswith("-"): - print(__doc__) - return 2 - dirs, threads, runs = [], [1, 4], 31 - i = 1 - while i < len(argv): - if argv[i] == "--threads": - threads = [int(x) for x in argv[i + 1].split(",")] - i += 2 - elif argv[i] == "--runs": - runs = int(argv[i + 1]) - i += 2 - elif argv[i].startswith("-"): - print("unknown arg", argv[i]) - return 2 - else: - dirs.append(argv[i]) - i += 1 - for d in dirs: - if not os.path.exists(os.path.join(d, "cases.json")): - print("missing", os.path.join(d, "cases.json")) - return 2 - with tempfile.TemporaryDirectory() as tmpdir: - for d in dirs: - run_dir(d, threads, runs, tmpdir) - return 0 - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py deleted file mode 100644 index a3954eaa5..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_big.py +++ /dev/null @@ -1,245 +0,0 @@ -#!/usr/bin/env python3 -"""D-GLOBAL-WHERE P1 probe: join ours_big.json with duckdb_big.json per corpus size. - -LAB SCRIPT. Not production code. - -Run: python3 -I compare_big.py [ ...] e.g. $OUT/big_1m $OUT/big_10m - -Each holds ours_big.json and duckdb_big.json; /compare_big.md is -written for each, and the scaling table (all dirs together) goes to -/../compare_big_scaling.md. Dirs are ordered by the size in their name -(big_1m < big_10m); the label is the part after the last `big_`. - -Per dir and DuckDB thread count a table with one row per ours record x DuckDB -arm (plain / indexed): query, ours mode, DuckDB arm, ours warm med, ours prep, -ours cold, DuckDB warm wall, DuckDB engine, trivial (SELECT 1 wall, not -subtracted), DuckDB cold, DuckDB load, DuckDB index build, ratio wall (DuckDB / -ours), ratio engine, verdicts (WIN > 1.10, PARITY 0.90..1.10, LOSS < 0.90) and -break-even Q = ours prep / (DuckDB warm - ours warm), "never" when ours is -slower. A second table per dir shows ours' stage fields (discover_scan, -discover_index, index_build, expand, bind, project, fold, continuation; null -shown as "-"). The scaling table gives, per query, DuckDB warm per arm/threads -at every N and ours warm plus stage totals (discover = scan+index; working-set -= expand+bind+project+fold) at every N with the growth ratio last/first. - -Exit 1 if any answer_per_t of any ours record differs from DuckDB (any arm, any -thread count); after_delete_per_t is compared when ours carries it. Exit 2 on -unreadable input. Microseconds everywhere; ours warm >= 1000 us prints -FAILED-GATE, cold/prep >= 1000 us prints COLD (reported, not gate). -""" -import json - -EXPECTED_THREADS = [1, 4] -import os -import re -import sys - -STAGES = ["discover_scan_us", "discover_index_us", "index_build_us", "expand_us", - "bind_us", "project_us", "fold_us", "continuation_us"] - - -def load(path): - try: - with open(path) as f: - return json.load(f) - except (OSError, ValueError) as e: - print(f"cannot read {path}: {e}", file=sys.stderr) - sys.exit(2) - - -def verdict(r): - if r is None: - return "n/a" - return "WIN" if r > 1.10 else ("PARITY" if r >= 0.90 else "LOSS") - - -def ratio(n, d): - if n is None or d is None or d <= 0: - return None - return n / d - - -def f1(v, kind=None): - if v is None: - return "-" - s = f"{v:.1f}" - if kind == "warm" and v >= 1000: - s += " FAILED-GATE" - elif kind == "cold" and v >= 1000: - s += " COLD (reported, not gate)" - return s - - -def fr(r): - return "-" if r is None else f"{r:.2f}" - - -def breakeven(prep, duck, ours): - if duck is None or ours is None or duck <= ours: - return "never" - if not prep: - return "0" - return f"{prep / (duck - ours):.1f}" - - -def qorder(q): - return (len(q), q) - - -def size_key(path): - name = os.path.basename(os.path.normpath(path)) - m = re.search(r"(\d+)([kmb]?)$", name.lower()) - if not m: - return (0, name) - return (int(m.group(1)) * {"": 1, "k": 10**3, "m": 10**6, "b": 10**9}[m.group(2)], name) - - -def label(path): - return os.path.basename(os.path.normpath(path)).split("big_")[-1] - - -def ssum(o, keys): - vals = [o.get(k) for k in keys] - if all(v is None for v in vals): - return None - return sum(v for v in vals if v is not None) - - -def compare_dir(d, mism, notes, missing): - ours = load(os.path.join(d, "ours_big.json")) - dd = load(os.path.join(d, "duckdb_big.json")) - lab = label(d) - dd_by = {(r["query"], r.get("arm", "plain"), r["threads"]): r for r in dd} - arms = sorted({r.get("arm", "plain") for r in dd}, reverse=True) - threads = sorted({r["threads"] for r in dd}) - if threads != EXPECTED_THREADS: - missing.append(f"{lab}: duckdb thread counts {threads}, expected {EXPECTED_THREADS}") - ours_q = {o["query"] for o in ours} - for q in sorted({r["query"] for r in dd} - ours_q): - missing.append(f"{lab}: no ours record for {q}") - rows = sorted(ours, key=lambda r: (qorder(r["query"]), r["mode"])) - lines = [f"# D-GLOBAL-WHERE P1: corpus {lab}, ours vs DuckDB", "", - "Microseconds throughout. Ratio = DuckDB / ours (> 1: ours faster). " - "WIN > 1.10, PARITY 0.90..1.10, LOSS < 0.90. Break-even Q = ours prep / " - "(DuckDB warm wall - ours warm); `never` when ours is slower. " - "`trivial` = DuckDB prepared `SELECT 1` wall (not subtracted). " - "DuckDB `idx build` is charged preprocessing of the indexed arm.", ""] - hdr = ("| query | ours mode | DuckDB arm | ours warm med | ours prep | ours cold | DuckDB warm wall " - "| DuckDB engine | trivial | DuckDB cold | DuckDB load | DuckDB idx build | ratio wall " - "| verdict wall | ratio engine | verdict engine | break-even Q |") - sep = "|" + "---|" * 17 - for T in threads: - lines += [f"## {lab}: DuckDB threads={T}", "", hdr, sep] - for o in rows: - for arm in arms: - dr = dd_by.get((o["query"], arm, T)) - if dr is None: - missing.append(f"{lab}: no duckdb record for {o['query']} arm={arm} threads={T}") - continue - if o.get("answer_per_t") != dr["answer_per_t"]: - mism.append((lab, o["query"], o["mode"], arm, T, "answer_per_t", o.get("answer_per_t"), dr["answer_per_t"])) - if "after_delete_per_t" in o: - if o["after_delete_per_t"] != dr["after_delete_per_t"]: - mism.append((lab, o["query"], o["mode"], arm, T, "after_delete_per_t", o["after_delete_per_t"], dr["after_delete_per_t"])) - elif any(r.get("after_delete_per_t") is not None for r in dd if r["query"] == o["query"]): - missing.append(f"{lab}: ours lacks after_delete_per_t for {o['query']} {o['mode']}") - ow = o.get("warm_med_us") - rw = ratio(dr["warm_med_us"], ow) - re_ = ratio(dr.get("engine_med_us"), ow) - lines.append( - f"| {o['query']} | {o['mode']} | {arm} | {f1(ow, 'warm')} | {f1(o.get('prep_us'), 'cold')} " - f"| {f1(o.get('cold_us'), 'cold')} | {f1(dr['warm_med_us'])} | {f1(dr.get('engine_med_us'))} " - f"| {f1(dr.get('trivial_query_wall_us'))} | {f1(dr.get('cold_us'))} | {f1(dr.get('load_us'))} " - f"| {f1(dr.get('index_build_us'))} | {fr(rw)} | {verdict(rw)} | {fr(re_)} | {verdict(re_)} " - f"| {breakeven(o.get('prep_us'), dr['warm_med_us'], ow)} |") - lines.append("") - lines += [f"## {lab}: ours stages (null = not applicable)", "", - "| query | mode | " + " | ".join(s[:-3] for s in STAGES) + " | prep | warm med |", - "|" + "---|" * (len(STAGES) + 4)] - for o in rows: - lines.append(f"| {o['query']} | {o['mode']} | " + " | ".join(f1(o.get(s), 'cold') for s in STAGES) - + f" | {f1(o.get('prep_us'), 'cold')} | {f1(o.get('warm_med_us'), 'warm')} |") - lines.append("") - return ours, dd, lines - - -def main(argv): - if len(argv) < 2: - print(__doc__) - return 2 - dirs = sorted(argv[1:], key=size_key) - mism, notes, missing, data, out_all = [], [], [], {}, [] - for d in dirs: - ours, dd, lines = compare_dir(d, mism, notes, missing) - data[d] = (ours, dd) - with open(os.path.join(d, "compare_big.md"), "w") as f: - f.write("\n".join(lines)) - out_all += lines - - sc = ["# Corpus scaling", "", - "Per query: DuckDB warm wall per arm/threads and ours (mode `paged` stage totals, `direct` warm) at each N; " - "`discover` = scan + index, `ws` = expand + bind + project + fold. `x` = last N / first N " - "(corpus-size independence holds for `ws` when x is about 1).", ""] - labs = [label(d) for d in dirs] - queries = sorted({o["query"] for d in dirs for o in data[d][0]}, key=qorder) - # DuckDB scaling - sc += ["## DuckDB warm wall (us)", "", - "| query | arm | threads | " + " | ".join(labs) + " | x |", "|" + "---|" * (len(labs) + 4)] - keys = sorted({(r.get("arm", "plain"), r["threads"]) for d in dirs for r in data[d][1]}, key=lambda k: (k[0] != "plain", k[1])) - for q in queries: - for arm, T in keys: - vals = [] - for d in dirs: - r = next((r for r in data[d][1] if r["query"] == q and r.get("arm", "plain") == arm and r["threads"] == T), None) - vals.append(r["warm_med_us"] if r else None) - sc.append(f"| {q} | {arm} | {T} | " + " | ".join(f1(v) for v in vals) + f" | {fr(ratio(vals[-1], vals[0]))} |") - sc.append("") - sc += ["## Ours (us)", "", - "| query | mode | metric | " + " | ".join(labs) + " | x |", "|" + "---|" * (len(labs) + 4)] - metrics = [("warm", lambda o: o.get("warm_med_us")), - ("prep", lambda o: o.get("prep_us")), - ("discover", lambda o: ssum(o, ["discover_scan_us", "discover_index_us"])), - ("index_build", lambda o: o.get("index_build_us")), - ("ws (expand+bind+project+fold)", lambda o: ssum(o, ["expand_us", "bind_us", "project_us", "fold_us"])), - ("continuation", lambda o: o.get("continuation_us"))] - for q in queries: - modes = sorted({o["mode"] for d in dirs for o in data[d][0] if o["query"] == q}) - for m in modes: - for name, fn in metrics: - vals = [] - for d in dirs: - o = next((o for o in data[d][0] if o["query"] == q and o["mode"] == m), None) - vals.append(fn(o) if o else None) - if all(v is None for v in vals): - continue - sc.append(f"| {q} | {m} | {name} | " + " | ".join(f1(v) for v in vals) + f" | {fr(ratio(vals[-1], vals[0]))} |") - sc.append("") - tail = [] - if notes: - tail += ["## Notes", ""] + [f"- {n}" for n in sorted(set(notes))] + [""] - if missing: - tail += ["## MISSING COMPARISONS", ""] + [f"- {m}" for m in sorted(set(missing))] + [""] - if mism: - tail += ["## ANSWER MISMATCHES", "", "| corpus | query | mode | duckdb arm | threads | field | ours | duckdb |", "|---|---|---|---|---|---|---|---|"] - tail += ["| " + " | ".join(str(x) for x in m) + " |" for m in mism] + [""] - elif not missing: - tail += ["All compared answers agree; coverage complete in both directions.", ""] - text = "\n".join(out_all + sc + tail) - with open(os.path.join(os.path.dirname(os.path.normpath(dirs[0])) or ".", "compare_big_scaling.md"), "w") as f: - f.write("\n".join(sc + tail)) - print(text) - if mism: - print(f"\nFAIL: {len(mism)} answer mismatch(es)", file=sys.stderr) - for m in mism: - print("MISMATCH corpus=%s query=%s mode=%s arm=%s threads=%s field=%s ours=%s duckdb=%s" % m, file=sys.stderr) - return 1 - if missing: - print(f"\nFAIL: {len(missing)} missing comparison(s)", file=sys.stderr) - for m in sorted(set(missing)): - print("MISSING " + m, file=sys.stderr) - return 1 - return 0 - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py b/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py deleted file mode 100644 index d706072ce..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/duckdb/compare_where.py +++ /dev/null @@ -1,269 +0,0 @@ -#!/usr/bin/env python3 -"""D-GLOBAL-WHERE P2 Part 5: compare the Quack/mask-risc WHERE with DuckDB. - -LAB SCRIPT. Run: python3 -I compare_where.py [ ...] - -Each is `/where/n` holding cases.json + where_ours.json (Rust -`where_k`) + where_duckdb.json (bench_where.py). Exit 1 if any DuckDB answer -differs from the oracle count in cases.json (count, and EXISTS == count > 0); -nothing is compared until every answer matches. Writes /compare_where.md -and prints it. - -Ours per case: lower_us (plain / fused) and, per terminal, the best of the four -orderings {plain, fused, and_by_skip, and_by_skip + fused} by warm median. -`virtual` = Count/Any (no mask survives), `transient` = Rows (a Keep mask held -for the call). DuckDB: warm wall median, engine time (profiling -query.total_time), and the EXISTS variant. Ratio = DuckDB / ours (>1 means -ours is faster). Verdict: WIN > 1.10, LOSS < 0.90, else PARITY. Count is -compared with `SELECT count(*)`, Any with `SELECT EXISTS(...)`; Rows has no -DuckDB counterpart here (DuckDB returns no mask) and is reported alone. - -Summaries cover the regular grid only (K group x population x shape); the -adversarial and nullable cases are listed and verdicted but excluded from the -weighted figure, which is the mean per K group weighted 34/46/14/6 over the -groups 1, 2-4, 5-16, 17+. The unweighted figure is the plain mean over the -regular cases. Group means are of microseconds, then the ratio of those means; -the geometric mean of per-case ratios is shown beside it. -""" -import json - -EXPECTED_THREADS = [1, 4] -import math -import os -import sys - -GROUPS = ["1", "2-4", "5-16", "17+"] -WEIGHTS = {"1": 0.34, "2-4": 0.46, "5-16": 0.14, "17+": 0.06} -TERMS = ("count", "any", "rows") - - -def verdict(r): - if r is None: - return "n/a" - if r > 1.10: - return "WIN" - if r < 0.90: - return "LOSS" - return "PARITY" - - -def ratio(duck, ours): - if duck is None or ours is None or ours <= 0: - return None - return duck / ours - - -def fmt(x, nd=1): - return "-" if x is None else f"{x:.{nd}f}" - - -def pop_class(c, n): - a = c["achieved"] - if not c["adversarial"]: - return c["pop"] - if a == 0: - return "empty" - if a <= 100: - return "tiny" - return "medium" if a <= n // 20 else "large" - - -def best(rec, term): - vals = [] - for v in (rec.get("variants") or {}).values(): - if v: - vals.append(v[f"{term}_us"]) - return min(vals) if vals else None - - -def best_tag(rec, term): - bt, bv = None, None - for tag, v in (rec.get("variants") or {}).items(): - if v and (bv is None or v[f"{term}_us"] < bv): - bt, bv = tag, v[f"{term}_us"] - return bt - - -def gmean(xs): - xs = [x for x in xs if x and x > 0] - return math.exp(sum(math.log(x) for x in xs) / len(xs)) if xs else None - - -def load(d): - with open(os.path.join(d, "cases.json")) as f: - cases = json.load(f) - with open(os.path.join(d, "where_ours.json")) as f: - ours = json.load(f) - with open(os.path.join(d, "where_duckdb.json")) as f: - duck = json.load(f) - return cases, ours, duck - - -def check(d, cases, duck): - bad = [] - byid = {c["id"]: c for c in cases["cases"]} - for r in duck["records"]: - c = byid.get(r["id"]) - if c is None: - bad.append(f"{d}: duckdb record for unknown case {r['id']}") - continue - if r["count"] != c["achieved"]: - bad.append(f"{d} {r['id']} threads={r['threads']}: duckdb count {r['count']} != oracle {c['achieved']}") - if r["exists"] != (c["achieved"] > 0): - bad.append(f"{d} {r['id']} threads={r['threads']}: duckdb exists {r['exists']} != oracle {c['achieved'] > 0}") - seen = {(r["id"], r["threads"]) for r in duck["records"]} - threads = sorted({r["threads"] for r in duck["records"]}) - # Coverage is enforced in both directions (the corrected P0 parity rule): - # an incomplete run must fail, never print an all-agree verdict. - if threads != EXPECTED_THREADS: - bad.append(f"{d}: duckdb thread counts {threads}, expected {EXPECTED_THREADS}") - for c in cases["cases"]: - for t in EXPECTED_THREADS: - if (c["id"], t) not in seen: - bad.append(f"{d}: missing duckdb record {c['id']} threads={t}") - return bad - - -def check_ours(d, cases, ours): - bad = [] - oid = {r["id"]: r for r in ours["records"]} - for c in cases["cases"]: - if c["id"] not in oid: - bad.append(f"{d}: missing ours record {c['id']}") - for i in oid: - if i not in {c["id"] for c in cases["cases"]}: - bad.append(f"{d}: ours record for unknown case {i}") - return bad - - -def table(n, cases, ours, duck, T): - oid = {r["id"]: r for r in ours["records"]} - did = {r["id"]: r for r in duck["records"] if r["threads"] == T} - lines = [] - lines.append(f"### N = {n:,}, DuckDB threads = {T}") - lines.append("") - lines.append( - "| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | " - "duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any |" - ) - lines.append("|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---|") - rows = [] - for c in cases["cases"]: - o = oid[c["id"]] - dk = did[c["id"]] - oc, oa, orr = best(o, "count"), best(o, "any"), best(o, "rows") - r_cw = ratio(dk["count_warm_med_us"], oc) - r_ce = ratio(dk["count_engine_med_us"], oc) - r_a = ratio(dk["exists_warm_med_us"], oa) - rows.append((c, o, dk, oc, oa, orr, r_cw, r_ce, r_a)) - lines.append( - f"| {c['k_group']} | {c['id']} | {pop_class(c, n)} | {c['shape']} | {c['achieved']:,} | " - f"{fmt(o.get('lower_us_plain'), 2)}/{fmt(o.get('lower_us_fused'), 2)} | {fmt(oc)} ({best_tag(o, 'count')}) | " - f"{fmt(oa)} | {fmt(orr)} | {fmt(dk['count_warm_med_us'])} | {fmt(dk['count_engine_med_us'])} | " - f"{fmt(dk['exists_warm_med_us'])} | {fmt(r_cw, 2)} | {verdict(r_cw)} | {fmt(r_ce, 2)} | {verdict(r_ce)} | " - f"{fmt(r_a, 2)} | {verdict(r_a)} |" - ) - lines.append("") - lines.append("Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` " - f"(one Keep mask of {(n + 63) // 64 * 8:,} bytes held for the call); `persistent` never occurs here. " - "Ours rows has no DuckDB counterpart.") - lines.append("") - lines += summaries(n, rows, T) - return lines - - -def mean(xs): - xs = [x for x in xs if x is not None] - return sum(xs) / len(xs) if xs else None - - -def summaries(n, rows, T): - reg = [r for r in rows if not r[0]["adversarial"]] - lines = [f"Summary, N = {n:,}, threads = {T} (regular grid only: {len(reg)} cases; " - f"{len(rows) - len(reg)} adversarial/nullable cases excluded from the figures below)", ""] - lines.append("| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio |") - lines.append("|---|---:|---:|---:|---|---:|---:|---:|---|---:|") - specs = [ - ("count vs duck count, wall", 3, lambda r: r[2]["count_warm_med_us"]), - ("count vs duck count, engine", 3, lambda r: r[2]["count_engine_med_us"]), - ("any vs duck exists, wall", 4, lambda r: r[2]["exists_warm_med_us"]), - ] - for name, oi, dget in specs: - ours_g, duck_g = {}, {} - for g in GROUPS: - rs = [r for r in reg if r[0]["k_group"] == g] - ours_g[g] = mean([r[oi] for r in rs]) - duck_g[g] = mean([dget(r) for r in rs]) - wo = sum(WEIGHTS[g] * ours_g[g] for g in GROUPS if ours_g[g] is not None) - wd = sum(WEIGHTS[g] * duck_g[g] for g in GROUPS if duck_g[g] is not None) - wsum = sum(WEIGHTS[g] for g in GROUPS if ours_g[g] is not None) - wo, wd = (wo / wsum, wd / wsum) if wsum else (None, None) - uo = mean([r[oi] for r in reg]) - ud = mean([dget(r) for r in reg]) - rw, ru = ratio(wd, wo), ratio(ud, uo) - gm = gmean([ratio(dget(r), r[oi]) for r in reg]) - lines.append( - f"| {name} | {fmt(wo)} | {fmt(wd)} | {fmt(rw, 2)} | {verdict(rw)} | {fmt(uo)} | {fmt(ud)} | {fmt(ru, 2)} | {verdict(ru)} | {fmt(gm, 2)} |" - ) - lines.append("") - lines.append("Per K group (count vs duck count, wall; mean us over regular cases):") - lines.append("") - lines.append("| K group | cases | ours us | duck us | ratio | verdict | weight |") - lines.append("|---|---:|---:|---:|---:|---|---:|") - for g in GROUPS: - rs = [r for r in reg if r[0]["k_group"] == g] - o = mean([r[3] for r in rs]) - dk = mean([r[2]["count_warm_med_us"] for r in rs]) - rr = ratio(dk, o) - lines.append(f"| {g} | {len(rs)} | {fmt(o)} | {fmt(dk)} | {fmt(rr, 2)} | {verdict(rr)} | {WEIGHTS[g]:.2f} |") - lines.append("") - gate = [r for r in rows if r[3] is not None and r[3] >= 1000.0] - lines.append(f"Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): {len(gate)} of {len(rows)} cases.") - lines.append("") - return lines - - -def main(argv): - if len(argv) < 2: - print(__doc__) - return 2 - dirs = argv[1:] - loaded = {} - problems = [] - for d in dirs: - cases, ours, duck = load(d) - loaded[d] = (cases, ours, duck) - problems += check(d, cases, duck) - problems += check_ours(d, cases, ours) - if problems: - print("ANSWER MISMATCH between DuckDB and the oracle:") - for p in problems: - print(" " + p) - return 1 - for d in dirs: - cases, ours, duck = loaded[d] - n = cases["n"] - lines = [f"# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = {n:,}", ""] - lines.append("Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json " - "(checked before this file was written).") - lines.append("") - miss = [c for c in cases["cases"] if not c["target_met"]] - if miss: - lines.append("Population targets NOT met by the generator (achieved is what is measured; " - "never assumed from K): " + ", ".join(f"{c['id']} (target {c['target']:,}, achieved {c['achieved']:,})" for c in miss)) - lines.append("") - lines.append("DuckDB build + ANALYZE: " + "; ".join( - f"threads {t}: {v['load_us']:,.0f} us (build {v['build_us']:,.0f}, analyze {v['analyze_us']:,.0f})" - for t, v in sorted(duck["load"].items(), key=lambda kv: int(kv[0])))) - lines.append("") - for T in sorted({r["threads"] for r in duck["records"]}): - lines += table(n, cases, ours, duck, T) - text = "\n".join(lines) + "\n" - with open(os.path.join(d, "compare_where.md"), "w") as f: - f.write(text) - print(text) - return 0 - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml b/.claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml deleted file mode 100644 index e5c9b849c..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/probe/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -# D-GLOBAL-WHERE P1 probe: working-set construction, routing arms, cost model. -# Lab only. Own [workspace]; the root workspace never builds it. Consumes -# dt64, quack, mask-risc and ndarray::simd unchanged. -[package] -name = "d-global-where-p1-probe" -version = "0.0.0" -edition = "2021" -publish = false - -[dependencies] -lance-graph-contract = { path = "../../../../crates/lance-graph-contract" } -lance-graph-dt64 = { path = "../../../../crates/lance-graph-dt64" } -lance-graph-quack = { path = "../../../../crates/lance-graph-quack" } -lance-graph-mask-risc = { path = "../../../../crates/lance-graph-mask-risc" } -ndarray = { git = "https://github.com/AdaWorldAPI/ndarray", branch = "master", default-features = false, features = ["std"] } - -[patch."https://github.com/AdaWorldAPI/lance-graph"] -lance-graph-contract = { path = "../../../../crates/lance-graph-contract" } - -[patch."https://github.com/AdaWorldAPI/ndarray"] -ndarray = { path = "/home/user/ndarray" } - -[profile.release] -debug = 0 - -[workspace] diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs deleted file mode 100644 index 60c99c71b..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/compose.rs +++ /dev/null @@ -1,1348 +0,0 @@ -//! LAB: D-GLOBAL-WHERE P2, composition-scaling probe ("beyond 64K = repeated joins"). -//! -//! Lab only. Nothing here is production, and nothing here is a compiled or run -//! result until the orchestrator builds and runs it. -//! -//! QUESTION (operator): beyond 65,536 identities the answer is NOT a new paging -//! engine. It is REPEATED JOINS / COMPOSITION with the same DR algebra and the -//! same addressing: a `WorkingSet` is one `MapTable` of <= 256 DR256 tiles (<= -//! 65,536 ids), and an edge into another set is `CROSS | noderef(set << 16 | coord)`. -//! This probe measures how cost scales with the number of compositions D, -//! independently of the selected cardinality |sel| and of the corpus size N. -//! -//! Independent variables, one at a time from a base point: -//! * N in {1_000_000, 10_000_000}: must NOT drive any stage except the WHERE scan. -//! * |sel| in {1_000, 50_000, 200_000, 1_000_000}: D = ceil(|sel| / 65,536). -//! * D in {1, 2, 4, 8} at fixed |sel| = 50_000 (one selection split into more, -//! smaller sets), so composition overhead is separated from volume. -//! * partition: `contig` (chunks of the id-ordered candidates; community blocks -//! stay together, few cross-set edges) and `scatter` (position mod D; nearly -//! every edge crosses a set boundary, the worst case for routing). -//! -//! Graph: deterministic (lib `Rng` = SplitMix64), generated per source id, never -//! materialised corpus-wide: out-degree 4..12 (avg 8); 7/8 of the targets fall in -//! the source's own 1024-id block, 1/8 are uniform over N. The WHERE lane gives a -//! whole block the same high bits, so a threshold selects whole blocks (plus one -//! partial block). Edges whose target lies in no set are dropped (counted), as in -//! `Binding::prepare`. Per-set `CoordCsr` only; there is no dense adjacency. -//! -//! Query per case: A = `a < 300`, B = `b < 500` (virtual WHERE over lanes gathered -//! at preparation); W2 (EXISTS / COUNT of x in A with an edge into B), W6 (bag -//! count of 2-paths) and W5 (DISTINCT: y in B with an edge from A, 1 hop; "DISTINCT -//! reachable" is read as this lib workload). Each set k folds with A restricted to -//! set k (all CSRs visible, so cross targets resolve through `tgt_unpack`), then the -//! parts compose: EXISTS = OR, COUNT = `checked_sum` over disjoint contributions, -//! DISTINCT = exact union of the per-set reach masks (never a sum), bag -//! multiplicities preserved (`w6`, checked i64). -//! -//! Stages charged separately: discover (WHERE scan, N-BOUND BY DESIGN), partition, -//! fetch (edges of the set's sources from the generator, standing in for a global -//! relation index), bind (`WorkingSet::build`), route (arm index build + batch -//! routing of both endpoints), prep (CSR + presence + lanes + masks + fold plan), -//! fold (per set and total, warm), compose (warm), plus continuation (the D-th set -//! added to D-1 built sets vs a full rebuild) and `WorkingSet::extend` vs rebuild. -//! `StageTimes` carries Discover/Bind/Project(prep)/Fold; the lib has no slot for -//! the others, which use local timers. -//! -//! ORACLE: `lib::oracle` over the global edge list of the selected ids (generator -//! run again, edges kept only when the target is selected), outside every timed -//! region, never reading a working set. A composed answer that differs exits 1. -//! -//! REFUSALS (each exercised and checked to fire): an id in two sets -> `union_check` -//! Err; `checked_sum` overflow -> None (checked_sum does NOT see overlap, only -//! overflow; the overlap refusal is union_check, and the wrong sum is shown); -//! stale binding after a set is replaced -> `Binding::guard` Stale (and the arm-C -//! index refuses the new frame); > 65,536 ids into one set -> TooMany. -//! -//! NOT CLAIMED: absolute speed, that the generated graph resembles a real -//! corpus, that `fetch` equals a real relation-index read, that these numbers hold -//! at 30M, or anything about DuckDB. Cold stages (build/route/prep/continuation) -//! are reported, never gated. A warm fold >= 1000 us prints FAILED-GATE (counted, -//! reported; it does not change the exit code). -//! -//! Usage: `compose [--n 1000000|10000000]... [--arm A|B|C]` (default: both -//! sizes, arm C). Writes `/compose/n/compose.json` (and -//! `/compose/scaling.json` when two sizes ran). Exit 1 on any mismatch. - -use std::collections::HashSet; -use std::fmt::Write as _; -use std::hint::black_box; -use std::time::Instant; - -use d_global_where_p1_probe::*; -use lance_graph_dt64::dr::{Frame, MapRefusal}; -use lance_graph_quack::{Agg, Cmp}; - -#[global_allocator] -static ALLOC: CountingAlloc = CountingAlloc; - -const A_LT: i32 = 300; -const B_LT: i32 = 500; -const CAP: usize = 65_536; - -fn die(msg: String) -> ! { - eprintln!("compose: FATAL {msg}"); - std::process::exit(1) -} - -// --------------------------------------------------------------------------- -// deterministic corpus: WHERE lane, value lanes, edge generator -// --------------------------------------------------------------------------- - -fn mix(x: u64, salt: u64) -> u64 { - let mut r = Rng::new(x ^ salt.wrapping_mul(0xD6E8_FEB8_6659_FD93)); - r.next_u64() -} - -/// WHERE lane: 21 hash bits of the id's 1024-id block, then the low 10 id bits. -fn where_val(id: u64) -> i32 { - ((((mix(id >> 10, 0xB10C) & 0x1F_FFFF) << 10) | (id & 1023)) & 0x7FFF_FFFF) as i32 -} -fn a_of(g: u64) -> i32 { - (mix(g, 0xA) % 1000) as i32 -} -fn b_of(g: u64) -> i32 { - (mix(g, 0xB) % 1000) as i32 -} - -#[derive(Clone, Copy)] -struct Graph { - n: u64, -} - -impl Graph { - fn edges_of(&self, s: u64, out: &mut Vec<(u64, u64)>) { - let deg = 4 + (mix(s, 0x51) % 9) as usize; - for k in 0..deg { - let r = mix(s, 0x100 + k as u64); - let t = if r & 7 != 0 { - ((s & !1023) + ((r >> 8) % 1024)) % self.n - } else { - (r >> 8) % self.n - }; - out.push((s, t)); - } - } -} - -fn fetch_edges(g: &Graph, members: &[u64]) -> Vec<(u64, u64)> { - let mut out = Vec::with_capacity(members.len() * 8 + 8); - for &s in members { - g.edges_of(s, &mut out); - } - out -} - -/// Oracle over the global edge list of `ids` (edges kept when the target is selected). -fn oracle_for(g: &Graph, ids: &[u64]) -> Oracle { - let set: HashSet = ids.iter().copied().collect(); - let mut edges: Vec<(u64, u64)> = Vec::new(); - let mut tmp: Vec<(u64, u64)> = Vec::new(); - for &s in ids { - tmp.clear(); - g.edges_of(s, &mut tmp); - for &(a, b) in &tmp { - if set.contains(&b) { - edges.push((a, b)); - } - } - } - oracle(&edges, &|x| a_of(x) < A_LT, &|x| b_of(x) < B_LT, &[]) -} - -// --------------------------------------------------------------------------- -// selection (discover) and partition -// --------------------------------------------------------------------------- - -struct Sel { - requested: usize, - ids: Vec, - scan_us: f64, - extract_us: f64, - oracle: Option, -} - -fn discover(lane: &[i32], live: &[u64], n: usize, sel: usize) -> Sel { - let mut tmp = lane.to_vec(); - let k = sel.min(n - 1); - tmp.select_nth_unstable(k); - let t = tmp[k]; - drop(tmp); - let mut pr = Prepared::new(Cmp::LtI32(t), Agg::Rows, n); - let mut out = vec![0u64; words_for(n)]; - let runs = if n >= 5_000_000 { 5 } else { 9 }; - let scan = time_runs(runs, || pr.keep(lane, live, &mut out)); - let mut ids: Vec = Vec::new(); - let ext = time_runs(3, || { - ids.clear(); - for_each_bit(&out, |r| ids.push(r as u64)); - }); - if popcount(&out) as usize != ids.len() { - die("discover: mask popcount != extracted ids".to_string()); - } - Sel { - requested: sel, - ids, - scan_us: stats(&scan).0, - extract_us: stats(&ext).0, - oracle: None, - } -} - -#[derive(Clone, Copy, PartialEq, Eq, Debug)] -enum Part { - Contig, - Scatter, -} -impl Part { - fn name(self) -> &'static str { - match self { - Part::Contig => "contig", - Part::Scatter => "scatter", - } - } -} - -fn partition(ids: &[u64], d: usize, part: Part) -> Vec> { - match part { - Part::Contig => { - let per = ids.len().div_ceil(d); - ids.chunks(per).map(|c| c.to_vec()).collect() - } - Part::Scatter => { - let mut v: Vec> = (0..d).map(|_| Vec::with_capacity(ids.len() / d + 1)).collect(); - for (i, &g) in ids.iter().enumerate() { - v[i % d].push(g); - } - v - } - } -} - -// --------------------------------------------------------------------------- -// costs -// --------------------------------------------------------------------------- - -#[derive(Default)] -struct Cost { - st: StageTimes, - partition: f64, - fetch: f64, - route: f64, -} - -fn lap(slot: &mut f64, f: impl FnOnce() -> R) -> R { - let t = Instant::now(); - let r = f(); - *slot += t.elapsed().as_nanos() as f64 / 1000.0; - r -} - -impl Cost { - fn build_total(&self) -> f64 { - self.fetch + self.route + self.st.us(Stage::Bind) + self.st.us(Stage::Project) - } -} - -fn med(cs: &[Cost], f: impl Fn(&Cost) -> f64) -> f64 { - let v: Vec = cs.iter().map(f).collect(); - stats(&v).0 -} - -// --------------------------------------------------------------------------- -// routing across sets (arm A/B/C through the lib batch routers) -// --------------------------------------------------------------------------- - -fn route_to(arm: Arm, ws: &WorkingSet, frame: &Frame, ix: Option<&CoordIndex>, ep: &[u64], out: &mut [u32]) -> RouteStats { - match arm { - Arm::A => route_batch_a_in(&ws.table, frame, &ws.tile_ids, ws.tw(), ep, out) - .unwrap_or_else(|e| die(format!("route A: {e:?}"))), - Arm::B => route_batch_b_in(&ws.table, frame, &ws.tile_ids, ws.tw(), ep, out) - .unwrap_or_else(|e| die(format!("route B: {e:?}"))), - Arm::C => route_batch_c(ix.unwrap_or_else(|| die("arm C index missing".to_string())), frame, ep, out) - .unwrap_or_else(|e| die(format!("route C: {e:?}"))), - } -} - -/// Route both endpoints of `edges` (all sources are members of `order[0]`): the -/// own set first, then each remaining set for the still-unmapped targets. The -/// first set that maps an id owns it. Returns (routed pairs, dropped (src, dst gid)). -fn route_edges( - arm: Arm, - order: &[usize], - sets: &[WorkingSet], - frames: &[Frame], - idx: &[CoordIndex], - edges: &[(u64, u64)], - calls: &mut u64, -) -> (Vec<(u32, u32)>, Vec<(u32, u64)>) { - let own = order[0]; - let mut ep: Vec = Vec::with_capacity(edges.len() * 2); - for &(s, d) in edges { - ep.push(s); - ep.push(d); - } - let mut out = vec![0u32; ep.len()]; - let st = route_to(arm, &sets[own], &frames[own], idx.get(own), &ep, &mut out); - *calls += st.locate_calls; - let mut dst = vec![UNROUTED; edges.len()]; - let mut rem: Vec = Vec::new(); - for e in 0..edges.len() { - let (cs, cd) = (out[2 * e], out[2 * e + 1]); - if cs >= COORD_AMBIGUOUS { - die(format!("source {:#x} not mapped by its own set {own}", edges[e].0)); - } - if cd == COORD_AMBIGUOUS { - die(format!("target {:#x} ambiguous in set {own}", edges[e].1)); - } - if cd == COORD_UNMAPPED { - rem.push(e); - } else { - dst[e] = noderef(own, cd as usize); - } - } - for &j in &order[1..] { - if rem.is_empty() { - break; - } - let sub: Vec = rem.iter().map(|&e| edges[e].1).collect(); - let mut so = vec![0u32; sub.len()]; - let st = route_to(arm, &sets[j], &frames[j], idx.get(j), &sub, &mut so); - *calls += st.locate_calls; - let mut next: Vec = Vec::new(); - for (t, &e) in rem.iter().enumerate() { - match so[t] { - COORD_UNMAPPED => next.push(e), - COORD_AMBIGUOUS => die(format!("target {:#x} ambiguous in set {j}", edges[e].1)), - c => dst[e] = noderef(j, c as usize), - } - } - rem = next; - } - let mut pairs: Vec<(u32, u32)> = Vec::with_capacity(edges.len()); - let mut dropped: Vec<(u32, u64)> = Vec::new(); - for e in 0..edges.len() { - let s = noderef(own, out[2 * e] as usize); - if dst[e] == UNROUTED { - dropped.push((s, edges[e].1)); - } else { - pairs.push((s, dst[e])); - } - } - (pairs, dropped) -} - -// --------------------------------------------------------------------------- -// preparation: per-set CSR + presence + lanes + masks; the fold plan -// --------------------------------------------------------------------------- - -struct SetData { - g: CoordCsr, - v: Vec, - la: Vec, - lb: Vec, - ma: Vec, - mb: Vec, -} - -fn prep_set(i: usize, ws: &WorkingSet, frame: &Frame, pairs: &[(u32, u32)]) -> SetData { - let n = ws.n_coords(); - let g = CoordCsr::from_routed(i, n, pairs); - let v = ws.valid_mask(frame); - let la = ws.gather_lane(frame, a_of); - let lb = ws.gather_lane(frame, b_of); - let mut ma = vec![0u64; words_for(n)]; - let mut mb = vec![0u64; words_for(n)]; - virtual_where(&la, A_LT, &v, &mut ma); - virtual_where(&lb, B_LT, &v, &mut mb); - SetData { g, v, la, lb, ma, mb } -} - -fn assemble(sets: &[WorkingSet], frames: Vec, pairs: &[Vec<(u32, u32)>], stats: BindStats) -> Binding { - let mut b = Binding { - frames, - graphs: Vec::new(), - valid: Vec::new(), - lane_a: Vec::new(), - lane_b: Vec::new(), - a: Vec::new(), - b: Vec::new(), - stats, - }; - for i in 0..sets.len() { - let sd = prep_set(i, &sets[i], &b.frames[i], &pairs[i]); - b.graphs.push(sd.g); - b.valid.push(sd.v); - b.lane_a.push(sd.la); - b.lane_b.push(sd.lb); - b.a.push(sd.ma); - b.b.push(sd.mb); - } - b -} - -/// Reusable fold buffers, sized once per binding: A restricted to each set k, the -/// per-k reach masks, the union accumulator, the per-k parts. -struct Plan { - ak: Vec>>, - reach: Vec>>, - uni: Vec>, - tmp: Vec>, - w2p: Vec, - w6p: Vec, - w5p: Vec, - ovf: bool, -} - -impl Plan { - fn new(b: &Binding) -> Plan { - let d = b.graphs.len(); - let sizes: Vec = b.graphs.iter().map(|g| g.n).collect(); - let zero = || sizes.iter().map(|&n| vec![0u64; words_for(n)]).collect::>(); - let ak: Vec>> = (0..d) - .map(|k| { - (0..d) - .map(|si| if si == k { b.a[si].clone() } else { vec![0u64; words_for(sizes[si])] }) - .collect() - }) - .collect(); - Plan { - ak, - reach: (0..d).map(|_| zero()).collect(), - uni: zero(), - tmp: zero(), - w2p: vec![0; d], - w6p: vec![0; d], - w5p: vec![0; d], - ovf: false, - } - } -} - -#[derive(Clone, Copy, Debug)] -struct Composed { - exists: bool, - count: Option, - bag: Option, - distinct: i64, - sum_distinct: Option, -} - -/// The per-set folds (warm, allocation-free). -fn fold(b: &Binding, p: &mut Plan) { - let g = &b.graphs; - p.ovf = false; - for k in 0..p.ak.len() { - p.w2p[k] = w2(g, &p.ak[k], &b.b); - match w6(g, &p.ak[k], None) { - Some(v) => p.w6p[k] = v, - None => { - p.ovf = true; - p.w6p[k] = 0; - } - } - step(g, &p.ak[k], &mut p.reach[k]); - p.w5p[k] = and_count(&p.reach[k], &b.b, &mut p.tmp); - } -} - -/// Combine the per-set parts with the proven laws (warm, allocation-free). -fn compose(b: &Binding, p: &mut Plan) -> Composed { - let exists = p.w2p.iter().any(|&c| c > 0); - let count = checked_sum(&p.w2p); - let bag = if p.ovf { None } else { checked_sum(&p.w6p) }; - for u in p.uni.iter_mut() { - u.fill(0); - } - for k in 0..p.reach.len() { - for si in 0..p.uni.len() { - ndarray::simd::mask_or_assign(&mut p.uni[si], &p.reach[k][si]); - } - } - let distinct = and_count(&p.uni, &b.b, &mut p.tmp); - let sum_distinct = checked_sum(&p.w5p); - Composed { exists, count, bag, distinct, sum_distinct } -} - -/// Monolithic reference folds over the same binding (untimed; cross-check only). -fn mono(b: &Binding) -> (i64, i64, Option) { - let sizes: Vec = b.graphs.iter().map(|g| g.n).collect(); - let mut sc = FoldScratch::new(&sizes); - (w2(&b.graphs, &b.a, &b.b), w5(&b.graphs, &b.a, &b.b, &mut sc), w6(&b.graphs, &b.a, None)) -} - -fn check(c: &Composed, o: &Oracle, m: (i64, i64, Option)) -> Vec { - let mut e = Vec::new(); - if c.count != Some(o.w2) { - e.push(format!("COUNT {:?} != oracle {}", c.count, o.w2)); - } - if c.exists != (o.w2 > 0) { - e.push(format!("EXISTS {} != oracle {}", c.exists, o.w2 > 0)); - } - if c.distinct != o.w5 { - e.push(format!("DISTINCT {} != oracle {}", c.distinct, o.w5)); - } - if c.bag != Some(o.w6) { - e.push(format!("BAG {:?} != oracle {}", c.bag, o.w6)); - } - if m.0 != o.w2 || m.1 != o.w5 || m.2 != Some(o.w6) { - e.push(format!("monolithic fold {m:?} != oracle")); - } - e -} - -// --------------------------------------------------------------------------- -// the built state: sets, routing indexes, routed pairs, dropped edges, binding -// --------------------------------------------------------------------------- - -struct Built { - arm: Arm, - src_base: u64, - sets: Vec, - idx: Vec, - pairs: Vec>, - dropped: Vec>, - bind: Binding, - plan: Plan, -} - -fn build(parts: &[Vec], arm: Arm, graph: &Graph, src_base: u64, cost: &mut Cost) -> Built { - let d = parts.len(); - let sets: Vec = cost.st.time(Stage::Bind, || { - parts - .iter() - .enumerate() - .map(|(i, p)| { - WorkingSet::build(p, src_base + i as u64).unwrap_or_else(|e| die(format!("WorkingSet::build: {e:?}"))) - }) - .collect() - }); - let edges: Vec> = lap(&mut cost.fetch, || parts.iter().map(|p| fetch_edges(graph, p)).collect()); - let frames: Vec = sets.iter().map(|s| s.seal()).collect(); - let mut calls = 0u64; - let (idx, pairs, dropped) = lap(&mut cost.route, || { - let idx: Vec = if arm == Arm::C { - sets.iter() - .zip(&frames) - .map(|(ws, f)| CoordIndex::build(ws, f).unwrap_or_else(|e| die(format!("CoordIndex::build: {e:?}")))) - .collect() - } else { - Vec::new() - }; - let mut pairs = Vec::with_capacity(d); - let mut dropped = Vec::with_capacity(d); - for i in 0..d { - let order: Vec = std::iter::once(i).chain((0..d).filter(|&j| j != i)).collect(); - let (p, dr) = route_edges(arm, &order, &sets, &frames, &idx, &edges[i], &mut calls); - pairs.push(p); - dropped.push(dr); - } - (idx, pairs, dropped) - }); - let n_edges: usize = edges.iter().map(|e| e.len()).sum(); - let n_dropped: usize = dropped.iter().map(|e| e.len()).sum(); - let stats = BindStats { locate_calls: calls, endpoints: 2 * n_edges, dropped_edges: n_dropped }; - drop(edges); - let bind = cost.st.time(Stage::Project, || assemble(&sets, frames, &pairs, stats)); - let plan = cost.st.time(Stage::Project, || Plan::new(&bind)); - Built { arm, src_base, sets, idx, pairs, dropped, bind, plan } -} - -impl Built { - /// Continuation: add one more set to an already-built composition. The new set - /// routes its own sources against every set; the earlier sets' dropped targets - /// are re-routed against the new set only; earlier CSRs that gained edges are - /// rebuilt from their routed pairs. Nothing already routed is routed again. - fn add_set(&mut self, ids: &[u64], graph: &Graph, cost: &mut Cost) { - let d = self.sets.len(); - let ws = cost.st.time(Stage::Bind, || { - WorkingSet::build(ids, self.src_base + d as u64).unwrap_or_else(|e| die(format!("add_set build: {e:?}"))) - }); - let frame = ws.seal(); - self.sets.push(ws); - self.bind.frames.push(frame); - let edges = lap(&mut cost.fetch, || fetch_edges(graph, ids)); - let mut gained = vec![0usize; d]; - let mut calls = 0u64; - let (np, nd) = lap(&mut cost.route, || { - if self.arm == Arm::C { - let ix = CoordIndex::build(&self.sets[d], &self.bind.frames[d]) - .unwrap_or_else(|e| die(format!("CoordIndex::build: {e:?}"))); - self.idx.push(ix); - } - let order: Vec = std::iter::once(d).chain(0..d).collect(); - let out = route_edges(self.arm, &order, &self.sets, &self.bind.frames, &self.idx, &edges, &mut calls); - for i in 0..d { - let dr = std::mem::take(&mut self.dropped[i]); - if dr.is_empty() { - continue; - } - let ep: Vec = dr.iter().map(|&(_, g)| g).collect(); - let mut so = vec![0u32; ep.len()]; - let st = route_to(self.arm, &self.sets[d], &self.bind.frames[d], self.idx.get(d), &ep, &mut so); - calls += st.locate_calls; - let mut keep: Vec<(u32, u64)> = Vec::new(); - for (t, &(s_nr, g)) in dr.iter().enumerate() { - match so[t] { - COORD_UNMAPPED => keep.push((s_nr, g)), - COORD_AMBIGUOUS => die(format!("target {g:#x} ambiguous in new set")), - c => { - self.pairs[i].push((s_nr, noderef(d, c as usize))); - gained[i] += 1; - } - } - } - self.dropped[i] = keep; - } - out - }); - self.pairs.push(np); - self.dropped.push(nd); - let (sets, bind, pairs) = (&self.sets, &mut self.bind, &self.pairs); - cost.st.time(Stage::Project, || { - let sd = prep_set(d, &sets[d], &bind.frames[d], &pairs[d]); - bind.graphs.push(sd.g); - bind.valid.push(sd.v); - bind.lane_a.push(sd.la); - bind.lane_b.push(sd.lb); - bind.a.push(sd.ma); - bind.b.push(sd.mb); - for i in 0..d { - if gained[i] > 0 { - bind.graphs[i] = CoordCsr::from_routed(i, sets[i].n_coords(), &pairs[i]); - } - } - bind.stats.locate_calls += calls; - bind.stats.endpoints += 2 * edges.len(); - }); - self.bind.stats.dropped_edges = self.dropped.iter().map(|v| v.len()).sum(); - self.plan = cost.st.time(Stage::Project, || Plan::new(&self.bind)); - } -} - -// --------------------------------------------------------------------------- -// one case -// --------------------------------------------------------------------------- - -#[derive(Clone, Copy)] -struct CaseSpec { - sel: usize, - d: usize, - part: Part, -} - -#[derive(Clone)] -struct Res { - sel_req: usize, - sel_got: usize, - d: usize, - part: Part, - discover_scan: f64, - discover_extract: f64, - partition: f64, - fetch: f64, - bind: f64, - route: f64, - prep: f64, - fold_total: f64, - fold_per_set: f64, - compose: f64, - disjoint: f64, - cont: f64, - rebuild: f64, - retained: usize, - peak: usize, - per_set_bytes: usize, - warm_calls: usize, - warm_bytes: usize, - edges: usize, - dropped: usize, - cross: usize, - locate_calls: u64, - ans: Composed, - sum_distinct_wrong: bool, - ok: bool, -} - -impl Res { - fn discover(&self) -> f64 { - self.discover_scan + self.discover_extract - } - /// Everything except discover: the cost once the candidate ids are given. - fn rest(&self) -> f64 { - self.partition + self.fetch + self.bind + self.route + self.prep + self.fold_total + self.compose - } - fn key(&self) -> (usize, usize, Part) { - (self.sel_req, self.d, self.part) - } -} - -fn run_case(sel: &mut Sel, spec: &CaseSpec, arm: Arm, graph: &Graph) -> Res { - let reps = if sel.requested >= 500_000 { - 1 - } else if sel.requested >= 100_000 { - 3 - } else { - 5 - }; - let warm_runs = if sel.requested >= 500_000 { 5 } else { 11 }; - let mut costs: Vec = Vec::new(); - let mut built: Option = None; - let (mut retained, mut peak) = (0usize, 0usize); - let mut dcount = spec.d; - for _ in 0..reps { - drop(built.take()); - let mut cost = Cost::default(); - let parts = lap(&mut cost.partition, || partition(&sel.ids, spec.d, spec.part)); - dcount = parts.len(); - let live0 = live_bytes(); - reset_peak(); - let b = build(&parts, arm, graph, 1000, &mut cost); - retained = live_bytes().saturating_sub(live0); - peak = peak_bytes().saturating_sub(live0); - built = Some(b); - costs.push(cost); - } - let mut b = built.unwrap_or_else(|| die("no build".to_string())); - let d = dcount; - - // oracle (cached per selection, outside every timed region) - let ids_len = sel.ids.len(); - if sel.oracle.is_none() { - sel.oracle = Some(oracle_for(graph, &sel.ids)); - } - let orc = sel.oracle.unwrap_or_else(|| die("oracle".to_string())); - - // disjointness guard (cold) - let refs: Vec<&WorkingSet> = b.sets.iter().collect(); - let t = Instant::now(); - let uc = union_check(&refs); - let disjoint = t.elapsed().as_nanos() as f64 / 1000.0; - drop(refs); - if uc != Ok(ids_len) { - die(format!("union_check on a disjoint partition returned {uc:?}, expected Ok({ids_len})")); - } - - // warm: fold, compose, allocations - fold(&b.bind, &mut b.plan); - let ans = compose(&b.bind, &mut b.plan); - let errs = check(&ans, &orc, mono(&b.bind)); - for e in &errs { - println!(" MISMATCH sel={} D={} {}: {e}", spec.sel, d, spec.part.name()); - } - let (c0, y0) = (alloc_calls(), alloc_bytes()); - fold(&b.bind, &mut b.plan); - black_box(compose(&b.bind, &mut b.plan)); - let (warm_calls, warm_bytes) = (alloc_calls() - c0, alloc_bytes() - y0); - let fold_us = { - let (bind, plan) = (&b.bind, &mut b.plan); - stats(&time_runs(warm_runs, || fold(bind, plan))).0 - }; - let compose_us = { - let (bind, plan) = (&b.bind, &mut b.plan); - stats(&time_runs(warm_runs, || { - black_box(compose(bind, plan)); - })) - .0 - }; - - let edges: usize = b.bind.graphs.iter().map(|g| g.edges()).sum(); - let cross: usize = b - .bind - .graphs - .iter() - .map(|g| g.tgt.iter().filter(|&&t| t & CROSS != 0).count()) - .sum(); - let dropped = b.bind.stats.dropped_edges; - let locate_calls = b.bind.stats.locate_calls; - - // continuation: the D-th set given D-1 built vs a full rebuild (contig only) - let (mut cont, mut rebuild) = (f64::NAN, f64::NAN); - let mut cont_ok = true; - if d >= 2 && spec.part == Part::Contig { - let (mut cs, mut rs) = (Vec::new(), Vec::new()); - for r in 0..reps { - let parts = partition(&sel.ids, spec.d, spec.part); - let mut c0 = Cost::default(); - let mut base = build(&parts[..d - 1], arm, graph, 2000, &mut c0); - let mut c1 = Cost::default(); - base.add_set(&parts[d - 1], graph, &mut c1); - cs.push(c1.build_total()); - if r + 1 == reps { - fold(&base.bind, &mut base.plan); - let a2 = compose(&base.bind, &mut base.plan); - let e2 = check(&a2, &orc, mono(&base.bind)); - for e in &e2 { - println!(" MISMATCH (continuation) sel={} D={d}: {e}", spec.sel); - } - cont_ok = e2.is_empty(); - } - drop(base); - let mut c2 = Cost::default(); - let full = build(&parts, arm, graph, 3000, &mut c2); - rs.push(c2.build_total()); - drop(full); - } - cont = stats(&cs).0; - rebuild = stats(&rs).0; - } - - Res { - sel_req: spec.sel, - sel_got: ids_len, - d, - part: spec.part, - discover_scan: sel.scan_us, - discover_extract: sel.extract_us, - partition: med(&costs, |c| c.partition), - fetch: med(&costs, |c| c.fetch), - bind: med(&costs, |c| c.st.us(Stage::Bind)), - route: med(&costs, |c| c.route), - prep: med(&costs, |c| c.st.us(Stage::Project)), - fold_total: fold_us, - fold_per_set: fold_us / d as f64, - compose: compose_us, - disjoint, - cont, - rebuild, - retained, - peak, - per_set_bytes: retained / d, - warm_calls, - warm_bytes, - edges, - dropped, - cross, - locate_calls, - ans, - sum_distinct_wrong: ans.sum_distinct != Some(ans.distinct), - ok: errs.is_empty() && cont_ok, - } -} - -// --------------------------------------------------------------------------- -// refusals and the WorkingSet::extend micro -// --------------------------------------------------------------------------- - -struct Refusals { - json: String, - ok: bool, -} - -fn refusals(cand: &[u64], arm: Arm, graph: &Graph) -> Refusals { - let mut ok = true; - let mut js = String::new(); - let mut note = |name: &str, fired: bool, paired: bool, detail: String, js: &mut String| { - let pass = fired && paired; - ok &= pass; - println!(" refusal {name}: {} ({detail})", if pass { "FIRES" } else { "FAILED" }); - if !js.is_empty() { - js.push(','); - } - write!(js, "\"{name}\":{{\"fires\":{fired},\"control_passes\":{paired},\"detail\":\"{detail}\"}}").unwrap(); - }; - - // 1. more than 65,536 ids into one working set -> TooMany, never truncated - let big: Vec = (0..(CAP as u64 + 1)).collect(); - let r_big = WorkingSet::build(&big, 9000); - let fired = matches!(r_big, Err(WsError::Map(MapRefusal::TooMany))); - let full = WorkingSet::build(&big[..CAP], 9001); - let control = full.is_ok(); - let mut ext_fired = false; - if let Ok(mut w) = full { - ext_fired = matches!(w.extend(&[999_999_999]), Err(WsError::Map(MapRefusal::TooMany))); - } - note( - "too_many", - fired && ext_fired, - control, - format!("build(65537)->TooMany {fired}; extend(full set)->TooMany {ext_fired}; build(65536) ok {control}"), - &mut js, - ); - - // 2. an id present in two sets: union_check refuses; the sum is shown wrong - let c = &cand[..5000.min(cand.len())]; - let overlap_parts = vec![c[..3000].to_vec(), c[2000..5000].to_vec()]; - let mut cost = Cost::default(); - let mut ob = build(&overlap_parts, arm, graph, 7000, &mut cost); - let refs: Vec<&WorkingSet> = ob.sets.iter().collect(); - let uc = union_check(&refs); - drop(refs); - let uc_fired = matches!(uc, Err(g) if c[2000..3000].binary_search(&g).is_ok()); - fold(&ob.bind, &mut ob.plan); - let wrong = compose(&ob.bind, &mut ob.plan); - let want = oracle_for(graph, c); - let sum_wrong = wrong.count != Some(want.w2) && wrong.distinct != want.w5 && wrong.bag != Some(want.w6); - let disjoint_parts = vec![c[..2500].to_vec(), c[2500..].to_vec()]; - let mut db = build(&disjoint_parts, arm, graph, 7100, &mut cost); - let drefs: Vec<&WorkingSet> = db.sets.iter().collect(); - let duc = union_check(&drefs); - drop(drefs); - fold(&db.bind, &mut db.plan); - let good = compose(&db.bind, &mut db.plan); - let control = duc == Ok(5000) && check(&good, &want, mono(&db.bind)).is_empty(); - note( - "id_in_two_sets", - uc_fired && sum_wrong, - control, - format!( - "union_check overlapping={uc:?}; naive composed COUNT {:?}/DISTINCT {}/BAG {:?} vs oracle {}/{}/{}; disjoint control union_check={duc:?} and composed==oracle", - wrong.count, wrong.distinct, wrong.bag, want.w2, want.w5, want.w6 - ), - &mut js, - ); - - // 3. checked_sum: overflow -> None (it does not see overlap; union_check does) - let ovf = checked_sum(&[i64::MAX, 1]); - let fine = checked_sum(&[1, 2, 3]); - note( - "checked_sum_overflow", - ovf.is_none(), - fine == Some(6), - format!("checked_sum([MAX,1])={ovf:?}; checked_sum([1,2,3])={fine:?}"), - &mut js, - ); - - // 4. stale binding / index after a set is replaced - let s = &cand[..4000.min(cand.len())]; - let sp = vec![s[..2000].to_vec(), s[2000..].to_vec()]; - let mut sb = build(&sp, arm, graph, 7200, &mut cost); - let refs: Vec<&WorkingSet> = sb.sets.iter().collect(); - let fresh_ok = sb.bind.guard(&refs, true).is_ok(); - drop(refs); - let f0 = sb.sets[0].seal(); - let mut t0 = sb.sets[0].table.map(&f0, 0).expect("tile 0").globals().to_vec(); - t0.reverse(); - sb.sets[0].replace_tile(0, &t0).expect("replace tile"); - let refs: Vec<&WorkingSet> = sb.sets.iter().collect(); - let stale = sb.bind.guard(&refs, true); - let off = sb.bind.guard(&refs, false); - let nf = sb.sets[0].seal(); - let idx_stale = if arm == Arm::C { - sb.idx[0].lookup(&nf, s[0]) == Err(CRefusal::StaleIndex) - } else { - true - }; - let fired = matches!(stale, Err(BindError::Stale(0))) && idx_stale; - note( - "stale_binding", - fired, - fresh_ok && off.is_ok(), - format!("guard after replace_tile={stale:?}; arm-C index refuses new frame {idx_stale}; guard before replace ok {fresh_ok}; guard disabled lets it through {}", off.is_ok()), - &mut js, - ); - - Refusals { json: format!("{{{js}}}"), ok } -} - -fn extend_micro(cand: &[u64]) -> (String, bool) { - if cand.len() < 60_000 { - return ("null".to_string(), true); - } - let (base, extra) = (&cand[..50_000], &cand[50_000..60_000]); - let (mut ext, mut reb) = (Vec::new(), Vec::new()); - let mut ok = true; - let mut kept = true; - for _ in 0..11 { - let mut ws = WorkingSet::build(base, 8000).unwrap_or_else(|e| die(format!("{e:?}"))); - let old = ws.seal(); - let c_before = ws.coord_a(&old, base[123]).ok(); - let t = Instant::now(); - let n = ws.extend(extra).unwrap_or_else(|e| die(format!("extend: {e:?}"))); - ext.push(t.elapsed().as_nanos() as f64 / 1000.0); - let nf = ws.seal(); - kept &= c_before.is_some() - && c_before == ws.coord_a(&nf, base[123]).ok() - && ws.coord_a(&nf, extra[0]).ok() == Some(50_000) - && !old.same_issue(&nf) - && n > 0; - let t = Instant::now(); - let w2s = WorkingSet::build(&cand[..60_000], 8001).unwrap_or_else(|e| die(format!("{e:?}"))); - reb.push(t.elapsed().as_nanos() as f64 / 1000.0); - black_box(w2s); - } - ok &= kept; - let (e, r) = (stats(&ext).0, stats(&reb).0); - println!( - " WorkingSet::extend(+10000 onto 50000) {e:.1}us vs WorkingSet::build(60000) {r:.1}us; old coordinates kept and old frame stale: {kept}" - ); - ( - format!("{{\"extend_us\":{e:.3},\"rebuild_us\":{r:.3},\"added\":10000,\"base\":50000,\"coords_kept_old_frame_stale\":{kept}}}"), - ok, - ) -} - -// --------------------------------------------------------------------------- -// reporting -// --------------------------------------------------------------------------- - -fn jf(v: f64) -> String { - if v.is_nan() { - "null".to_string() - } else { - format!("{v:.3}") - } -} -fn cell(v: f64) -> String { - if v.is_nan() { - "-".to_string() - } else { - format!("{v:.1}") - } -} - -type Get = fn(&Res) -> f64; -fn metrics() -> Vec<(&'static str, Get)> { - vec![ - ("discover", |r| r.discover()), - ("partition", |r| r.partition), - ("fetch", |r| r.fetch), - ("bind", |r| r.bind), - ("route", |r| r.route), - ("prep", |r| r.prep), - ("fold_total", |r| r.fold_total), - ("fold_per_set", |r| r.fold_per_set), - ("compose", |r| r.compose), - ("continuation", |r| r.cont), - ("rebuild", |r| r.rebuild), - ("rest_given_ids", |r| r.rest()), - ] -} - -fn res_json(r: &Res) -> String { - let mut s = String::new(); - write!( - s, - "{{\"sel_requested\":{},\"sel_achieved\":{},\"d\":{},\"partition\":\"{}\",\ -\"discover_scan_us\":{},\"discover_extract_us\":{},\"partition_us\":{},\"fetch_us\":{},\"bind_us\":{},\"route_us\":{},\"prep_us\":{},\ -\"fold_total_us\":{},\"fold_per_set_us\":{},\"compose_us\":{},\"disjoint_check_us\":{},\"continuation_us\":{},\"rebuild_us\":{},\"rest_given_ids_us\":{},\ -\"fold_gate\":\"{}\",\"warm_alloc_calls\":{},\"warm_alloc_bytes\":{},\"retained_bytes\":{},\"peak_bytes\":{},\"per_set_bytes\":{},\ -\"edges\":{},\"dropped_edges\":{},\"cross_edges\":{},\"locate_calls\":{},\ -\"answers\":{{\"exists\":{},\"count_w2\":{},\"distinct_w5\":{},\"bag_w6\":{},\"sum_of_per_set_distinct_is_wrong\":{}}},\"oracle_ok\":{}}}", - r.sel_req, - r.sel_got, - r.d, - r.part.name(), - jf(r.discover_scan), - jf(r.discover_extract), - jf(r.partition), - jf(r.fetch), - jf(r.bind), - jf(r.route), - jf(r.prep), - jf(r.fold_total), - jf(r.fold_per_set), - jf(r.compose), - jf(r.disjoint), - jf(r.cont), - jf(r.rebuild), - jf(r.rest()), - gate_label(r.fold_per_set, false).trim(), - r.warm_calls, - r.warm_bytes, - r.retained, - r.peak, - r.per_set_bytes, - r.edges, - r.dropped, - r.cross, - r.locate_calls, - r.ans.exists, - r.ans.count.map_or("null".to_string(), |v| v.to_string()), - r.ans.distinct, - r.ans.bag.map_or("null".to_string(), |v| v.to_string()), - r.sum_distinct_wrong, - r.ok - ) - .unwrap(); - s -} - -fn print_table(n: usize, rs: &[Res], gates: &mut u32) { - println!("\n== N={n} (all times us; discover = WHERE scan + mask->ids, N-BOUND by design; rest = everything else given the ids) =="); - println!( - "{:>8} {:>2} {:<7} {:>9} {:>8} {:>9} {:>8} {:>9} {:>9} {:>9} {:>9} {:>8} {:>10} {:>10} {:>10} gate", - "sel", "D", "part", "discover", "partit", "fetch", "bind", "route", "prep", "fold/set", "fold_tot", "compose", "continue", "rebuild", "rest" - ); - for r in rs { - let g = gate_label(r.fold_per_set, false); - if !g.is_empty() { - *gates += 1; - } - println!( - "{:>8} {:>2} {:<7} {:>9} {:>8} {:>9} {:>8} {:>9} {:>9} {:>9} {:>9} {:>8} {:>10} {:>10} {:>10} {}{}", - r.sel_got, - r.d, - r.part.name(), - cell(r.discover()), - cell(r.partition), - cell(r.fetch), - cell(r.bind), - cell(r.route), - cell(r.prep), - cell(r.fold_per_set), - cell(r.fold_total), - cell(r.compose), - cell(r.cont), - cell(r.rebuild), - cell(r.rest()), - g, - if r.ok { "" } else { " MISMATCH" } - ); - } - println!(" (route/prep/bind/fetch/partition/continuation/rebuild are COLD, reported not gated; fold gate is per set, warm)"); - for r in rs { - println!( - " sel={:>8} D={:>2} {:<7} edges {:>9} cross {:>9} ({:>5.1}%) dropped {:>8} locate {:>10} warm allocs {} calls/{} B retained {:>10} B ({} B/set) peak {} B disjoint-check {:.1}us answers exists={} W2={:?} W5={} W6={:?} sum(per-set DISTINCT) wrong={}", - r.sel_got, - r.d, - r.part.name(), - r.edges, - r.cross, - 100.0 * r.cross as f64 / r.edges.max(1) as f64, - r.dropped, - r.locate_calls, - r.warm_calls, - r.warm_bytes, - r.retained, - r.per_set_bytes, - r.peak, - r.disjoint, - r.ans.exists, - r.ans.count, - r.ans.distinct, - r.ans.bag, - r.sum_distinct_wrong - ); - } -} - -fn slope(xs: &[f64], ys: &[f64]) -> f64 { - let n = xs.len() as f64; - let (mx, my) = (xs.iter().sum::() / n, ys.iter().sum::() / n); - let num: f64 = xs.iter().zip(ys).map(|(x, y)| (x - mx) * (y - my)).sum(); - let den: f64 = xs.iter().map(|x| (x - mx) * (x - mx)).sum(); - if den == 0.0 { - 0.0 - } else { - num / den - } -} - -/// Slope in D at fixed N and fixed |sel| = 50,000 (OLS, us per additional set). -fn d_slopes(n: usize, rs: &[Res]) -> String { - let mut js = String::new(); - println!("\n-- N={n}: slope in D at fixed |sel|=50,000 (us per added set; D8/D1 ratio) --"); - for part in [Part::Contig, Part::Scatter] { - let pts: Vec<&Res> = rs - .iter() - .filter(|r| r.sel_req == 50_000 && (r.part == part || r.d == 1)) - .collect(); - if pts.len() < 3 { - continue; - } - let xs: Vec = pts.iter().map(|r| r.d as f64).collect(); - let mut line = format!(" {:<7} D={:?}:", part.name(), pts.iter().map(|r| r.d).collect::>()); - let mut one = String::new(); - for (name, get) in metrics() { - if name == "discover" || name == "fold_per_set" { - continue; - } - let ys: Vec = pts.iter().map(|r| get(r)).collect(); - if ys.iter().any(|v| v.is_nan()) { - continue; - } - let sl = slope(&xs, &ys); - let ratio = ys[ys.len() - 1] / ys[0].max(1e-9); - write!(line, " {name} {sl:+.1}/set x{ratio:.1};").unwrap(); - if !one.is_empty() { - one.push(','); - } - write!(one, "\"{name}\":{{\"slope_us_per_set\":{sl:.3},\"ratio_dmax_over_d1\":{ratio:.3}}}").unwrap(); - } - println!("{line}"); - if !js.is_empty() { - js.push(','); - } - write!(js, "\"{}\":{{{one}}}", part.name()).unwrap(); - } - format!("{{{js}}}") -} - -fn scaling(all: &[(usize, Vec)]) -> String { - if all.len() < 2 { - return "null".to_string(); - } - let (lo, hi) = (&all[0], &all[all.len() - 1]); - println!("\n== SCALING CHECK: ratio of stage cost, N={} over N={} (flat = ~1; a stage > 1.5x and > 100us is CORPUS-BOUND) ==", hi.0, lo.0); - let mut js = String::new(); - let mut bound: Vec = Vec::new(); - for rl in &lo.1 { - let Some(rh) = hi.1.iter().find(|r| r.key() == rl.key()) else { continue }; - let mut line = format!("sel={:>8} D={:>2} {:<7}:", rl.sel_got, rl.d, rl.part.name()); - let mut one = String::new(); - for (name, get) in metrics() { - let (a, b) = (get(rl), get(rh)); - if a.is_nan() || b.is_nan() { - continue; - } - let ratio = b / a.max(1e-9); - let flag = name != "discover" && ratio > 1.5 && a.max(b) > 100.0; - if name == "discover" { - write!(line, " {name} x{ratio:.1}(scan, N-bound expected);").unwrap(); - } else if flag { - write!(line, " {name} x{ratio:.1} CORPUS-BOUND;").unwrap(); - bound.push(format!("{name}@sel={},D={},{}", rl.sel_got, rl.d, rl.part.name())); - } else { - write!(line, " {name} x{ratio:.2};").unwrap(); - } - if !one.is_empty() { - one.push(','); - } - write!(one, "\"{name}\":{{\"ratio\":{ratio:.3},\"corpus_bound\":{flag}}}").unwrap(); - } - println!("{line}"); - if !js.is_empty() { - js.push(','); - } - write!(js, "{{\"sel\":{},\"d\":{},\"partition\":\"{}\",\"stages\":{{{one}}}}}", rl.sel_got, rl.d, rl.part.name()).unwrap(); - } - if bound.is_empty() { - println!(" no stage other than discover tracks N"); - } else { - println!(" CORPUS-BOUND findings (reported, not failures): {}", bound.join(", ")); - } - format!("{{\"n_lo\":{},\"n_hi\":{},\"cases\":[{js}],\"corpus_bound\":{:?}}}", lo.0, hi.0, bound) -} - -// --------------------------------------------------------------------------- -// main -// --------------------------------------------------------------------------- - -fn case_list() -> Vec { - let mut v: Vec = Vec::new(); - for sel in [1_000usize, 50_000, 200_000, 1_000_000] { - let d = sel.div_ceil(CAP); - v.push(CaseSpec { sel, d, part: Part::Contig }); - if d >= 2 { - v.push(CaseSpec { sel, d, part: Part::Scatter }); - } - } - for d in [2usize, 4, 8] { - v.push(CaseSpec { sel: 50_000, d, part: Part::Contig }); - v.push(CaseSpec { sel: 50_000, d, part: Part::Scatter }); - } - v -} - -fn main() { - let args: Vec = std::env::args().collect(); - if args.len() < 2 || args[1].starts_with("--") { - eprintln!("usage: compose [--n 1000000|10000000]... [--arm A|B|C]"); - std::process::exit(2); - } - let out = args[1].clone(); - let mut sizes: Vec = Vec::new(); - let mut arm = Arm::C; - let mut i = 2; - while i < args.len() { - match args[i].as_str() { - "--n" if i + 1 < args.len() => { - sizes.push(args[i + 1].parse().expect("--n takes an integer")); - i += 2; - } - "--arm" if i + 1 < args.len() => { - arm = match args[i + 1].as_str() { - "A" => Arm::A, - "B" => Arm::B, - "C" => Arm::C, - other => die(format!("unknown arm {other}")), - }; - i += 2; - } - other => { - eprintln!("unknown argument {other}"); - std::process::exit(2); - } - } - } - if sizes.is_empty() { - sizes = vec![1_000_000, 10_000_000]; - } - sizes.sort_unstable(); - - let mut all: Vec<(usize, Vec)> = Vec::new(); - let mut failed = false; - let mut gates = 0u32; - for &n in &sizes { - println!("\n######## N={n} routing arm {} ########", arm.name()); - let graph = Graph { n: n as u64 }; - let lane: Vec = (0..n as u64).map(where_val).collect(); - let mut live = vec![u64::MAX; words_for(n)]; - if n % 64 != 0 { - let last = live.len() - 1; - live[last] = (1u64 << (n % 64)) - 1; - } - let mut sels: Vec = Vec::new(); - for sel in [1_000usize, 50_000, 200_000, 1_000_000] { - if sel < n { - let s = discover(&lane, &live, n, sel); - println!( - "discover |sel|={} achieved {}: scan {:.1}us + extract {:.1}us (N-bound by design)", - sel, - s.ids.len(), - s.scan_us, - s.extract_us - ); - sels.push(s); - } - } - drop(lane); - let mut rs: Vec = Vec::new(); - for spec in case_list() { - let Some(s) = sels.iter_mut().find(|s| s.requested == spec.sel) else { continue }; - println!("case sel={} D={} {} ...", spec.sel, spec.d, spec.part.name()); - let r = run_case(s, &spec, arm, &graph); - failed |= !r.ok; - rs.push(r); - } - print_table(n, &rs, &mut gates); - let slopes = d_slopes(n, &rs); - - println!("\n-- refusals and WorkingSet::extend (N={n}) --"); - let cand = sels - .iter() - .find(|s| s.requested == 200_000) - .map(|s| s.ids.clone()) - .unwrap_or_else(|| die("no 200k selection".to_string())); - let rf = refusals(&cand, arm, &graph); - let (ext_json, ext_ok) = extend_micro(&cand); - failed |= !rf.ok || !ext_ok; - - let dir = format!("{out}/compose/n{n}"); - std::fs::create_dir_all(&dir).expect("create out dir"); - let cases: Vec = rs.iter().map(res_json).collect(); - let js = format!( - "{{\"n\":{n},\"arm\":\"{}\",\"graph\":\"avg out-degree 8, 7/8 targets in the source's 1024-id block, 1/8 uniform\",\ -\"gate\":\"warm fold per set >= 1000us prints FAILED-GATE (reported)\",\"cases\":[{}],\"d_slopes\":{slopes},\"refusals\":{},\"extend_vs_rebuild\":{ext_json}}}\n", - arm.name(), - cases.join(","), - rf.json - ); - std::fs::write(format!("{dir}/compose.json"), js).expect("write compose.json"); - all.push((n, rs)); - } - - if all.len() >= 2 { - let sc = scaling(&all); - let dir = format!("{out}/compose"); - std::fs::create_dir_all(&dir).expect("create out dir"); - std::fs::write(format!("{dir}/scaling.json"), format!("{sc}\n")).expect("write scaling.json"); - } - println!("\ncompose: {gates} case(s) printed FAILED-GATE on the warm per-set fold (reported, not an exit code)"); - if failed { - println!("compose: FAILED (an answer differed from the oracle, or a refusal did not fire)"); - std::process::exit(1); - } - println!("compose: all composed answers equal the oracle; every refusal fired"); -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs deleted file mode 100644 index d990bb105..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/corrections.rs +++ /dev/null @@ -1,609 +0,0 @@ -//! LAB: D-GLOBAL-WHERE P1, three paired corrections (A/B over the SAME data and -//! the SAME answer). Every row is labelled `in-memory`. -//! -//! Lab only. Nothing here is a compiled or run result until the orchestrator -//! builds and runs it. The original probes (falsify_p1, project, compose, -//! where_k) and their timings are the baseline and are unchanged; no operand -//! here replaces an established physical representation. -//! -//! 1. ROUTE ONCE VS PER QUERY: Q in {1, 16, 256} queries over one selection. -//! `per_query` runs `Binding::prepare` (WorkingSet already built; routing + -//! CSR + lanes + masks) for every query. `reuse` prepares once, then per -//! query: `Binding::guard`, the virtual WHERE for A and B, the fold. -//! Reports amortized per-query cost, the break-even Q, and exercises a -//! stale reuse after `replace_tile` that `guard` must refuse. -//! 2. NDARRAY KERNELS VS HAND-WRITTEN LOOPS for the ordered u8 compare over a -//! packed u32 lane (4 x u8 per lane, project.rs layout, unchanged). -//! `handwritten` = project.rs `fill_lane` shift + mask + compare, copied -//! verbatim. `kernel_ternary_or` = existing `ndarray::simd` -//! `ternary_match_u32_to_mask` / `mask_or_assign` / `mask_not` composed -//! (value < c is the OR of at most 8 prefix matches). A DIRECT ordered -//! compare over a packed lane has NO-EXISTING-KERNEL (see main()). -//! 3. BORROWED LANE READS VS gather_lane COPIES: `copy` = `gather_lane` into a -//! Vec then `virtual_where`; `borrowed` = the fold reads the corpus lane in -//! place through the working set's own coordinate -> global pointer table -//! (`MapTable::map(..).globals()`), no new Vec of values. -//! -//! ORACLE: scalar loops over the LOGICAL formula; never timed; they read no -//! layout and no working set. Every A/B pair must give equal answers or the -//! binary exits 1. -//! -//! GATES: a warm in-fold value >= 1000 us prints FAILED-GATE (counted, -//! reported, exit code unchanged). Preparation values print COLD. -//! -//! NOT CLAIMED: absolute speed outside this host; that the generated graph or -//! lanes resemble a real corpus; that hand-written vs kernel ranking holds for -//! other shapes; anything on-disk or DuckDB. Preparation and per-query-route -//! costs are COLD (reported, not gates). -//! -//! Usage: `corrections [--n 1000000|10000000]... [--sel 20000]` -//! Writes `/corrections/n/corrections.json`. - -use std::collections::HashSet; -use std::time::Instant; - -use d_global_where_p1_probe::*; - -#[global_allocator] -static ALLOC: CountingAlloc = CountingAlloc; - -const LABEL: &str = "in-memory"; - -// --------------------------------------------------------------------------- -// deterministic data -// --------------------------------------------------------------------------- - -fn h(id: u64, j: u64) -> u64 { - let mut z = id.wrapping_mul(0x9E37_79B9_7F4A_7C15) ^ j.wrapping_mul(0xD6E8_FEB8_6659_FD93); - z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); - z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); - z ^ (z >> 31) -} - -/// Logical value of the corpus lanes (0..1000). -fn lane_val(id: u64, salt: u64) -> i32 { - (h(id, salt) % 1000) as i32 -} - -/// Logical u8 property `k` (0..4) of row `id`. -fn u8_val(id: u64, k: u32) -> u32 { - ((h(id, 200 + u64::from(k)) >> 8) % 256) as u32 -} - -struct Fixture { - n: usize, - ids: Vec, - edges: Vec<(u64, u64)>, - corpus_a: Vec, - corpus_b: Vec, -} - -fn build_fixture(n: usize, sel: usize) -> Fixture { - let sel = sel.min(MAX_TILES * 256).min(n); - let stride = (n / sel).max(1) as u64; - let ids: Vec = (0..sel as u64).map(|i| i * stride + h(i, 7) % stride).collect(); - let corpus_a: Vec = (0..n as u64).map(|g| lane_val(g, 100)).collect(); - let corpus_b: Vec = (0..n as u64).map(|g| lane_val(g, 101)).collect(); - let mut rng = Rng::new(SEED); - let mut edges: Vec<(u64, u64)> = Vec::with_capacity(sel * 8); - for i in 0..sel { - let deg = 4 + rng.below(9) as usize; - for _ in 0..deg { - let t = if rng.below(8) == 0 { - rng.below(n as u64) - } else { - ids[(i + rng.below(1024) as usize) % sel] - }; - edges.push((ids[i], t)); - } - } - Fixture { - n, - ids, - edges, - corpus_a, - corpus_b, - } -} - -// --------------------------------------------------------------------------- -// reporting -// --------------------------------------------------------------------------- - -#[derive(Default)] -struct Report { - rows: Vec, - failed_gates: usize, - ok: bool, -} - -impl Report { - fn new() -> Report { - Report { - ok: true, - ..Report::default() - } - } - - fn check(&mut self, what: &str, cond: bool) { - if cond { - println!(" [oracle ok ] {what}"); - } else { - println!(" [ORACLE FAIL] {what}"); - self.ok = false; - } - } - - /// One timed row. `cold` rows are labelled, never gated. - fn row(&mut self, group: &str, name: &str, samples: &[f64], cold: bool, alloc: (usize, usize), extra: &str) { - let (med, p10, p90) = stats(samples); - if med >= 1000.0 && !cold { - self.failed_gates += 1; - } - println!( - " [{LABEL}] {group:<14} {name:<30} med {} p10 {p10:.3}us p90 {p90:.3}us alloc {}B/{}calls {extra}", - fmt_us(med, cold), - alloc.0, - alloc.1 - ); - self.rows.push(format!( - "{{\"label\":\"{LABEL}\",\"group\":\"{group}\",\"name\":\"{name}\",\"median_us\":{med:.3},\ -\"p10_us\":{p10:.3},\"p90_us\":{p90:.3},\"cold\":{cold},\"failed_gate\":{},\"alloc_bytes\":{},\"alloc_calls\":{}{}}}", - med >= 1000.0 && !cold, - alloc.0, - alloc.1, - if extra.is_empty() { String::new() } else { format!(",\"note\":\"{extra}\"") } - )); - } - - fn note(&mut self, key: &str, value: String) { - println!(" [{LABEL}] {key} = {value}"); - self.rows.push(format!("{{\"label\":\"{LABEL}\",\"note\":\"{key}\",\"value\":\"{value}\"}}")); - } -} - -/// Bytes and calls allocated by `f` (one execution). -fn measure(f: impl FnOnce() -> R) -> ((usize, usize), R) { - let (b0, c0) = (alloc_bytes(), alloc_calls()); - let r = f(); - ((alloc_bytes() - b0, alloc_calls() - c0), r) -} - -// --------------------------------------------------------------------------- -// correction 1: route once vs per query -// --------------------------------------------------------------------------- - -fn thresholds(q: usize) -> (i32, i32) { - (100 + ((q * 37) % 800) as i32, 100 + ((q * 53) % 800) as i32) -} - -fn oracle_w2(fx: &Fixture, member: &HashSet, a_lt: i32, b_lt: i32) -> i64 { - let mut hits: HashSet = HashSet::new(); - for &(x, y) in &fx.edges { - if member.contains(&x) - && member.contains(&y) - && fx.corpus_a[x as usize] < a_lt - && fx.corpus_b[y as usize] < b_lt - { - hits.insert(x); - } - } - hits.len() as i64 -} - -fn correction_1(rep: &mut Report, fx: &Fixture) { - println!("correction 1: route once vs per query (sel {})", fx.ids.len()); - let ws = WorkingSet::build(&fx.ids, 1).expect("working set builds"); - let sizes = [ws.n_coords()]; - let a_of = |g: u64| fx.corpus_a[g as usize]; - let b_of = |g: u64| fx.corpus_b[g as usize]; - let member: HashSet = fx.ids.iter().copied().collect(); - let mut sc = FoldScratch::new(&sizes); - - // Component costs: P (prepare, cold), w (guard + two wheres), f (fold). - let (a0, b0) = thresholds(0); - let prep_samples = time_runs(5, || { - let b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, a0, b0).expect("prepare"); - std::hint::black_box(&b); - }); - let (prep_alloc, _) = measure(|| { - let b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, a0, b0).expect("prepare"); - std::hint::black_box(&b); - }); - rep.row("route1/part", "prepare (P)", &prep_samples, true, prep_alloc, "COLD"); - let p_us = stats(&prep_samples).0; - - let mut bind = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, a0, b0).expect("prepare"); - let (qa, qb) = thresholds(5); - let w_samples = time_runs(31, || { - bind.guard(&[&ws], true).expect("fresh binding is current"); - virtual_where(&bind.lane_a[0], qa, &bind.valid[0], &mut bind.a[0]); - bind.rewhere_b(qb); - }); - let (w_alloc, _) = measure(|| { - bind.guard(&[&ws], true).expect("fresh binding is current"); - virtual_where(&bind.lane_a[0], qa, &bind.valid[0], &mut bind.a[0]); - bind.rewhere_b(qb); - }); - rep.row("route1/part", "guard+where A+where B (w)", &w_samples, false, w_alloc, ""); - let w_us = stats(&w_samples).0; - - let f_samples = time_runs(31, || { - std::hint::black_box(w2_and(&bind.graphs, &bind.a, &bind.b, &mut sc)); - }); - let (f_alloc, _) = measure(|| std::hint::black_box(w2_and(&bind.graphs, &bind.a, &bind.b, &mut sc))); - rep.row("route1/part", "fold w2_and (f)", &f_samples, false, f_alloc, ""); - - // Break-even: reuse(Q) = P + Q (w + f), per_query(Q) = Q (P + f) - // => reuse <= per_query once Q >= P / (P - w). - let breakeven = if p_us > w_us { - format!("{:.3} (Q >= {})", p_us / (p_us - w_us), (p_us / (p_us - w_us)).ceil() as u64) - } else { - "never (P <= w)".to_string() - }; - rep.note("route1_break_even_Q", breakeven); - - for &q_count in &[1usize, 16, 256] { - let runs = match q_count { - 1 => 7, - 16 => 3, - _ => 1, - }; - let th: Vec<(i32, i32)> = (0..q_count).map(thresholds).collect(); - let mut ans_pq = vec![0i64; q_count]; - let mut ans_re = vec![0i64; q_count]; - - let pq_samples = time_runs(runs, || { - for (q, &(al, bl)) in th.iter().enumerate() { - let b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, al, bl).expect("prepare"); - ans_pq[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); - } - }); - let re_samples = time_runs(runs, || { - let (al0, bl0) = th[0]; - let mut b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, al0, bl0).expect("prepare"); - for (q, &(al, bl)) in th.iter().enumerate() { - b.guard(&[&ws], true).expect("reuse is legal while the frame is current"); - virtual_where(&b.lane_a[0], al, &b.valid[0], &mut b.a[0]); - b.rewhere_b(bl); - ans_re[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); - } - }); - // Reuse per-query warm part only (prepare excluded): guard + where + fold. - let mut b = Binding::prepare(&[&ws], &fx.edges, Arm::B, &a_of, &b_of, th[0].0, th[0].1).expect("prepare"); - let mut ans_warm = vec![0i64; q_count]; - let warm_samples = time_runs(runs.max(3), || { - for (q, &(al, bl)) in th.iter().enumerate() { - b.guard(&[&ws], true).expect("current"); - virtual_where(&b.lane_a[0], al, &b.valid[0], &mut b.a[0]); - b.rewhere_b(bl); - ans_warm[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); - } - }); - let (warm_alloc, _) = measure(|| { - for (q, &(al, bl)) in th.iter().enumerate() { - b.guard(&[&ws], true).expect("current"); - virtual_where(&b.lane_a[0], al, &b.valid[0], &mut b.a[0]); - b.rewhere_b(bl); - ans_warm[q] = w2_and(&b.graphs, &b.a, &b.b, &mut sc); - } - }); - - let per_q = |s: &[f64]| s.iter().map(|v| v / q_count as f64).collect::>(); - // Per-query route includes preparation: COLD. Reuse total includes one - // preparation: COLD. Reuse warm part is the in-fold figure: gated. - rep.row("route1", &format!("per_query Q={q_count} (per query)"), &per_q(&pq_samples), true, (0, 0), "includes prepare"); - rep.row("route1", &format!("reuse Q={q_count} (per query)"), &per_q(&re_samples), true, (0, 0), "includes 1 prepare"); - rep.row("route1", &format!("reuse warm Q={q_count} (per query)"), &per_q(&warm_samples), false, (warm_alloc.0 / q_count, warm_alloc.1 / q_count), "no prepare"); - - // Oracle on every query (or a stride for Q=256 to bound the oracle time). - let step = if q_count > 16 { 16 } else { 1 }; - let mut all = ans_pq == ans_re && ans_pq == ans_warm; - for q in (0..q_count).step_by(step) { - all &= oracle_w2(fx, &member, th[q].0, th[q].1) == ans_pq[q]; - } - rep.check(&format!("route1 Q={q_count}: per_query == reuse == oracle (oracle every {step}th query)"), all); - } - - // Stale reuse must be refused by Binding::guard after replace_tile. - let small: Vec = fx.ids.iter().copied().take(2048).collect(); - let small_set: HashSet = small.iter().copied().collect(); - let small_edges: Vec<(u64, u64)> = fx - .edges - .iter() - .copied() - .filter(|(x, y)| small_set.contains(x) && small_set.contains(y)) - .collect(); - let mut sws = WorkingSet::build(&small, 9).expect("small set builds"); - let sb = Binding::prepare(&[&sws], &small_edges, Arm::B, &a_of, &b_of, 500, 500).expect("prepare small"); - let mut ssc = FoldScratch::new(&[sws.n_coords()]); - let before = w2_and(&sb.graphs, &sb.a, &sb.b, &mut ssc); - rep.check("route1 stale: guard accepts the fresh binding", sb.guard(&[&sws], true).is_ok()); - let frame = sws.seal(); - let mut t0: Vec = sws.table.map(&frame, 0).expect("tile 0").globals().to_vec(); - t0.reverse(); - sws.replace_tile(0, &t0).expect("replace_tile"); - let refused = matches!(sb.guard(&[&sws], true), Err(BindError::Stale(0))); - rep.check("route1 stale: guard REFUSES the binding after replace_tile", refused); - rep.check("route1 stale: disabled guard would NOT refuse (guard is load-bearing)", sb.guard(&[&sws], false).is_ok()); - let fresh = Binding::prepare(&[&sws], &small_edges, Arm::B, &a_of, &b_of, 500, 500).expect("re-prepare"); - let mut fsc = FoldScratch::new(&[sws.n_coords()]); - let after_fresh = w2_and(&fresh.graphs, &fresh.a, &fresh.b, &mut fsc); - rep.check("route1 stale: a fresh prepare after replace gives the oracle answer", { - let m: HashSet = small.iter().copied().collect(); - let mut hits: HashSet = HashSet::new(); - for &(x, y) in &small_edges { - if m.contains(&x) && m.contains(&y) && fx.corpus_a[x as usize] < 500 && fx.corpus_b[y as usize] < 500 { - hits.insert(x); - } - } - hits.len() as i64 == after_fresh && before == after_fresh - }); - // Informational only: the stale binding's own fold still reads its old coordinates. - let stale_answer = w2_and(&sb.graphs, &sb.a, &sb.b, &mut ssc); - rep.note("route1_stale_fold_answer_unguarded", format!("{stale_answer} (reported, equals fresh {after_fresh}: {})", stale_answer == after_fresh)); -} - -// --------------------------------------------------------------------------- -// correction 2: ndarray kernels vs hand-written packed u8 compare -// --------------------------------------------------------------------------- - -#[derive(Clone, Copy)] -enum Op { - Lt, - Ge, -} - -/// project.rs:513-522 `fill_lane`, verbatim: one output word per 64 rows; -/// shift + mask + compare. -fn fill_lane(buf: &mut [u64], lane: &[u32], shift: u32, wmask: u32, test: impl Fn(u32) -> bool) { - for (w, chunk) in lane.chunks(64).enumerate() { - let mut word = 0u64; - for (b, &x) in chunk.iter().enumerate() { - word |= u64::from(test((x >> shift) & wmask)) << b; - } - buf[w] = word; - } -} - -/// The PackU8 arm of project.rs:526-533 (`Op::Lt` / `Op::Ge`). -fn handwritten(p: &[u32], shift: u32, op: Op, c: u32, out: &mut [u64]) { - match op { - Op::Lt => fill_lane(out, p, shift, 0xFF, |e| e < c), - Op::Ge => fill_lane(out, p, shift, 0xFF, |e| e >= c), - } -} - -/// `field < c` as the OR of prefix matches over EXISTING ndarray::simd words: -/// for every set bit `b` of `c`, the field's bits `7..=b` equal `c`'s bits -/// above `b` followed by a 0 at `b`. At most 8 `ternary_match_u32_to_mask` -/// passes (`popcount(c)`); `acc` is fully overwritten. -fn kernel_lt(p: &[u32], shift: u32, c: u32, acc: &mut [u64], tmp: &mut [u64]) { - acc.fill(0); - let mut first = true; - for b in (0..8u32).rev() { - if (c >> b) & 1 == 1 { - let high = (c >> (b + 1)) << (b + 1); - let care8 = 0xFFu32 & !((1u32 << b) - 1); - let (pattern, care) = (high << shift, care8 << shift); - if first { - ndarray::simd::ternary_match_u32_to_mask(p, pattern, care, acc); - first = false; - } else { - ndarray::simd::ternary_match_u32_to_mask(p, pattern, care, tmp); - ndarray::simd::mask_or_assign(acc, tmp); - } - } - } -} - -fn correction_2(rep: &mut Report, fx: &Fixture) { - let n = fx.n; - println!("correction 2: ndarray kernels vs hand-written packed u8 compare (n {n})"); - let mut p = vec![0u32; n]; - for (id, slot) in p.iter_mut().enumerate() { - for k in 0..4u32 { - *slot |= u8_val(id as u64, k) << (8 * k); - } - } - let words = words_for(n); - let mut hand = vec![0u64; words]; - let mut kern = vec![0u64; words]; - let mut acc = vec![0u64; words]; - let mut tmp = vec![0u64; words]; - - // (name, field k, op, constant). Constants chosen by their set-bit count: - // 64 (1 pass), 170 (4 passes), 255 (8 passes). - let cases: [(&str, u32, Op, u32); 4] = [ - ("f0 < 64", 0, Op::Lt, 64), - ("f2 >= 170", 2, Op::Ge, 170), - ("f3 < 255", 3, Op::Lt, 255), - ("f1 >= 64", 1, Op::Ge, 64), - ]; - for &(name, k, op, c) in &cases { - let shift = 8 * k; - let oracle = (0..n as u64) - .filter(|&id| { - let v = u8_val(id, k); - match op { - Op::Lt => v < c, - Op::Ge => v >= c, - } - }) - .count() as u64; - - let hand_s = time_runs(11, || { - handwritten(&p, shift, op, c, &mut hand); - std::hint::black_box(&hand); - }); - let (hand_a, _) = measure(|| handwritten(&p, shift, op, c, &mut hand)); - let run_kernel = |acc: &mut [u64], tmp: &mut [u64], kern: &mut [u64]| match op { - Op::Lt => kernel_lt(&p, shift, c, kern, tmp), - Op::Ge => { - kernel_lt(&p, shift, c, acc, tmp); - ndarray::simd::mask_not(acc, n, kern); - } - }; - let kern_s = time_runs(11, || { - run_kernel(&mut acc, &mut tmp, &mut kern); - std::hint::black_box(&kern); - }); - let (kern_a, _) = measure(|| run_kernel(&mut acc, &mut tmp, &mut kern)); - - let passes = c.count_ones(); - rep.row("kernel2", &format!("handwritten {name}"), &hand_s, false, hand_a, "project.rs fill_lane"); - rep.row( - "kernel2", - &format!("kernel_ternary_or {name}"), - &kern_s, - false, - kern_a, - &format!("{passes} ternary passes"), - ); - // The hand-written tail beyond n is never set (chunks of n); kernels clear it too. - let same = hand == kern; - rep.check( - &format!("kernel2 {name}: masks bit-identical, popcount hand {} kernel {} oracle {oracle}", popcount(&hand), popcount(&kern)), - same && popcount(&hand) == oracle && popcount(&kern) == oracle, - ); - } -} - -// --------------------------------------------------------------------------- -// correction 3: borrowed lane reads vs gather_lane copies -// --------------------------------------------------------------------------- - -/// The fold reads the corpus lane IN PLACE through the working set's own -/// coordinate -> global pointer table (`TileMap::globals`): no Vec of values, -/// the only write is the preallocated coordinate mask. -fn where_borrowed(ws: &WorkingSet, frame: &lance_graph_dt64::dr::Frame, corpus: &[i32], lt: i32, out: &mut [u64]) { - out.fill(0); - let tw = ws.tw(); - for (o, &t) in ws.tile_ids.iter().enumerate() { - if let Ok(view) = ws.table.map(frame, t) { - for (l, &g) in view.globals().iter().enumerate() { - if corpus[g as usize] < lt { - set_bit(out, o * tw + l); - } - } - } - } -} - -fn correction_3(rep: &mut Report, fx: &Fixture) { - println!("correction 3: borrowed lane reads vs gather_lane copies (sel {})", fx.ids.len()); - let ws = WorkingSet::build(&fx.ids, 1).expect("working set builds"); - let frame = ws.seal(); - let n_coords = ws.n_coords(); - let valid = ws.valid_mask(&frame); // preparation constant shared by the copy arm; excluded from its timing - let mut out_copy = vec![0u64; words_for(n_coords)]; - let mut out_borrow = vec![0u64; words_for(n_coords)]; - let corpus = &fx.corpus_a; - - for < in &[100i32, 500, 900] { - let oracle = fx.ids.iter().filter(|&&g| lane_val(g, 100) < lt).count() as u64; - - let copy_s = time_runs(21, || { - let lane = ws.gather_lane(&frame, |g| corpus[g as usize]); - virtual_where(&lane, lt, &valid, &mut out_copy); - std::hint::black_box(&out_copy); - }); - let (copy_alloc, _) = measure(|| { - let lane = ws.gather_lane(&frame, |g| corpus[g as usize]); - virtual_where(&lane, lt, &valid, &mut out_copy); - }); - let borrow_s = time_runs(21, || { - where_borrowed(&ws, &frame, corpus, lt, &mut out_borrow); - std::hint::black_box(&out_borrow); - }); - let (borrow_alloc, _) = measure(|| where_borrowed(&ws, &frame, corpus, lt, &mut out_borrow)); - - rep.row( - "borrow3", - &format!("copy gather_lane lt={lt}"), - ©_s, - false, - copy_alloc, - &format!("bytes_copied={}", n_coords * 4), - ); - rep.row("borrow3", &format!("borrowed in-place lt={lt}"), &borrow_s, false, borrow_alloc, "bytes_copied=0"); - rep.check( - &format!("borrow3 lt={lt}: masks identical, popcount copy {} borrowed {} oracle {oracle}", popcount(&out_copy), popcount(&out_borrow)), - out_copy == out_borrow && popcount(&out_copy) == oracle, - ); - } -} - -// --------------------------------------------------------------------------- -// driver -// --------------------------------------------------------------------------- - -fn run_size(out_dir: &str, n: usize, sel: usize) -> bool { - println!("== n = {n} sel = {sel} ({LABEL}) =="); - let t = Instant::now(); - let fx = build_fixture(n, sel); - println!(" fixture built in {:.3}us (COLD): {} ids, {} edges", t.elapsed().as_nanos() as f64 / 1000.0, fx.ids.len(), fx.edges.len()); - let mut rep = Report::new(); - correction_1(&mut rep, &fx); - correction_2(&mut rep, &fx); - correction_3(&mut rep, &fx); - - let dir = format!("{out_dir}/corrections/n{n}"); - std::fs::create_dir_all(&dir).expect("create output dir"); - let json = format!( - "{{\"lab\":true,\"label\":\"{LABEL}\",\"n\":{n},\"sel\":{},\"ok\":{},\"failed_gates\":{},\ -\"no_existing_kernel\":\"direct ordered u8 compare over a packed u32 lane\",\"rows\":[\n{}\n]}}\n", - fx.ids.len(), - rep.ok, - rep.failed_gates, - rep.rows.join(",\n") - ); - std::fs::write(format!("{dir}/corrections.json"), json).expect("write json"); - println!(" failed gates (reported, not exit code): {}", rep.failed_gates); - rep.ok -} - -fn main() { - let args: Vec = std::env::args().collect(); - if args.len() < 2 || args[1].starts_with("--") { - eprintln!("usage: corrections [--n 1000000|10000000]... [--sel 20000]"); - std::process::exit(2); - } - let out = args[1].clone(); - let mut sizes: Vec = Vec::new(); - let mut sel = 20_000usize; - let mut i = 2; - while i < args.len() { - match args[i].as_str() { - "--n" if i + 1 < args.len() => { - sizes.push(args[i + 1].parse().expect("--n takes an integer")); - i += 2; - } - "--sel" if i + 1 < args.len() => { - sel = args[i + 1].parse().expect("--sel takes an integer"); - i += 2; - } - other => { - eprintln!("unknown argument {other}"); - std::process::exit(2); - } - } - } - if sizes.is_empty() { - sizes = vec![1_000_000, 10_000_000]; - } - println!( - "NO-EXISTING-KERNEL: a DIRECT ordered u8 compare over a packed u32 lane. ndarray::simd lt_u8_to_mask/ge_u8_to_mask \ -read contiguous &[u8] (would compare all 4 fields per lane, interleaved); Quack Cmp has EqU32/NeU32/MatchU32 and \ -signed I32 orderings only. Arm kernel_ternary_or composes existing words (ternary_match_u32_to_mask, mask_or_assign, mask_not); nothing new is implemented." - ); - let mut ok = true; - for n in sizes { - ok &= run_size(&out, n, sel); - } - if !ok { - println!("CORRECTIONS FAILED: answer mismatch"); - std::process::exit(1); - } - println!("CORRECTIONS ALL ANSWERS MATCH THE ORACLE"); -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs deleted file mode 100644 index b11acdd94..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/falsify_p1.rs +++ /dev/null @@ -1,1304 +0,0 @@ -//! D-GLOBAL-WHERE P1, Part 1: falsifiers F1..F21 over working sets P (4 DR256 -//! tiles, 1,000 ids) and Q (2 tiles, 400 ids). -//! -//! `--disable dupcheck|framecheck|bindguard` compiles the named guard out of the -//! arm-C index / the binding guard; the named check must then report FAIL. -//! Exit 1 on any failed check. Lab only; nothing here is production. -//! -//! Fixture lanes: the fixture keeps `val: id -> (a, b)` (the SOURCE, oracle -//! side). Lane arrays the folds read are built at preparation by -//! `WorkingSet::gather_lane` in coordinate order; for a set built from a list -//! the coordinate is the list position, so a lane is the source lane in list -//! order. Folds never look an identity up. - -use std::collections::{HashMap, HashSet}; - -use d_global_where_p1_probe::*; -use lance_graph_contract::class_view::WideFieldMask; -use lance_graph_contract::set_rules::{Population, Truth}; -use lance_graph_dt64::dr::{Frame, FrameRefusal, LocateRefusal, MapRead, Scope}; -use lance_graph_dt64::{ - BindStore, ClassSchema, Extent, MethodBinding, MethodId, MethodRef, Refusal, SchemaRev, SigRev, ValueDemand, -}; - -#[global_allocator] -static ALLOC: CountingAlloc = CountingAlloc; - -const A_LT: i32 = 300; -const B_LT: i32 = 500; -const NOVAL: i32 = 1000; - -struct Tally { - pass: u32, - fail: u32, -} -impl Tally { - fn check(&mut self, id: &str, ok: bool, detail: String) { - if ok { - self.pass += 1; - } else { - self.fail += 1; - } - println!("{id} {} {detail}", if ok { "PASS" } else { "FAIL" }); - } -} - -struct Fx { - p: Vec, - q: Vec, - all: HashSet, - val: HashMap, - edges: Vec<(u64, u64)>, -} -impl Fx { - fn a(&self, g: u64) -> i32 { - self.val.get(&g).map_or(NOVAL, |v| v.0) - } - fn b(&self, g: u64) -> i32 { - self.val.get(&g).map_or(NOVAL, |v| v.1) - } -} - -fn fixture() -> Fx { - let mut rng = Rng::new(SEED); - let mut ids: Vec = Vec::new(); - let mut all = HashSet::new(); - while ids.len() < 1400 { - let g = rng.below(1 << 32); - if all.insert(g) { - ids.push(g); - } - } - let p = ids[..1000].to_vec(); - let q = ids[1000..].to_vec(); - let mut val = HashMap::new(); - for &g in &ids { - val.insert(g, (rng.below(1000) as i32, rng.below(1000) as i32)); - } - let mut edges = Vec::new(); - for (i, &s) in ids.iter().enumerate() { - let deg = rng.below(9) as usize; // mean 4 - let mut seen: HashSet = HashSet::new(); - let mut tries = 0; - while seen.len() < deg && tries < 100 { - tries += 1; - let d = if i < 1000 && rng.unit() >= 0.08 { - p[rng.below(1000) as usize] - } else { - q[rng.below(400) as usize] - }; - if d != s && seen.insert(d) { - edges.push((s, d)); - } - } - } - Fx { p, q, all, val, edges } -} - -fn sets(fx: &Fx) -> (WorkingSet, WorkingSet) { - ( - WorkingSet::build(&fx.p, 1).expect("P builds"), - WorkingSet::build(&fx.q, 2).expect("Q builds"), - ) -} - -fn bind(fx: &Fx, s: &[&WorkingSet], arm: Arm, a_lt: i32, b_lt: i32) -> Binding { - Binding::prepare(s, &fx.edges, arm, &|g| fx.a(g), &|g| fx.b(g), a_lt, b_lt).expect("bind") -} - -fn orc(fx: &Fx, a_lt: i32, b_lt: i32, del: &[(u64, u64)]) -> Oracle { - oracle(&fx.edges, &|g| fx.a(g) < a_lt, &|g| fx.b(g) < b_lt, del) -} - -fn scratch(b: &Binding) -> FoldScratch { - let sizes: Vec = b.graphs.iter().map(|g| g.n).collect(); - FoldScratch::new(&sizes) -} - -/// Every route of every workload; returns the CSR-route answers and the list -/// of internal route disagreements. -fn folds(b: &Binding) -> (Oracle, Vec) { - let mut sc = scratch(b); - let (g, a, bm) = (&b.graphs, &b.a, &b.b); - let mut bad = Vec::new(); - let w2d = w2(g, a, bm); - let w2a = w2_and(g, a, bm, &mut sc); - let w2x = w2_xor(g, a, bm, &mut sc); - if w2a != w2d || w2x != w2d { - bad.push(format!("W2 direct {w2d} and {w2a} xor {w2x}")); - } - let w3c = w3_csr(g, a, bm); - let w3f = w3_front(g, a, bm, &mut sc); - if w3c != w3f { - bad.push(format!("W3 csr {w3c} front {w3f}")); - } - let w4c = w4_csr(g, a, bm, &mut sc); - let w4f = w4_front(g, a, bm, &mut sc); - let w4t = TileMatrix::build(g).map(|mut t| { - t.load(a, bm); - t.fold() - }); - if w4c != w4f || w4t.is_some_and(|t| t != w4c) { - bad.push(format!("W4 csr {w4c} front {w4f} tile {w4t:?}")); - } - let w5v = w5(g, a, bm, &mut sc); - let w6v = w6(g, a, None).expect("no overflow"); - let w6bv = w6(g, a, Some(bm)).expect("no overflow"); - ( - Oracle { - w2: w2d, - w3: w3c, - w4: w4c, - w5: w5v, - w6: w6v, - w6b: w6bv, - }, - bad, - ) -} - -fn lookups_of(ws: &WorkingSet, f: &Frame) -> u64 { - ws.tile_ids - .iter() - .filter_map(|&t| ws.table.map(f, t).ok()) - .map(|m| m.lookups()) - .sum() -} - -fn global_of(ws: &WorkingSet, f: &Frame, c: usize) -> u64 { - let tw = ws.tw(); - ws.table - .map(f, ws.tile_ids[c / tw]) - .expect("tile") - .global((c % tw) as u8) - .expect("local in range") -} - -fn refs(v: &[WorkingSet]) -> Vec<&WorkingSet> { - v.iter().collect() -} - -fn fresh_ids(fx: &Fx, n: usize, salt: u64) -> Vec { - let mut rng = Rng::new(SEED ^ salt); - let mut out = Vec::new(); - let mut seen = HashSet::new(); - while out.len() < n { - let g = rng.below(1 << 32); - if !fx.all.contains(&g) && seen.insert(g) { - out.push(g); - } - } - out -} - -fn method(id: u32) -> MethodBinding { - MethodBinding { - id: MethodId(id), - sig_rev: SigRev(1), - name: format!("m{id}"), - on: WideFieldMask::from_positions(&[0]), - when: None, - reads: WideFieldMask::from_positions(&[0]), - effects: vec![], - population: Population::Distinct, - truth: Truth::TwoValued, - demand: ValueDemand::MapOnly, - } -} - -fn main() { - let args: Vec = std::env::args().collect(); - let disable: Option = args.iter().position(|a| a == "--disable").and_then(|i| args.get(i + 1).cloned()); - let dup_off = disable.as_deref() == Some("dupcheck"); - let frame_off = disable.as_deref() == Some("framecheck"); - let guard_off = disable.as_deref() == Some("bindguard"); - if let Some(d) = &disable { - println!("# --disable {d}: the named guard is compiled out; its check must FAIL"); - } - let cflags = CFlags { - disable_dupcheck: dup_off, - disable_framecheck: frame_off, - }; - let fx = fixture(); - let mut t = Tally { pass: 0, fail: 0 }; - let p_edges: Vec<(u64, u64)> = { - let ps: HashSet = fx.p.iter().copied().collect(); - fx.edges.iter().copied().filter(|(s, _)| ps.contains(s)).collect() - }; - let cross = fx.edges.iter().filter(|(s, d)| fx.p.contains(s) && fx.q.contains(d)).count(); - println!( - "# fixture: P={} ids Q={} ids edges={} P-source edges={} P->Q edges={}", - fx.p.len(), - fx.q.len(), - fx.edges.len(), - p_edges.len(), - cross - ); - - // ---- F1: G->L->G and L->G->L parity, all three arms -------------------- - { - let (p, q) = sets(&fx); - let mut bad = 0usize; - let mut n = 0usize; - for (ws, ids) in [(&p, &fx.p), (&q, &fx.q)] { - let f = ws.seal(); - let tw = ws.tw(); - let idx = CoordIndex::build_with(ws, &f, cflags).expect("C builds"); - let mut oa = vec![0u32; ids.len()]; - let mut ob = vec![0u32; ids.len()]; - let mut oc = vec![0u32; ids.len()]; - route_batch_a_in(&ws.table, &f, &ws.tile_ids, tw, ids, &mut oa).expect("A"); - route_batch_b_in(&ws.table, &f, &ws.tile_ids, tw, ids, &mut ob).expect("B"); - route_batch_c(&idx, &f, ids, &mut oc).expect("C"); - for (i, &g) in ids.iter().enumerate() { - n += 1; - for out in [&oa, &ob, &oc] { - let c = out[i] as usize; - // G -> L -> G - if out[i] >= COORD_AMBIGUOUS || global_of(ws, &f, c) != g { - bad += 1; - } - } - } - // L -> G -> L over every occupied coordinate - for c in 0..ids.len() { - let g = global_of(ws, &f, c); - for out in [ - ws.coord_a(&f, g).map(|v| v as u32).unwrap_or(u32::MAX), - idx.lookup(&f, g).unwrap_or(u32::MAX), - ] { - if out as usize != c { - bad += 1; - } - } - } - } - t.check("F1", bad == 0, format!("{n} ids x 3 arms G->L->G and L->G->L, mismatches={bad}")); - } - - // ---- F2: arms A, B, C identical for every edge endpoint of P ------------ - { - let (p, _q) = sets(&fx); - let f = p.seal(); - let ep: Vec = p_edges.iter().flat_map(|&(s, d)| [s, d]).collect(); - let idx = CoordIndex::build_with(&p, &f, cflags).expect("C"); - let (mut oa, mut ob, mut oc) = (vec![0u32; ep.len()], vec![0u32; ep.len()], vec![0u32; ep.len()]); - route_batch_a_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut oa).expect("A"); - route_batch_b_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut ob).expect("B"); - route_batch_c(&idx, &f, &ep, &mut oc).expect("C"); - let unmapped = oa.iter().filter(|&&c| c == COORD_UNMAPPED).count(); - t.check( - "F2", - oa == ob && oa == oc && unmapped > 0, - format!( - "{} endpoints: A==B {} A==C {}; {} endpoints are Q ids (Unmapped in P, same refusal in all arms)", - ep.len(), - oa == ob, - oa == oc, - unmapped - ), - ); - } - - // ---- F3: locate calls (counted twice: by the routine and by the maps) --- - { - let (p, _q) = sets(&fx); - let f = p.seal(); - let tiles = p.tile_ids.len() as u64; - let ep: Vec = p_edges.iter().flat_map(|&(s, d)| [s, d]).collect(); - let mut out = vec![0u32; ep.len()]; - let l0 = lookups_of(&p, &f); - let sa = route_batch_a_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut out).expect("A"); - let l1 = lookups_of(&p, &f); - let sb = route_batch_b_in(&p.table, &f, &p.tile_ids, p.tw(), &ep, &mut out).expect("B"); - let l2 = lookups_of(&p, &f); - let idx = CoordIndex::build_with(&p, &f, cflags).expect("C"); - let l3 = lookups_of(&p, &f); - let sc = route_batch_c(&idx, &f, &ep, &mut out).expect("C"); - let l4 = lookups_of(&p, &f); - let distinct = ep.iter().copied().collect::>().len() as u64; - let e2 = ep.len() as u64; - let ok = sa.locate_calls == e2 - && l1 - l0 == e2 * tiles - && sb.locate_calls == distinct - && sb.distinct == distinct - && l2 - l1 == distinct * tiles - && l3 == l2 - && sc.locate_calls == 0 - && l4 == l3; - t.check( - "F3", - ok, - format!( - "A calls={} (2*edges={e2}, map lookups {}) B calls={} (distinct={distinct}, map lookups {}) C query calls={} (map lookups {}, build lookups {})", - sa.locate_calls, - l1 - l0, - sb.locate_calls, - l2 - l1, - sc.locate_calls, - l4 - l3, - l3 - l2 - ), - ); - } - - // ---- F4: id in two tiles: Ambiguous in all arms -------------------------- - { - let mut tiles: Vec> = fx.p.chunks(256).map(|c| c.to_vec()).collect(); - let dup = fx.p[0]; - tiles[3].push(dup); - let ws = WorkingSet::from_tiles(lance_graph_dt64::Width::W256, tiles, 7).expect("dup set"); - let f = ws.seal(); - let a = ws.coord_a(&f, dup); - let mut ob = [0u32]; - route_batch_b_in(&ws.table, &f, &ws.tile_ids, ws.tw(), &[dup], &mut ob).expect("B"); - let idx = CoordIndex::build_with(&ws, &f, cflags).expect("C"); - let c = idx.lookup(&f, dup); - let other = fx.p[5]; - let fine = ws.coord_a(&f, other).ok() == idx.lookup(&f, other).ok().map(|v| v as usize); - t.check( - "F4", - a == Err(LocateRefusal::Ambiguous) && ob[0] == COORD_AMBIGUOUS && c == Err(CRefusal::Ambiguous) && fine, - format!("A={a:?} B={} C={c:?} (an unrelated id still agrees: {fine})", ob[0]), - ); - } - - // ---- F5: id in no tile: Unmapped everywhere -------------------------------- - { - let (p, _q) = sets(&fx); - let f = p.seal(); - let g = u64::MAX - 5; - let idx = CoordIndex::build_with(&p, &f, cflags).expect("C"); - let mut ob = [0u32]; - route_batch_b_in(&p.table, &f, &p.tile_ids, p.tw(), &[g], &mut ob).expect("B"); - let (a, c) = (p.coord_a(&f, g), idx.lookup(&f, g)); - t.check( - "F5", - a == Err(LocateRefusal::Unmapped) && ob[0] == COORD_UNMAPPED && c == Err(CRefusal::Unmapped), - format!("A={a:?} B={} C={c:?}", ob[0]), - ); - } - - // ---- F6: foreign frame -------------------------------------------------- - { - let (p, q) = sets(&fx); - let fp = p.seal(); - let fq = q.seal(); - let idx = CoordIndex::build_with(&p, &fp, cflags).expect("C"); - let a = p.coord_a(&fq, fx.p[0]); - let c = idx.lookup(&fq, fx.p[0]); - t.check( - "F6", - a == Err(LocateRefusal::Read(MapRead::Stale(FrameRefusal::ForeignFrame))) && c == Err(CRefusal::StaleIndex), - format!("A={a:?} C={c:?}"), - ); - } - - // ---- F7: historical frame ----------------------------------------------- - { - let (mut p, _q) = sets(&fx); - let f1 = p.seal(); - let tile0: Vec = fx.p[..256].to_vec(); - let old: Vec = tile0.iter().map(|&g| p.coord_a(&f1, g).expect("old")).collect(); - let c1 = CoordIndex::build_with(&p, &f1, cflags).expect("C1"); - let mut rev = tile0.clone(); - rev.reverse(); - p.replace_tile(0, &rev).expect("replace"); - let f2 = p.seal(); - let a_old = tile0.iter().map(|&g| p.coord_a(&f1, g).ok()).collect::>() - == old.iter().map(|&c| Some(c)).collect::>(); - let c_old = tile0.iter().map(|&g| c1.lookup(&f1, g).ok().map(|v| v as usize)).collect::>() - == old.iter().map(|&c| Some(c)).collect::>(); - let c_stale = c1.lookup(&f2, tile0[0]); - let c2 = CoordIndex::build_with(&p, &f2, cflags).expect("C2"); - let mut same = true; - for &g in &fx.p { - same &= p.coord_a(&f2, g).ok().map(|v| v as u32) == c2.lookup(&f2, g).ok(); - } - let moved = tile0.iter().zip(&old).filter(|&(&g, &o)| p.coord_a(&f2, g).ok() != Some(o)).count(); - t.check( - "F7", - a_old && c_old && c_stale == Err(CRefusal::StaleIndex) && same && moved > 0, - format!( - "under f1: A old {a_old} C old {c_old}; C(f1) asked with f2 -> {c_stale:?}; C rebuilt==A under f2 {same}; {moved} ids moved" - ), - ); - } - - // ---- F8: extension keeps coordinates (generations, not digests) --------- - { - let (mut p, q) = sets(&fx); - let fo = p.seal(); - let old_tiles = p.tile_ids.clone(); - let old_coords: Vec = fx.p.iter().map(|&g| p.coord_a(&fo, g).expect("old")).collect(); - let bo = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let w2_old = w2(&bo.graphs, &bo.a, &bo.b); - let gen3 = p.table.generation_count(3); - let ev3 = p.table.event_count(3); - let vold_digest = p.table.map(&fo, 3).expect("t3").digest(); - let added = fresh_ids(&fx, 40, 0xE8); - let touched = p.extend(&added).expect("extend"); - let fnw = p.seal(); - let (vo, vn) = (p.table.map(&fo, 3).expect("t3 old"), p.table.map(&fnw, 3).expect("t3 new")); - let ext = vn.extends(vo); - let digest_changed = vn.digest() != vold_digest; - let gen_same = p.table.generation_count(3) == gen3 && p.table.event_count(3) == ev3 + 1; - let kept = fx.p.iter().zip(&old_coords).all(|(&g, &c)| { - p.coord_a(&fnw, g).ok() == Some(c) && coord_a_in(&p.table, &fo, &old_tiles, p.tw(), g).ok() == Some(c) - }); - let bn = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let mut restricted = bn.a.clone(); - ndarray::simd::mask_and_assign(&mut restricted[0], &p.valid_mask(&fo)); - let w2_new = w2(&bn.graphs, &restricted, &bn.b); - let stale = bo.guard(&[&p, &q], true).is_err(); - t.check( - "F8", - ext && digest_changed && gen_same && kept && w2_old == w2_new && stale && touched == 2, - format!( - "tiles changed={touched} extends={ext} digest changed={digest_changed} (a digest guard would refuse) generations same={gen_same} old coords kept={kept} W2 old={w2_old} new-restricted={w2_new} old binding is stale to the frame guard={stale}" - ), - ); - } - - // ---- F9: replacement invalidates the binding ----------------------------- - { - let (mut p, q) = sets(&fx); - let f1 = p.seal(); - let c1 = CoordIndex::build_with(&p, &f1, cflags).expect("C1"); - let b1 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let mut rev: Vec = fx.p[..256].to_vec(); - rev.reverse(); - p.replace_tile(0, &rev).expect("replace"); - let b2 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let truth = orc(&fx, A_LT, B_LT, &[]).w2; - let fresh = w2(&b2.graphs, &b2.a, &b2.b); - let mut stale = b1.clone(); - stale.a = b2.a.clone(); - stale.b = b2.b.clone(); - let wrong = w2(&stale.graphs, &stale.a, &stale.b); - let guarded = b1.guard(&[&p, &q], !guard_off); - let f2 = p.seal(); - let c_stale = c1.lookup(&f2, fx.p[0]); - t.check( - "F9", - fresh == truth - && wrong != truth - && matches!(guarded, Err(BindError::Stale(0))) - && c_stale == Err(CRefusal::StaleIndex), - format!( - "oracle W2={truth} fresh f2 binding={fresh} reused f1 binding without the check={wrong} (WRONG: {}) guarded -> {guarded:?} C(f1) with f2 -> {c_stale:?}", - wrong != truth - ), - ); - } - - // ---- F10: tile removal ----------------------------------------------------- - { - let (mut p, _q) = sets(&fx); - let f1 = p.seal(); - let old_tiles = p.tile_ids.clone(); - let g = fx.p[512]; // tile 2 - let under_old = coord_a_in(&p.table, &f1, &old_tiles, p.tw(), g); - p.remove_tile(2); - let f2 = p.seal(); - let new_tiles: Vec = vec![0, 1, 3]; - let under_new = coord_a_in(&p.table, &f2, &new_tiles, p.tw(), g); - let under_old_list = coord_a_in(&p.table, &f2, &old_tiles, p.tw(), g); - let again = coord_a_in(&p.table, &f1, &old_tiles, p.tw(), g); - let ci = CoordIndex::build_in(&p.table, &new_tiles, p.tw(), &f2, cflags).expect("C new"); - let c_new = ci.lookup(&f2, g); - t.check( - "F10", - under_old == Ok(512) && under_new == Err(LocateRefusal::Unmapped) && again == Ok(512) && c_new == Err(CRefusal::Unmapped), - format!( - "old frame {under_old:?}; new frame with the reduced tile list {under_new:?} (C {c_new:?}); new frame with the old list {under_old_list:?}; old frame again {again:?}" - ), - ); - } - - // ---- F11: presence-only update ---------------------------------------------- - { - let (p, q) = sets(&fx); - let mut b = bind(&fx, &[&p, &q], Arm::C, A_LT, B_LT); - let idx: Vec = [&p, &q] - .iter() - .zip(&b.frames) - .map(|(ws, f)| CoordIndex::build_with(ws, f, cflags).expect("C")) - .collect(); - let frames = b.frames.clone(); - let (base, bad0) = folds(&b); - // an effective deletion: removes an edge of an A source whose removal moves W2 - let mut eff: Option<(u64, u64)> = None; - for &(s, d) in &fx.edges { - if fx.a(s) >= A_LT { - continue; - } - let (Some(sn), Some(dn)) = (route_global_c(&idx, &frames, s), route_global_c(&idx, &frames, d)) else { - continue; - }; - let mut g2 = b.graphs.clone(); - if g2[nr_set(sn)].delete(nr_coord(sn), tgt_pack(nr_set(sn), dn)) && w2(&g2, &b.a, &b.b) != base.w2 { - eff = Some((s, d)); - break; - } - } - let (s1, d1) = eff.expect("an effective deletion exists"); - let un = fx - .edges - .iter() - .copied() - .find(|&(s, d)| fx.a(s) >= A_LT && (s, d) != (s1, d1) && fx.p.contains(&s)) - .expect("unrelated edge"); - let before_lookups = lookups_of(&p, &frames[0]) + lookups_of(&q, &frames[1]); - let (sn, dn) = (route_global_c(&idx, &frames, s1).unwrap(), route_global_c(&idx, &frames, d1).unwrap()); - let deleted1 = b.delete(nr_set(sn), nr_coord(sn), dn); - let (after1, bad1) = folds(&b); - let (sn2, dn2) = (route_global_c(&idx, &frames, un.0).unwrap(), route_global_c(&idx, &frames, un.1).unwrap()); - let deleted2 = b.delete(nr_set(sn2), nr_coord(sn2), dn2); - let (after2, bad2) = folds(&b); - let after_lookups = lookups_of(&p, &frames[0]) + lookups_of(&q, &frames[1]); - let o1 = orc(&fx, A_LT, B_LT, &[(s1, d1)]); - let o2 = orc(&fx, A_LT, B_LT, &[(s1, d1), un]); - let current = b.guard(&[&p, &q], true).is_ok(); - let ok = deleted1 - && deleted2 - && bad0.is_empty() - && bad1.is_empty() - && bad2.is_empty() - && after1 == o1 - && after2 == o2 - && after1.w2 < base.w2 - && after2.w2 == after1.w2 - && after_lookups == before_lookups - && current; - t.check( - "F11", - ok, - format!( - "W2 {} -> {} (oracle {}) after the effective deletion; unrelated deletion leaves W2 {} (all workloads == oracle: {}); map lookups during folds+updates: {}; frame still current {current}", - base.w2, - after1.w2, - o1.w2, - after2.w2, - after2 == o2, - after_lookups - before_lookups - ), - ); - } - - // ---- F12: cross-working-set edge ---------------------------------------------- - { - let (p, q) = sets(&fx); - let b = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let truth = orc(&fx, A_LT, B_LT, &[]).w2; - let right = w2(&b.graphs, &b.a, &b.b); - // Restricted to cross-set edges, where the decoding is what is under test: - // x in A (source set) with a cross edge to a B member. `right_cross` decodes - // the target through its own set; `wrong` reads the coordinate as if it - // belonged to the source set (coordinate coincidence). - let (mut right_cross, mut wrong) = (0i64, 0i64); - for (si, c) in b.graphs.iter().enumerate() { - for_each_bit(&b.a[si], |x| { - let (mut r, mut w) = (false, false); - for e in c.off[x] as usize..c.off[x + 1] as usize { - if bit(&c.valid, e) && c.tgt[e] & CROSS != 0 { - let n = tgt_unpack(si, c.tgt[e]); - r |= bit(&b.b[nr_set(n)], nr_coord(n)); - w |= bit(&b.b[si], nr_coord(n)); - } - } - right_cross += i64::from(r); - wrong += i64::from(w); - }); - } - let qset: HashSet = fx.q.iter().copied().collect(); - let pset: HashSet = fx.p.iter().copied().collect(); - let truth_cross = fx - .p - .iter() - .filter(|&&x| { - fx.a(x) < A_LT - && fx.edges.iter().any(|&(s, d)| s == x && qset.contains(&d) && !pset.contains(&d) && fx.b(d) < B_LT) - }) - .count() as i64; - let cross_edges: usize = b.graphs[0].tgt.iter().filter(|&&x| x & CROSS != 0).count(); - t.check( - "F12", - cross_edges > 0 && right == truth && right_cross == truth_cross && truth_cross > 0 && wrong != truth_cross, - format!( - "{cross_edges} P->Q edges, B held in Q coordinates: W2={right} oracle={truth}; over cross edges only: DR-decoded {right_cross} oracle {truth_cross}, coordinate coincidence {wrong} (WRONG)" - ), - ); - } - - // ---- F13: same id, different coordinates ------------------------------------------ - { - let n = fx.p.len(); - let mut rot = fx.p.clone(); - rot.rotate_left(7); - let w1 = WorkingSet::build(&fx.p, 11).expect("w1"); - let w2s = WorkingSet::build(&rot, 12).expect("w2"); - let (f1, f2) = (w1.seal(), w2s.seal()); - let g = fx.p[10]; - let (c1, c2) = (w1.coord_a(&f1, g).expect("c1"), w2s.coord_a(&f2, g).expect("c2")); - let back = global_of(&w1, &f1, c1) == g && global_of(&w2s, &f2, c2) == g; - let (v1, v2) = (w1.valid_mask(&f1), w2s.valid_mask(&f2)); - let (l1, l2) = ( - w1.gather_lane(&f1, |g| fx.a(g)), - w2s.gather_lane(&f2, |g| fx.a(g)), - ); - let (mut m1, mut m2) = (vec![0u64; words_for(w1.n_coords())], vec![0u64; words_for(w2s.n_coords())]); - virtual_where(&l1, A_LT, &v1, &mut m1); - virtual_where(&l2, A_LT, &v2, &mut m2); - let mut proj = vec![0u64; m2.len()]; - for_each_bit(&m1, |c| { - let gg = global_of(&w1, &f1, c); - set_bit(&mut proj, w2s.coord_a(&f2, gg).expect("in w2")); - }); - t.check( - "F13", - c1 != c2 && back && proj == m2 && m1 != m2, - format!( - "id {g:#x} is coordinate {c1} in one set and {c2} in the other (both resolve back); A selection: {n} ids, DR-aligned equality {}; bitwise coincidence equality {} (WRONG)", - proj == m2, - m1 == m2 - ), - ); - } - - // ---- F14: reused binding == freshly prepared binding, Q = 64 ----------------------- - { - let (p, q) = sets(&fx); - let mut reused = bind(&fx, &[&p, &q], Arm::C, A_LT, 100); - let mut bad = 0usize; - for k in 0..64 { - let tb = 100 + 10 * k; - reused.rewhere_b(tb); - let fresh = bind(&fx, &[&p, &q], Arm::C, A_LT, tb); - let same_struct = reused.graphs == fresh.graphs - && reused.a == fresh.a - && reused.b == fresh.b - && reused.valid == fresh.valid; - let (ra, _) = folds(&reused); - let (fa, _) = folds(&fresh); - if !same_struct || ra != fa || ra != orc(&fx, A_LT, tb, &[]) { - bad += 1; - } - } - t.check("F14", bad == 0, format!("64 reuses (B parameter changed each time, only the WHERE re-run) vs 64 fresh bindings: {bad} differ")); - } - - // ---- F15: EXO-46 shared selection ----------------------------------------------------- - { - const CLASS: u32 = 0x7F0B_0001; - const OTHER: u32 = 0x7F0B_0002; - let schema = ClassSchema { - schema_rev: SchemaRev(1), - field_count: 2, - extent: Extent::DR64_CUBE, - }; - let mut store = BindStore::new(); - store.register(CLASS, schema, vec![method(1), method(2)]).expect("class"); - store.register(OTHER, schema, vec![method(1)]).expect("other class"); - let (m1, m2, mo) = (method(1), method(2), method(1)); - let (r1, r2, ro) = (MethodRef::of(CLASS, &m1), MethodRef::of(CLASS, &m2), MethodRef::of(OTHER, &mo)); - let (permit1, permit2) = (vec![r1.clone()], vec![r2.clone()]); - let (mut p, _q) = sets(&fx); - let mut b = bind(&fx, &[&p], Arm::A, A_LT, B_LT); - let scope = Scope { id: 1 }; - let sel = SharedSelection { - class: CLASS, - frame: p.seal(), - scope, - criteria: A_LT as u64, - mask: b.a[0].clone(), - }; - let cur = p.seal(); - // a - let ra = sel.admit(&store, &r1, &permit1, &cur, scope); - let rb = sel.admit(&store, &r2, &permit2, &cur, scope); - let a_ok = match (ra, rb) { - (Ok(x), Ok(y)) => std::ptr::eq(x.as_ptr(), y.as_ptr()) && w2_borrowed(&b.graphs, x, &b.b) == w2_borrowed(&b.graphs, y, &b.b), - _ => false, - }; - // b, c, d, e - let b_ref = sel.admit(&store, &r2, &permit1, &cur, scope); - let c_unbound = sel.admit( - &store, - &MethodRef { - class: 0x7F0B_00FF, - ..r1.clone() - }, - &[], - &cur, - scope, - ); - let c_other = sel.admit(&store, &ro, &[ro.clone()], &cur, scope); - let d_sig = sel.admit( - &store, - &MethodRef { - sig_rev: SigRev(2), - ..r1.clone() - }, - &permit1, - &cur, - scope, - ); - let e_scope = sel.admit(&store, &r1, &permit1, &cur, Scope { id: 2 }); - // g: presence update does not change the mask; the fold reflects it - let mask_before = sel.mask.clone(); - let w2_before = w2_borrowed(&b.graphs, &sel.mask, &b.b); - let mut deleted = false; - 'outer: for x in 0..b.graphs[0].n { - if !bit(&sel.mask, x) { - continue; - } - for e in b.graphs[0].off[x] as usize..b.graphs[0].off[x + 1] as usize { - let mut g2 = b.graphs.clone(); - clear_bit(&mut g2[0].valid, e); - if w2_borrowed(&g2, &sel.mask, &b.b) != w2_before { - let dst = tgt_unpack(0, b.graphs[0].tgt[e]); - deleted = b.delete(0, x, dst); - break 'outer; - } - } - } - let w2_after = w2_borrowed(&b.graphs, &sel.mask, &b.b); - let g_ok = deleted && sel.mask == mask_before && w2_after != w2_before; - // i: zero allocation in admit + fold - let (a0, c0) = (alloc_bytes(), alloc_calls()); - let r = sel.admit(&store, &r1, &permit1, &cur, scope); - let v = match r { - Ok(m) => w2_borrowed(&b.graphs, m, &b.b), - Err(_) => -1, - }; - let (a1, c1) = (alloc_bytes(), alloc_calls()); - std::hint::black_box(v); - // f: stale frame after an advance - let mut rev: Vec = fx.p[..256].to_vec(); - rev.reverse(); - p.replace_tile(0, &rev).expect("replace"); - let cur2 = p.seal(); - let f_stale = sel.admit(&store, &r1, &permit1, &cur2, scope); - t.check("F15a", a_ok, "M1 and M2, each with its own permit, admit the SAME selection (same mask address, same fold answer)".into()); - t.check("F15b", b_ref == Err(ShareRefusal::NotPermitted), format!("M2 with only M1's permit -> {b_ref:?}")); - t.check( - "F15c", - matches!(c_unbound, Err(ShareRefusal::Bind(Refusal::UnknownClass(_)))) - && matches!(c_other, Err(ShareRefusal::ClassMismatch { .. })), - format!("unbound class -> {c_unbound:?}; other bound class -> {c_other:?}"), - ); - t.check( - "F15d", - matches!(d_sig, Err(ShareRefusal::Bind(Refusal::SignatureRevisionMismatch { .. }))), - format!("stale sig rev -> {d_sig:?}"), - ); - t.check("F15e", e_scope == Err(ShareRefusal::Scope), format!("another scope -> {e_scope:?}")); - t.check("F15f", f_stale == Err(ShareRefusal::StaleFrame), format!("stale frame after advance -> {f_stale:?}")); - t.check( - "F15g", - g_ok, - format!("mask bit-identical before/after the presence update; fold {w2_before} -> {w2_after}"), - ); - t.check( - "F15h", - std::ptr::eq(sel.admit(&store, &r1, &permit1, &cur, scope).map(|m| m.as_ptr()).unwrap_or(std::ptr::null()), sel.mask.as_ptr()), - "admit returns a borrow of the selection's own mask (&[u64] tied to &self): no mask is passed or copied between programs".into(), - ); - t.check("F15i", a1 == a0 && c1 == c0, format!("admit + fold allocated {} bytes in {} calls", a1 - a0, c1 - c0)); - } - - // ---- F16: AND/XOR/FOLD parity with the oracle ----------------------------------------- - { - let (p, q) = sets(&fx); - let mut bad: Vec = Vec::new(); - let mut n = 0; - for arm in Arm::ALL { - for &(al, bl) in &[(300, 500), (100, 200), (700, 900)] { - let b = bind(&fx, &[&p, &q], arm, al, bl); - let (got, routes) = folds(&b); - let want = orc(&fx, al, bl, &[]); - n += 1; - if got != want || !routes.is_empty() { - bad.push(format!("arm {} a<{al} b<{bl}: got {got:?} want {want:?} routes {routes:?}", arm.name())); - } - } - } - let o = orc(&fx, 300, 500, &[]); - t.check( - "F16", - bad.is_empty(), - format!( - "{n} (arm x params) runs, W2 direct/AND/XOR, W3 csr/front, W4 csr/front/tile, W5, W6 (plain and B) == oracle; sample W2={} W3={} W4={} W5={} W6={} W6b={}{}", - o.w2, - o.w3, - o.w4, - o.w5, - o.w6, - o.w6b, - bad.first().map(|s| format!(" FIRST BAD: {s}")).unwrap_or_default() - ), - ); - } - - // ---- F17: folds allocate 0 bytes ------------------------------------------------------ - { - let (p, q) = sets(&fx); - let b = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let mut sc = scratch(&b); - let mut tm = TileMatrix::build(&b.graphs).expect("<= 4096"); - let mut names = Vec::new(); - let mut run = |name: &'static str, f: &mut dyn FnMut() -> i64| { - let (a0, c0) = (alloc_bytes(), alloc_calls()); - let v = f(); - let (a1, c1) = (alloc_bytes(), alloc_calls()); - std::hint::black_box(v); - if a1 != a0 || c1 != c0 { - names.push(format!("{name}:{}B/{}calls", a1 - a0, c1 - c0)); - } - }; - let (g, a, bm) = (&b.graphs, &b.a, &b.b); - run("w2", &mut || w2(g, a, bm)); - run("w2_and", &mut || w2_and(g, a, bm, &mut sc)); - run("w2_xor", &mut || w2_xor(g, a, bm, &mut sc)); - run("w3_csr", &mut || w3_csr(g, a, bm)); - run("w3_front", &mut || w3_front(g, a, bm, &mut sc)); - run("w4_csr", &mut || w4_csr(g, a, bm, &mut sc)); - run("w4_front", &mut || w4_front(g, a, bm, &mut sc)); - run("w4_tile", &mut || { - tm.load(a, bm); - tm.fold() - }); - run("w5", &mut || w5(g, a, bm, &mut sc)); - run("w6", &mut || w6(g, a, Some(bm)).unwrap_or(-1)); - t.check( - "F17", - names.is_empty(), - format!("W2/W3/W4(csr,front,tile)/W5/W6 folds: allocations {names:?}; no tuple vector (folds read masks, offsets and targets only; signatures carry no Vec of tuples)"), - ); - } - - // ---- F18: the duplicate check is load-bearing -------------------------------------------- - { - let mut tiles: Vec> = fx.p.chunks(256).map(|c| c.to_vec()).collect(); - let dup = fx.p[0]; - tiles[3].push(dup); - let ws = WorkingSet::from_tiles(lance_graph_dt64::Width::W256, tiles, 8).expect("dup set"); - let f = ws.seal(); - let on = CoordIndex::build_with(&ws, &f, CFlags::default()).expect("on").lookup(&f, dup); - let off = CoordIndex::build_with( - &ws, - &f, - CFlags { - disable_dupcheck: true, - ..CFlags::default() - }, - ) - .expect("off") - .lookup(&f, dup); - t.check( - "F18", - on == Err(CRefusal::Ambiguous) && off.is_ok(), - format!("duplicate check on -> {on:?}; compiled out -> {off:?} (a silent wrong coordinate, so F4 fails under --disable dupcheck)"), - ); - } - - // ---- F19: the frame check is load-bearing --------------------------------------------------- - { - let (mut p, _q) = sets(&fx); - let f1 = p.seal(); - let on = CoordIndex::build_with(&p, &f1, CFlags::default()).expect("on"); - let off = CoordIndex::build_with( - &p, - &f1, - CFlags { - disable_framecheck: true, - ..CFlags::default() - }, - ) - .expect("off"); - let mut rev: Vec = fx.p[..256].to_vec(); - rev.reverse(); - p.replace_tile(0, &rev).expect("replace"); - let f2 = p.seal(); - let g = fx.p[0]; - let (r_on, r_off, truth) = (on.lookup(&f2, g), off.lookup(&f2, g), p.coord_a(&f2, g).ok().map(|v| v as u32)); - t.check( - "F19", - r_on == Err(CRefusal::StaleIndex) && r_off.is_ok() && r_off.ok() != truth, - format!("frame check on -> {r_on:?}; compiled out -> {r_off:?} but the truth under f2 is {truth:?} (so F6/F7/F9 fail under --disable framecheck)"), - ); - } - - // ---- F20: the binding guard is load-bearing ------------------------------------------------------ - { - let (mut p, q) = sets(&fx); - let b1 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let mut rev: Vec = fx.p[..256].to_vec(); - rev.reverse(); - p.replace_tile(0, &rev).expect("replace"); - let b2 = bind(&fx, &[&p, &q], Arm::A, A_LT, B_LT); - let truth = orc(&fx, A_LT, B_LT, &[]).w2; - let on = b1.guard(&[&p, &q], true); - let off = b1.guard(&[&p, &q], false); - let mut stale = b1.clone(); - stale.a = b2.a.clone(); - stale.b = b2.b.clone(); - let silent = w2(&stale.graphs, &stale.a, &stale.b); - t.check( - "F20", - matches!(on, Err(BindError::Stale(0))) && off.is_ok() && silent != truth, - format!("guard on -> {on:?}; compiled out -> {off:?} and the reused binding answers {silent} where the truth is {truth} (silent wrong answer, so F9 fails under --disable bindguard)"), - ); - } - - // ---- F21: an A-side selection change extends the set -------------------------------------------------- - { - let q = WorkingSet::build(&fx.q, 2).expect("Q"); - let old_ids = &fx.p[..800]; - let added = &fx.p[800..]; - let mut ext = WorkingSet::build(old_ids, 21).expect("old"); - let fo = ext.seal(); - let old_tiles = ext.tile_ids.clone(); - let old_coords: Vec = old_ids.iter().map(|&g| ext.coord_a(&fo, g).expect("old")).collect(); - let t0 = std::time::Instant::now(); - let touched = ext.extend(added).expect("extend"); - let t_ext = t0.elapsed().as_nanos() as f64 / 1000.0; - let fn_ = ext.seal(); - let mut full = WorkingSet::build(&fx.p, 22).expect("full"); - let t1 = std::time::Instant::now(); - full = { - drop(full); - WorkingSet::build(&fx.p, 22).expect("rebuild") - }; - let t_full = t1.elapsed().as_nanos() as f64 / 1000.0; - let ff = full.seal(); - let kept = old_ids - .iter() - .zip(&old_coords) - .all(|(&g, &c)| ext.coord_a(&fn_, g).ok() == Some(c) && coord_a_in(&ext.table, &fo, &old_tiles, ext.tw(), g).ok() == Some(c)); - let all_same = fx.p.iter().all(|&g| ext.coord_a(&fn_, g).ok() == full.coord_a(&ff, g).ok()); - let extends = ext.table.map(&fn_, 3).expect("t3").extends(ext.table.map(&fo, 3).expect("t3 old")); - let be = bind(&fx, &[&ext, &q], Arm::C, A_LT, B_LT); - let bf = bind(&fx, &[&full, &q], Arm::C, A_LT, B_LT); - let (ae, rb_e) = folds(&be); - let (af, rb_f) = folds(&bf); - let want = orc(&fx, A_LT, B_LT, &[]); - let same_graph = be.graphs == bf.graphs && be.a == bf.a && be.b == bf.b; - t.check( - "F21", - kept && all_same && extends && same_graph && ae == af && ae == want && rb_e.is_empty() && rb_f.is_empty() && touched == 1, - format!( - "extend by {} ids touched {touched} tile(s) via MapTable::advance; TileMap::extends={extends}; old coordinates kept={kept}; every coordinate == full rebuild {all_same}; binding structure equal {same_graph}; all workloads equal rebuild and oracle {}; extend {} vs full rebuild {} (preparation: reported, not gate)", - added.len(), - ae == af && ae == want, - fmt_us(t_ext, true), - fmt_us(t_full, true), - ), - ); - } - - // ======================= multi-domain composition (F22..F29) ======================= - // A domain is a working set; D domains over one corpus resolve cross-domain - // edges through the global id (arm routing under each domain's own frame). - let all: Vec = fx.p.iter().chain(fx.q.iter()).copied().collect(); - let split = |ids: &[u64], d: usize, base: u64| -> Vec { - let per = ids.len().div_ceil(d); - ids.chunks(per) - .enumerate() - .map(|(i, c)| WorkingSet::build(c, base + i as u64).expect("domain")) - .collect() - }; - let restrict = |a: &[Vec], k: usize| -> Vec> { - a.iter() - .enumerate() - .map(|(i, m)| if i == k { m.clone() } else { vec![0u64; m.len()] }) - .collect() - }; - let want_all = orc(&fx, A_LT, B_LT, &[]); - - // ---- F22: one / two / three domains == one domain over the union ---------------- - { - let mut bad = Vec::new(); - let mut line = Vec::new(); - for (d, arm) in [(1usize, Arm::A), (2, Arm::B), (3, Arm::C)] { - let doms = split(&all, d, 100 * d as u64); - let b = bind(&fx, &refs(&doms), arm, A_LT, B_LT); - let (got, routes) = folds(&b); - line.push(format!("D={d} arm {} W2={} W5={} W6={}", arm.name(), got.w2, got.w5, got.w6)); - if got != want_all || !routes.is_empty() || b.stats.dropped_edges != 0 { - bad.push(format!("D={d}: {got:?} dropped {}", b.stats.dropped_edges)); - } - } - t.check( - "F22", - bad.is_empty(), - format!("EXISTS/COUNT/DISTINCT/Bag == one domain == oracle for 1, 2, 3 domains ({}); {bad:?}", line.join("; ")), - ); - } - - // ---- F23: an edge crossing a domain boundary -------------------------------------- - { - let doms = split(&all, 2, 200); // P | Q - let cross_edges: Vec<(u64, u64)> = fx.edges.iter().copied().filter(|(s, d)| fx.p.contains(s) && fx.q.contains(d)).collect(); - let b = Binding::prepare(&refs(&doms), &cross_edges, Arm::C, &|g| fx.a(g), &|g| fx.b(g), A_LT, B_LT).expect("bind"); - let (got, routes) = folds(&b); - let want = oracle(&cross_edges, &|g| fx.a(g) < A_LT, &|g| fx.b(g) < B_LT, &[]); - // decode one cross edge by hand: target is (domain 1, the coordinate Q gave the id) - let (x, y) = cross_edges[0]; - let fq = doms[1].seal(); - let xc = doms[0].coord_a(&doms[0].seal(), x).expect("x"); - let want_n = noderef(1, doms[1].coord_a(&fq, y).expect("y")); - let found = (b.graphs[0].off[xc] as usize..b.graphs[0].off[xc + 1] as usize) - .any(|e| b.graphs[0].tgt[e] & CROSS != 0 && tgt_unpack(0, b.graphs[0].tgt[e]) == want_n); - t.check( - "F23", - got == want && routes.is_empty() && found && b.stats.dropped_edges == 0 && !cross_edges.is_empty(), - format!("{} cross-domain edges only: all workloads == oracle {}; edge {x:#x}->{y:#x} stored as CROSS | (domain 1, coord {})", cross_edges.len(), got == want, nr_coord(want_n)), - ); - } - - // ---- F24: a path crossing three domains ---------------------------------------------- - { - let doms = split(&all, 3, 300); - let (d0, d1, d2) = (&all[..467], &all[467..934], &all[934..]); - let x = d0.iter().copied().find(|&g| fx.a(g) < A_LT).expect("x"); - let y = d1[0]; - let z = d2.iter().copied().find(|&g| fx.b(g) < B_LT).expect("z"); - let w = d0.iter().copied().find(|&g| g != x && fx.b(g) < B_LT).expect("w"); - let path = vec![(x, y), (y, z), (z, w)]; - let run = |edges: &[(u64, u64)]| { - let b = Binding::prepare(&refs(&doms), edges, Arm::B, &|g| fx.a(g), &|g| fx.b(g), A_LT, B_LT).expect("bind"); - let (got, routes) = folds(&b); - let want = oracle(edges, &|g| fx.a(g) < A_LT, &|g| fx.b(g) < B_LT, &[]); - (got, want, routes) - }; - let (g3, w3, r3) = run(&path); - let (g2, w2o, r2) = run(&path[..2]); - let (g1, w1o, r1) = run(&path[..1]); - t.check( - "F24", - g3 == w3 && g2 == w2o && g1 == w1o && r3.is_empty() && r2.is_empty() && r1.is_empty() && g3.w4 == 1 && g2.w3 == 1 && g1.w3 == 0, - format!("x(domain 0)->y(domain 1)->z(domain 2)->w(domain 0): W4 over 3 hops={} (oracle {}), W3 over 2 hops={} and {} with only the first hop; csr, front and tile routes agree", g3.w4, w3.w4, g2.w3, g1.w3), - ); - } - - // ---- F25: the same global id in two selections ------------------------------------------- - { - let d2 = split(&all, 2, 400); - let d3 = split(&all, 3, 500); - let b2 = bind(&fx, &refs(&d2), Arm::A, A_LT, B_LT); - let b3 = bind(&fx, &refs(&d3), Arm::A, A_LT, B_LT); - let both_oracle = all.iter().filter(|&&g| fx.a(g) < A_LT && fx.b(g) < B_LT).count() as i64; - let mut tmp2: Vec> = b2.a.clone(); - let mut tmp3: Vec> = b3.a.clone(); - let c2 = and_count(&b2.a, &b2.b, &mut tmp2); - let c3 = and_count(&b3.a, &b3.b, &mut tmp3); - let g = all.iter().copied().find(|&g| fx.a(g) < A_LT && fx.b(g) < B_LT).expect("an id in both"); - let (f2, f3) = (d2.iter().map(|s| s.seal()).collect::>(), d3.iter().map(|s| s.seal()).collect::>()); - let loc = |doms: &[WorkingSet], fr: &[Frame]| doms.iter().enumerate().find_map(|(i, ws)| ws.coord_a(&fr[i], g).ok().map(|c| (i, c))); - let (l2, l3) = (loc(&d2, &f2), loc(&d3, &f3)); - let both_bits = |b: &Binding, l: (usize, usize)| bit(&b.a[l.0], l.1) && bit(&b.b[l.0], l.1); - t.check( - "F25", - c2 == both_oracle && c3 == both_oracle && l2.is_some() && l3.is_some() && both_bits(&b2, l2.unwrap()) && both_bits(&b3, l3.unwrap()), - format!("id {g:#x} is in selection A and selection B: coordinate {l2:?} under 2 domains, {l3:?} under 3; |A AND B| = {c2} = {c3} = oracle {both_oracle}"), - ); - } - - // ---- F26: a duplicate id across incorrectly configured domains is refused -------------------- - { - let good = split(&all, 3, 600); - let ok_union = union_check(&refs(&good)); - let overlapping = vec![ - WorkingSet::build(&all[..700], 610).expect("d1"), - WorkingSet::build(&all[400..1100], 611).expect("d2"), - ]; - let bad_union = union_check(&refs(&overlapping)); - // listed together in one table: Ambiguous from locate - let mut tiles: Vec> = all[..510].chunks(255).map(|c| c.to_vec()).collect(); - tiles[1].push(all[3]); - let together = WorkingSet::from_tiles(lance_graph_dt64::Width::W256, tiles, 612).expect("set"); - let amb = together.coord_a(&together.seal(), all[3]); - t.check( - "F26", - ok_union == Ok(all.len()) && matches!(bad_union, Err(g) if all[400..700].contains(&g)) && amb == Err(LocateRefusal::Ambiguous), - format!("disjoint 3 domains: union check {ok_union:?}; domains overlapping on 300 ids: {bad_union:?}; duplicate listed in one table -> {amb:?}"), - ); - } - - // ---- F27: a deleted cross-domain edge ---------------------------------------------------------- - { - let doms = split(&all, 2, 700); - let mut b = bind(&fx, &refs(&doms), Arm::C, A_LT, B_LT); - let idx: Vec = doms.iter().zip(&b.frames).map(|(ws, f)| CoordIndex::build_with(ws, f, cflags).expect("C")).collect(); - let frames = b.frames.clone(); - let (base, _) = folds(&b); - let (q_valid0, p_valid0) = (b.graphs[1].valid_edges(), b.graphs[0].valid_edges()); - let mut pick: Option<(u64, u64)> = None; - for &(s, d) in &fx.edges { - if !(fx.p.contains(&s) && fx.q.contains(&d) && fx.a(s) < A_LT) { - continue; - } - let (Some(sn), Some(dn)) = (route_global_c(&idx, &frames, s), route_global_c(&idx, &frames, d)) else { continue }; - let mut g2 = b.graphs.clone(); - if g2[nr_set(sn)].delete(nr_coord(sn), tgt_pack(nr_set(sn), dn)) && w2(&g2, &b.a, &b.b) != base.w2 { - pick = Some((s, d)); - break; - } - } - let (s, d) = pick.expect("an effective cross-domain deletion"); - let (sn, dn) = (route_global_c(&idx, &frames, s).unwrap(), route_global_c(&idx, &frames, d).unwrap()); - let done = b.delete(nr_set(sn), nr_coord(sn), dn); - let (after, routes) = folds(&b); - let want = orc(&fx, A_LT, B_LT, &[(s, d)]); - t.check( - "F27", - done && after == want && routes.is_empty() && after.w2 < base.w2 && b.graphs[1].valid_edges() == q_valid0 && b.graphs[0].valid_edges() == p_valid0 - 1, - format!("deleted {s:#x}->{d:#x} (domain 0 -> domain 1): W2 {} -> {} (oracle {}); domain 0 lost one edge, domain 1 untouched; frames unchanged", base.w2, after.w2, want.w2), - ); - } - - // ---- F28: historical replay across domains --------------------------------------------------------- - { - let mut doms = split(&all, 2, 800); - let (f_old0, f_old1) = (doms[0].seal(), doms[1].seal()); - let tiles_old: Vec> = doms.iter().map(|d| d.tile_ids.clone()).collect(); - let b1 = bind(&fx, &refs(&doms), Arm::A, A_LT, B_LT); - for (k, d) in doms.iter_mut().enumerate() { - let f = d.seal(); - let mut tile0: Vec = d.table.map(&f, 0).expect("t0").globals().to_vec(); - tile0.reverse(); - d.replace_tile(0, &tile0).expect("replace"); - let _ = k; - } - let fr_old = [f_old0, f_old1]; - // every cross target of b1 still decodes to the right global under the OLD frames - let mut decode_ok = true; - let mut cross_n = 0usize; - for (si, c) in b1.graphs.iter().enumerate() { - for x in 0..c.n { - for e in c.off[x] as usize..c.off[x + 1] as usize { - if c.tgt[e] & CROSS != 0 { - cross_n += 1; - let n = tgt_unpack(si, c.tgt[e]); - let tw = doms[nr_set(n)].tw(); - let g = doms[nr_set(n)].table.map(&fr_old[nr_set(n)], tiles_old[nr_set(n)][nr_coord(n) / tw]).ok().and_then(|v| v.global((nr_coord(n) % tw) as u8)); - let src_g = doms[si].table.map(&fr_old[si], tiles_old[si][x / doms[si].tw()]).ok().and_then(|v| v.global((x % doms[si].tw()) as u8)); - decode_ok &= g.is_some() && src_g.is_some() && fx.edges.contains(&(src_g.unwrap(), g.unwrap())); - } - } - } - } - // under the CURRENT frames the same coordinates mean other ids - let cur: Vec = doms.iter().map(|d| d.seal()).collect(); - let moved = (0..256usize).filter(|&c| doms[0].table.map(&fr_old[0], 0).unwrap().global(c as u8) != doms[0].table.map(&cur[0], 0).unwrap().global(c as u8)).count(); - let stale = b1.guard(&refs(&doms), true); - let (old_ans, _) = folds(&b1); - t.check( - "F28", - decode_ok && cross_n > 0 && moved > 0 && matches!(stale, Err(BindError::Stale(_))) && old_ans == want_all, - format!("{cross_n} cross-domain targets of the old binding all decode to the right ids under the old frames of BOTH domains; {moved} coordinates of tile 0 mean other ids under the new frames; the old binding is stale to the guard ({stale:?}) and still answers its own frames (== oracle {})", old_ans == want_all), - ); - } - - // ---- F29: aggregate composition laws --------------------------------------------------------------------- - { - let doms = split(&all, 3, 900); - let b = bind(&fx, &refs(&doms), Arm::C, A_LT, B_LT); - let g = &b.graphs; - let mut sc = scratch(&b); - let parts: Vec>> = (0..3).map(|k| restrict(&b.a, k)).collect(); - // EXISTS = OR of parts - let any_full = w2(g, &b.a, &b.b) > 0; - let any_or = parts.iter().any(|pk| w2(g, pk, &b.b) > 0); - let empty_b: Vec> = b.b.iter().map(|m| vec![0u64; m.len()]).collect(); - let none_or = parts.iter().any(|pk| w2(g, pk, &empty_b) > 0) || w2(g, &b.a, &empty_b) > 0; - // COUNT = checked sum over DISJOINT contributions - let w2_parts: Vec = parts.iter().map(|pk| w2(g, pk, &b.b)).collect(); - let sum_w2 = checked_sum(&w2_parts); - let full_w2 = w2(g, &b.a, &b.b); - // DISTINCT = exact union; the per-domain sum is WRONG - let w5_parts: Vec = parts.iter().map(|pk| w5(g, pk, &b.b, &mut sc)).collect(); - let sum_w5 = checked_sum(&w5_parts); - let full_w5 = w5(g, &b.a, &b.b, &mut sc); - let mut uni: Vec> = b.b.iter().map(|m| vec![0u64; m.len()]).collect(); - for pk in &parts { - step(g, pk, &mut sc.m1); - for si in 0..uni.len() { - ndarray::simd::mask_or_assign(&mut uni[si], &sc.m1[si]); - } - } - let exact_w5 = and_count(&uni, &b.b, &mut sc.m2); - // Bag: multiplicities preserved, checked i64 - let w6_parts: Vec = parts.iter().map(|pk| w6(g, pk, None).expect("fits")).collect(); - let w6b_parts: Vec = parts.iter().map(|pk| w6(g, pk, Some(&b.b)).expect("fits")).collect(); - let (sum_w6, sum_w6b) = (checked_sum(&w6_parts), checked_sum(&w6b_parts)); - let overflow = checked_sum(&[i64::MAX, 1]); - // overlapping domains evaluated independently: sums are WRONG, the exact union is right - let ov: Vec = vec![ - WorkingSet::build(&all[..700], 910).expect("d1"), - WorkingSet::build(&all[400..1100], 911).expect("d2"), - WorkingSet::build(&all[800..], 912).expect("d3"), - ]; - let member: Vec> = [&all[..700], &all[400..1100], &all[800..]].iter().map(|s| s.iter().copied().collect()).collect(); - let e_union: Vec<(u64, u64)> = fx.edges.iter().copied().filter(|(s, d)| member.iter().any(|m| m.contains(s) && m.contains(d))).collect(); - let want_u = oracle(&e_union, &|g| fx.a(g) < A_LT, &|g| fx.b(g) < B_LT, &[]); - let (mut s2, mut s5, mut s6) = (0i64, 0i64, 0i64); - let (mut xs, mut ys): (Vec, Vec) = (Vec::new(), Vec::new()); - for ws in &ov { - let bk = Binding::prepare(&[ws], &fx.edges, Arm::C, &|g| fx.a(g), &|g| fx.b(g), A_LT, B_LT).expect("domain binding"); - let mut sck = scratch(&bk); - let fr = ws.seal(); - s2 += w2(&bk.graphs, &bk.a, &bk.b); - s5 += w5(&bk.graphs, &bk.a, &bk.b, &mut sck); - s6 += w6(&bk.graphs, &bk.a, None).expect("fits"); - semijoin(&bk.graphs, &bk.b, &mut sck.m1); - ndarray::simd::mask_and(&bk.a[0], &sck.m1[0], &mut sck.m2[0]); - for_each_bit(&sck.m2[0], |c| xs.push(global_of(ws, &fr, c))); - step(&bk.graphs, &bk.a, &mut sck.m1); - ndarray::simd::mask_and(&sck.m1[0], &bk.b[0], &mut sck.m2[0]); - for_each_bit(&sck.m2[0], |c| ys.push(global_of(ws, &fr, c))); - } - xs.sort_unstable(); - xs.dedup(); - ys.sort_unstable(); - ys.dedup(); - let ok = any_full == any_or - && !none_or - && sum_w2 == Some(full_w2) - && full_w2 == want_all.w2 - && sum_w5 != Some(full_w5) - && exact_w5 == full_w5 - && full_w5 == want_all.w5 - && sum_w6 == Some(want_all.w6) - && sum_w6b == Some(want_all.w6b) - && overflow.is_none() - && union_check(&refs(&ov)).is_err() - && s2 != want_u.w2 - && s5 != want_u.w5 - && s6 != want_u.w6 - && xs.len() as i64 == want_u.w2 - && ys.len() as i64 == want_u.w5; - t.check( - "F29", - ok, - format!( - "disjoint domains: EXISTS=OR {any_or}; COUNT sum {sum_w2:?} = {full_w2}; DISTINCT sum of per-domain counts {sum_w5:?} is WRONG, exact union {exact_w5} = {full_w5}; Bag sums {sum_w6:?}/{sum_w6b:?} = oracle {}/{} (i64 checked, overflow detected {}). OVERLAPPING domains evaluated alone: sums COUNT {s2} DISTINCT {s5} BAG {s6} are WRONG vs oracle {}/{}/{}; exact union by global id {}/{} is right", - want_all.w6, - want_all.w6b, - overflow.is_none(), - want_u.w2, - want_u.w5, - want_u.w6, - xs.len(), - ys.len() - ), - ); - } - - println!("falsify_p1: {} of {} checks failed", t.fail, t.pass + t.fail); - if t.fail > 0 { - std::process::exit(1); - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs deleted file mode 100644 index d6d237831..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/project.rs +++ /dev/null @@ -1,976 +0,0 @@ -//! LAB: D-GLOBAL-WHERE P2 Part 5b, the projection probe (property matching). -//! -//! Lab only, not production. Standalone: it does not use the probe's lib.rs. -//! -//! Question: CSV-style property matching / virtual CustomObject selection is a -//! PROJECTION concern. What does it cost to carry 64 LOGICAL properties over -//! 32 PHYSICAL SoA lanes, and where does a packed layout stop being able to -//! represent what the logical layer can say? -//! -//! Logical properties p0..p63: -//! p0..p15 full-range i32 -//! p16..p47 small u8 (0..=255), the packable ones -//! p48..p63 sparse: present on ~2 % of rows (f(id,j) % 50 == 0), value -//! 0..=999; ABSENT is NOT 0 (SQL NULL: a compare on an absent -//! value is unknown, so the row is not selected). -//! -//! Layouts (all built from the same logical formula `lv`): -//! U unpacked: 64 i32 lanes + 16 presence planes. 64 lanes exceeds the -//! 32-lane budget, so U is the REFERENCE, not a candidate. -//! P packed, 32 lanes: 16 i32 lanes (p0..p15, bytes aliased to U's first 16 -//! lanes and not charged twice), 8 u32 lanes holding 4 x u8 each -//! (p16..p47), 8 u32 lanes holding 2 x u16 each (p48..p63). Sparse -//! encoding in P: stored = value + 1 as u16, 0 = absent. Legal because -//! values <= 999 fit; a value that would need stored > 65535 is refused at -//! build time (`encode_sparse`). Because 0 means absent, a packed sparse -//! compare can never match an absent row. -//! S sparse: p0..p47 as unpacked i32 lanes (aliased to U's first 48 lanes), -//! and each sparse property as one presence mask (words_for(n) u64) plus a -//! COMPACT i32 value column over present rows only, in row order. The -//! compact column is read by walking the presence bits, so absent rows are -//! never visited and can never match. -//! -//! Evaluation: Quack `lower` + mask-risc `execute_into`, `Agg::Count`, plain -//! (non-fused) lowering. Quack has no ordered compare over an unsigned lane, -//! so a packed ORDERED compare (< or >=) needs a Rust extraction loop -//! (shift + mask + compare, 64 rows per output word) that writes a -//! preallocated mask plane which Quack then ANDs/ORs like any other plane. -//! A packed EQUALITY compare needs no loop: it lowers to `Cmp::MatchU32` -//! with pattern/care. The S sparse compare is also a Rust loop (over present -//! bits only). That loop cost is what this probe exists to measure against the -//! unpacked lane compare. Every extraction loop is counted as `ext_loops`. -//! -//! REFUSALS (never silently clamped; each is exercised by a check that fails -//! the run if it does not fire): -//! R1 a constant outside a packed field's range under P. -//! R2 (not a refusal, a parity law) a sparse compare never matches absent -//! rows under any layout: count(p50 >= 0) == presence count, not N. -//! R3 a sparse value that does not fit the P u16 encoding, refused when the -//! lane is built (separate tiny fixture). -//! -//! ORACLE: an independent scalar row loop over the LOGICAL formula `lv`; it -//! never reads any layout. It is never timed. Every arm's Count must equal it -//! or the binary exits 1. -//! -//! NOT claimed: no ms-scale result is a measurement here: a warm value -//! >= 1000 us prints FAILED-GATE and is reported, not hidden; build/prep -//! values are COLD (reported, not gate). No claim that the layouts are -//! equivalent beyond what the oracle checks. No tuple, no row-id list, no -//! persisted intermediate in any timed path. -//! -//! Usage: `project [--n 1000000|10000000]...` (default: both sizes). -//! Writes `/project/n/project.json`. - -use std::alloc::{GlobalAlloc, Layout, System}; -use std::fmt::Write as _; -use std::sync::atomic::{AtomicUsize, Ordering::Relaxed}; -use std::time::Instant; - -use lance_graph_mask_risc::{ - execute_into, words_for, Foreign, LaneRef, Out, Planes, Program, Scratch, Value, -}; -use lance_graph_quack::{lower, Agg, Cmp, Col, Filter, Mask, Query}; - -// --------------------------------------------------------------------------- -// counting allocator -// --------------------------------------------------------------------------- - -struct CountingAlloc; -static ALLOC_BYTES: AtomicUsize = AtomicUsize::new(0); - -// SAFETY: pure pass-through to `System`; the atomic is the only addition. -unsafe impl GlobalAlloc for CountingAlloc { - unsafe fn alloc(&self, layout: Layout) -> *mut u8 { - ALLOC_BYTES.fetch_add(layout.size(), Relaxed); - // SAFETY: same layout and contract as the caller's. - unsafe { System.alloc(layout) } - } - unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { - // SAFETY: `ptr` came from `alloc` above with this `layout`. - unsafe { System.dealloc(ptr, layout) } - } -} - -#[global_allocator] -static GLOBAL: CountingAlloc = CountingAlloc; - -fn alloc_bytes() -> usize { - ALLOC_BYTES.load(Relaxed) -} - -// --------------------------------------------------------------------------- -// logical data (the single source of truth; layouts and oracle both use `lv`) -// --------------------------------------------------------------------------- - -const SEED: u64 = 0x9E37_79B9_7F4A_7C15; -const N_PROPS: usize = 64; -const N_FULL: usize = 16; -const N_SMALL_END: usize = 48; -const MAX_EXT: usize = 16; - -/// Same closed formula as where_k.rs (u64, no overflow). -#[inline] -fn f(id: u64, j: u64) -> u64 { - let a = (id * 2_654_435_761 + j * 40_503) % 2_147_483_648; - ((a * 1_103_515_245) % 2_147_483_648) % 1000 -} - -/// SplitMix64-style finalizer keyed by (SEED, id, j); gives full-range bits. -#[inline] -fn h(id: u64, j: u64) -> u64 { - let mut z = SEED ^ id.wrapping_mul(0x9E37_79B9_7F4A_7C15) ^ (j + 1).wrapping_mul(0xD1B5_4A32_D192_ED03); - z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); - z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); - z ^ (z >> 31) -} - -/// Logical value of property `j` at row `id`; None = absent (SQL NULL). -#[inline] -fn lv(id: u64, j: usize) -> Option { - let ju = j as u64; - if j < N_FULL { - Some(i64::from(h(id, ju) as u32 as i32)) - } else if j < N_SMALL_END { - Some(((h(id, ju) >> 8) % 256) as i64) - } else if f(id, ju) % 50 == 0 { - Some(((h(id, ju) >> 16) % 1000) as i64) - } else { - None - } -} - -#[derive(Clone, Copy, PartialEq, Eq)] -enum Kind { - Full, - Small, - Sparse, -} -impl Kind { - fn of(j: usize) -> Kind { - if j < N_FULL { - Kind::Full - } else if j < N_SMALL_END { - Kind::Small - } else { - Kind::Sparse - } - } -} - -// --------------------------------------------------------------------------- -// predicate tree, refusals -// --------------------------------------------------------------------------- - -#[derive(Clone, Copy, PartialEq, Eq, Debug)] -enum Op { - Lt, - Eq, - Ge, -} -impl Op { - fn name(self) -> &'static str { - match self { - Op::Lt => "<", - Op::Eq => "=", - Op::Ge => ">=", - } - } -} -#[inline] -fn holds(op: Op, v: i64, c: i64) -> bool { - match op { - Op::Lt => v < c, - Op::Eq => v == c, - Op::Ge => v >= c, - } -} - -#[derive(Clone)] -enum Pr { - Leaf(usize, Op, i64), - And(Vec), - Or(Vec), -} - -#[derive(Debug, Clone)] -enum Refusal { - ConstOutsideI32 { prop: usize, c: i64 }, - ConstOutsidePackedU8 { prop: usize, c: i64 }, - ConstOutsidePackedU16 { prop: usize, c: i64 }, - SparseValueUnencodable { v: i64 }, - TooManyExtractions, - LowerFailed, -} -impl Refusal { - fn reason(&self) -> String { - match self { - Refusal::ConstOutsideI32 { prop, c } => { - format!("p{prop}: constant {c} does not fit an i32 lane") - } - Refusal::ConstOutsidePackedU8 { prop, c } => { - format!("p{prop}: constant {c} outside packed u8 range 0..=255") - } - Refusal::ConstOutsidePackedU16 { prop, c } => { - format!("p{prop}: constant {c} outside packed u16 sparse range 0..=65534") - } - Refusal::SparseValueUnencodable { v } => { - format!("sparse value {v} does not fit the u16 (value+1) encoding") - } - Refusal::TooManyExtractions => format!("more than {MAX_EXT} extraction planes"), - Refusal::LowerFailed => "quack lowering failed".to_string(), - } - } -} - -/// P sparse encoding: stored = value + 1 as u16, 0 = absent. -fn encode_sparse(v: i64) -> Result { - if v < 0 || v + 1 > 65_535 { - return Err(Refusal::SparseValueUnencodable { v }); - } - Ok((v + 1) as u16) -} - -/// Tiny-fixture packer for two sparse properties in one P lane (R3). -fn pack_sparse_pair(a: Option, b: Option) -> Result { - let ea = a.map_or(Ok(0u16), encode_sparse)?; - let eb = b.map_or(Ok(0u16), encode_sparse)?; - Ok(u32::from(ea) | (u32::from(eb) << 16)) -} - -/// ORACLE: scalar row evaluation over the logical formula. Absent => false -/// (equivalent to SQL unknown here because the trees contain no NOT). -fn oracle_row(p: &Pr, id: u64) -> bool { - match p { - Pr::Leaf(j, op, c) => lv(id, *j).is_some_and(|v| holds(*op, v, *c)), - Pr::And(c) => c.iter().all(|x| oracle_row(x, id)), - Pr::Or(c) => c.iter().any(|x| oracle_row(x, id)), - } -} -fn oracle_count(p: &Pr, n: usize) -> usize { - (0..n as u64).filter(|&id| oracle_row(p, id)).count() -} - -// --------------------------------------------------------------------------- -// layouts -// --------------------------------------------------------------------------- - -struct Store { - n: usize, - live: Vec, - // U (S aliases lanes 0..48, P aliases lanes 0..16) - u_lanes: Vec>, - u_pres: Vec>, - // P - p_small: Vec>, - p_sp: Vec>, - // S - s_pres: Vec>, - s_vals: Vec>, -} - -fn build_u(n: usize) -> (Vec>, Vec>) { - let words = words_for(n); - let mut lanes: Vec> = (0..N_PROPS).map(|_| Vec::with_capacity(n)).collect(); - let mut pres = vec![vec![0u64; words]; 16]; - for id in 0..n { - for (j, lane) in lanes.iter_mut().enumerate() { - let v = lv(id as u64, j); - lane.push(v.unwrap_or(0) as i32); - if j >= N_SMALL_END && v.is_some() { - pres[j - N_SMALL_END][id >> 6] |= 1u64 << (id & 63); - } - } - } - (lanes, pres) -} - -fn build_p(n: usize) -> (Vec>, Vec>) { - let mut small = vec![vec![0u32; n]; 8]; - let mut sp = vec![vec![0u32; n]; 8]; - for id in 0..n { - for i in 0..32 { - let v = lv(id as u64, N_FULL + i).expect("small is never absent") as u32; - small[i / 4][id] |= v << (8 * (i % 4)); - } - for s in 0..16 { - let e = match lv(id as u64, N_SMALL_END + s) { - Some(v) => u32::from(encode_sparse(v).expect("sparse values are <= 999")), - None => 0, - }; - sp[s / 2][id] |= e << (16 * (s % 2)); - } - } - (small, sp) -} - -fn build_s(n: usize) -> (Vec>, Vec>) { - let words = words_for(n); - let mut pres = vec![vec![0u64; words]; 16]; - let mut vals: Vec> = (0..16).map(|_| Vec::new()).collect(); - for id in 0..n { - for s in 0..16 { - if let Some(v) = lv(id as u64, N_SMALL_END + s) { - pres[s][id >> 6] |= 1u64 << (id & 63); - vals[s].push(v as i32); - } - } - } - (pres, vals) -} - -#[derive(Clone, Copy, PartialEq, Eq)] -enum Arm { - U, - P, - S, -} -impl Arm { - fn name(self) -> &'static str { - match self { - Arm::U => "U", - Arm::P => "P", - Arm::S => "S", - } - } -} - -struct ArmView<'a> { - arm: Arm, - lanes: Vec>, -} - -fn view(arm: Arm, st: &Store) -> ArmView<'_> { - let mut lanes: Vec> = Vec::new(); - match arm { - Arm::U => lanes.extend(st.u_lanes.iter().map(|c| LaneRef::I32(c))), - Arm::S => lanes.extend(st.u_lanes[..N_SMALL_END].iter().map(|c| LaneRef::I32(c))), - Arm::P => { - lanes.extend(st.u_lanes[..N_FULL].iter().map(|c| LaneRef::I32(c))); - lanes.extend(st.p_small.iter().map(|c| LaneRef::U32(c))); - lanes.extend(st.p_sp.iter().map(|c| LaneRef::U32(c))); - } - } - ArmView { arm, lanes } -} - -// --------------------------------------------------------------------------- -// compilation: logical predicate -> Quack filter + extraction specs -// --------------------------------------------------------------------------- - -enum Spec { - PackU8 { lane: usize, shift: u32, op: Op, c: u32 }, - PackU16 { lane: usize, shift: u32, op: Op, c: i64 }, - Sparse { s: usize, op: Op, c: i64 }, -} - -struct Ctx { - arm: Arm, - specs: Vec, - touched: Vec, - planes: usize, -} -impl Ctx { - fn touch(&mut self, id: u32) { - if !self.touched.contains(&id) { - self.touched.push(id); - } - } -} - -fn qcmp(op: Op, c: i32) -> Cmp { - match op { - Op::Lt => Cmp::LtI32(c), - Op::Eq => Cmp::EqI32(c), - Op::Ge => Cmp::GeI32(c), - } -} - -fn push_ext(cx: &mut Ctx, spec: Spec) -> Result { - if cx.specs.len() >= MAX_EXT { - return Err(Refusal::TooManyExtractions); - } - cx.specs.push(spec); - cx.planes += 1; - Ok(Filter::plane(Mask(cx.specs.len() as _))) -} - -fn leaf(cx: &mut Ctx, j: usize, op: Op, c: i64) -> Result { - let kind = Kind::of(j); - let as_i32 = |c: i64| i32::try_from(c).map_err(|_| Refusal::ConstOutsideI32 { prop: j, c }); - match (cx.arm, kind) { - (_, Kind::Full) | (Arm::U, Kind::Small) | (Arm::S, Kind::Small) => { - let c32 = as_i32(c)?; - cx.touch(j as u32); - Ok(Filter::cmp(Col(j as u16), qcmp(op, c32))) - } - (Arm::U, Kind::Sparse) => { - let c32 = as_i32(c)?; - cx.touch(j as u32); - cx.planes += 1; - Ok(Filter::and([ - Filter::cmp(Col(j as u16), qcmp(op, c32)), - Filter::plane(Mask((1 + j - N_SMALL_END) as _)), - ])) - } - (Arm::P, Kind::Small) => { - if !(0..=255).contains(&c) { - return Err(Refusal::ConstOutsidePackedU8 { prop: j, c }); - } - let i = j - N_FULL; - let (lane, shift) = (i / 4, 8 * (i % 4) as u32); - cx.touch(1000 + lane as u32); - if op == Op::Eq { - let cmp = Cmp::MatchU32 { - pattern: (c as u32) << shift, - care: 0xFFu32 << shift, - }; - return Ok(Filter::cmp(Col((N_FULL + lane) as u16), cmp)); - } - push_ext(cx, Spec::PackU8 { lane, shift, op, c: c as u32 }) - } - (Arm::P, Kind::Sparse) => { - if !(0..=65_534).contains(&c) { - return Err(Refusal::ConstOutsidePackedU16 { prop: j, c }); - } - let s = j - N_SMALL_END; - let (lane, shift) = (s / 2, 16 * (s % 2) as u32); - cx.touch(2000 + lane as u32); - if op == Op::Eq { - // stored = value + 1, so an absent row (0) can never match. - let cmp = Cmp::MatchU32 { - pattern: ((c + 1) as u32) << shift, - care: 0xFFFFu32 << shift, - }; - return Ok(Filter::cmp(Col((N_FULL + 8 + lane) as u16), cmp)); - } - push_ext(cx, Spec::PackU16 { lane, shift, op, c }) - } - (Arm::S, Kind::Sparse) => { - let s = j - N_SMALL_END; - cx.touch(3000 + s as u32); - push_ext(cx, Spec::Sparse { s, op, c }) - } - } -} - -fn compile(cx: &mut Ctx, p: &Pr) -> Result { - match p { - Pr::Leaf(j, op, c) => leaf(cx, *j, *op, *c), - Pr::And(v) => { - let fs = v.iter().map(|x| compile(cx, x)).collect::, _>>()?; - Ok(Filter::and(fs)) - } - Pr::Or(v) => { - let fs = v.iter().map(|x| compile(cx, x)).collect::, _>>()?; - Ok(Filter::or(fs)) - } - } -} - -// --------------------------------------------------------------------------- -// prepared program + evaluation -// --------------------------------------------------------------------------- - -struct Prog { - program: Program, - scratch: Scratch<'static>, -} - -struct Prep { - prog: Prog, - specs: Vec, - bufs: Vec>, - lanes_touched: usize, - planes: usize, -} - -fn prepare(v: &ArmView<'_>, st: &Store, p: &Pr) -> Result { - let mut cx = Ctx { - arm: v.arm, - specs: Vec::new(), - touched: Vec::new(), - planes: 0, - }; - let filter = compile(&mut cx, p)?; - let q = Query { - filter, - agg: Agg::Count, - }; - let program = lower(&q).map_err(|_| Refusal::LowerFailed)?; - let scratch = Scratch::for_program(&program, st.n).map_err(|_| Refusal::LowerFailed)?; - let bufs = (0..cx.specs.len()) - .map(|_| vec![0u64; words_for(st.n)]) - .collect(); - Ok(Prep { - prog: Prog { program, scratch }, - lanes_touched: cx.touched.len(), - planes: cx.planes, - specs: cx.specs, - bufs, - }) -} - -/// Extraction loop: one output word per 64 rows; shift + mask + compare. -fn fill_lane(buf: &mut [u64], lane: &[u32], shift: u32, wmask: u32, test: impl Fn(u32) -> bool) { - for (w, chunk) in lane.chunks(64).enumerate() { - let mut word = 0u64; - for (b, &x) in chunk.iter().enumerate() { - word |= u64::from(test((x >> shift) & wmask)) << b; - } - buf[w] = word; - } -} - -fn fill(buf: &mut [u64], sp: &Spec, st: &Store) { - match *sp { - Spec::PackU8 { lane, shift, op, c } => { - let l = &st.p_small[lane]; - match op { - Op::Lt => fill_lane(buf, l, shift, 0xFF, |e| e < c), - Op::Ge => fill_lane(buf, l, shift, 0xFF, |e| e >= c), - Op::Eq => fill_lane(buf, l, shift, 0xFF, |e| e == c), - } - } - Spec::PackU16 { lane, shift, op, c } => { - // e = value + 1 (0 = absent). value < c <=> 0 < e <= c. - let l = &st.p_sp[lane]; - let cu = c as u32; - match op { - Op::Lt => fill_lane(buf, l, shift, 0xFFFF, |e| e != 0 && e <= cu), - Op::Ge => fill_lane(buf, l, shift, 0xFFFF, |e| e >= cu + 1), - Op::Eq => fill_lane(buf, l, shift, 0xFFFF, |e| e == cu + 1), - } - } - Spec::Sparse { s, op, c } => { - let (pres, vals) = (&st.s_pres[s], &st.s_vals[s]); - let mut k = 0usize; - for (w, &pw) in pres.iter().enumerate() { - let (mut m, mut out) = (pw, 0u64); - while m != 0 { - let b = m.trailing_zeros(); - if holds(op, i64::from(vals[k]), c) { - out |= 1u64 << b; - } - k += 1; - m &= m - 1; - } - buf[w] = out; - } - } - } -} - -fn eval(v: &ArmView<'_>, st: &Store, pr: &mut Prep) -> usize { - let Prep { - prog, specs, bufs, .. - } = pr; - for (i, sp) in specs.iter().enumerate() { - fill(&mut bufs[i], sp, st); - } - let masks: [&[u64]; 17] = std::array::from_fn(|i| { - if i == 0 { - &st.live[..] - } else if v.arm == Arm::U { - &st.u_pres[i - 1][..] - } else if i - 1 < bufs.len() { - &bufs[i - 1][..] - } else { - &st.live[..] - } - }); - let planes = Planes { - n_rows: st.n, - masks: &masks, - lanes: &v.lanes, - }; - match execute_into( - &prog.program, - &planes, - &Foreign::NONE, - &mut prog.scratch, - Out::None, - ) - .expect("mask-risc runs") - { - Value::Count(c) => c, - other => panic!("expected Count, got {other:?}"), - } -} - -// --------------------------------------------------------------------------- -// timing -// --------------------------------------------------------------------------- - -fn median_us(runs: usize, mut f: impl FnMut()) -> (f64, usize) { - let t = Instant::now(); - f(); - let first = t.elapsed().as_nanos() as f64 / 1000.0; - let runs = if first > 20_000.0 { runs.min(11) } else { runs }; - let mut v = Vec::with_capacity(runs); - for _ in 0..runs { - let t = Instant::now(); - f(); - v.push(t.elapsed().as_nanos() as f64 / 1000.0); - } - v.sort_by(|a, b| a.partial_cmp(b).unwrap()); - (v[v.len() / 2], runs) -} - -fn jf(x: f64) -> String { - format!("{x:.3}") -} - -// --------------------------------------------------------------------------- -// cases -// --------------------------------------------------------------------------- - -struct Case { - id: String, - k: usize, - mix: &'static str, - shape: &'static str, - tree: Pr, -} - -fn case_leaf(mix: &str, i: usize) -> Pr { - // kind of the i-th leaf, then property + op + constant by kind. - let kind = match mix { - "full" => 0, - "packed" => 1, - "sparse" => 2, - _ => i % 3, - }; - let idx = if mix == "mixed" { i / 3 } else { i }; - match kind { - 0 => { - let (op, c) = [(Op::Lt, i64::from(i32::MAX / 2)), (Op::Ge, 0), (Op::Lt, 0)][idx % 3]; - Pr::Leaf(idx % N_FULL, op, c) - } - 1 => { - let (op, c) = [(Op::Lt, 200), (Op::Ge, 20), (Op::Lt, 230)][idx % 3]; - Pr::Leaf(N_FULL + idx % 32, op, c) - } - _ => { - let (op, c) = [(Op::Ge, 0), (Op::Lt, 800), (Op::Ge, 100)][idx % 3]; - Pr::Leaf(N_SMALL_END + idx % 16, op, c) - } - } -} - -fn gen_cases() -> Vec { - let mut cases = Vec::new(); - for k in [1usize, 4, 16] { - for mix in ["full", "packed", "sparse", "mixed"] { - let leaves: Vec = (0..k).map(|i| case_leaf(mix, i)).collect(); - let tree = if k == 1 { - leaves.into_iter().next().unwrap() - } else { - Pr::And(leaves) - }; - cases.push(Case { - id: format!("k{k}_{mix}_and"), - k, - mix, - shape: if k == 1 { "single" } else { "and" }, - tree, - }); - } - } - for k in [4usize, 16] { - let leaves: Vec = (0..k).map(|i| case_leaf("mixed", i)).collect(); - cases.push(Case { - id: format!("k{k}_mixed_or"), - k, - mix: "mixed", - shape: "or", - tree: Pr::Or(leaves), - }); - } - cases -} - -// --------------------------------------------------------------------------- -// main -// --------------------------------------------------------------------------- - -struct Totals { - gate_failed: usize, - failures: usize, -} - -fn run_once(arm: Arm, st: &Store, p: &Pr) -> Result { - let v = view(arm, st); - let mut pr = prepare(&v, st, p)?; - Ok(eval(&v, st, &mut pr)) -} - -fn fmt_res(r: &Result) -> String { - match r { - Ok(c) => c.to_string(), - Err(e) => format!("REFUSED({})", e.reason()), - } -} - -/// Refusal and parity checks. Returns the JSON array body. -fn refusal_checks(st: &Store, n: usize, t: &mut Totals) -> String { - let mut js = String::new(); - let (mut r1_fired, mut r3_fired) = (0usize, 0usize); - - // R1: constant outside a packed field's range. P refuses, U and S answer. - let r1: [(&str, Pr); 4] = [ - ("p20 < 300", Pr::Leaf(20, Op::Lt, 300)), - ("p20 = -1", Pr::Leaf(20, Op::Eq, -1)), - ("p20 >= 256", Pr::Leaf(20, Op::Ge, 256)), - ("p50 < 70000", Pr::Leaf(50, Op::Lt, 70_000)), - ]; - for (label, tree) in &r1 { - let (u, p, s) = ( - run_once(Arm::U, st, tree), - run_once(Arm::P, st, tree), - run_once(Arm::S, st, tree), - ); - let o = oracle_count(tree, n); - println!( - "R1 {label:<12} U={} P={} S={} oracle={o}", - fmt_res(&u), - fmt_res(&p), - fmt_res(&s) - ); - let fired = p.is_err(); - let ok = fired && u.as_ref().is_ok_and(|c| *c == o) && s.as_ref().is_ok_and(|c| *c == o); - if fired { - r1_fired += 1; - } - if !ok { - eprintln!("CHECK FAILED R1 {label}"); - t.failures += 1; - } - let _ = write!( - js, - "{{\"check\":\"R1\",\"query\":\"{label}\",\"U\":\"{}\",\"P\":\"{}\",\"S\":\"{}\",\"oracle\":{o}}},", - fmt_res(&u), - fmt_res(&p).replace('"', "'"), - fmt_res(&s) - ); - } - // R1 silence twin: in-range constants must NOT refuse and must be exact. - for (label, tree) in [ - ("p20 < 200", Pr::Leaf(20, Op::Lt, 200)), - ("p20 = 255", Pr::Leaf(20, Op::Eq, 255)), - ("p50 >= 100", Pr::Leaf(50, Op::Ge, 100)), - ] { - let p = run_once(Arm::P, st, &tree); - let o = oracle_count(&tree, n); - println!("R1-silent {label:<12} P={} oracle={o}", fmt_res(&p)); - if !p.as_ref().is_ok_and(|c| *c == o) { - eprintln!("CHECK FAILED R1-silent {label}"); - t.failures += 1; - } - } - - // R2: a sparse compare never matches absent rows, in any layout. - let present = (0..n as u64).filter(|&id| lv(id, 50).is_some()).count(); - let tree = Pr::Leaf(50, Op::Ge, 0); - for arm in [Arm::U, Arm::P, Arm::S] { - let r = run_once(arm, st, &tree); - println!("R2 {} count(p50 >= 0)={} presence={present} N={n}", arm.name(), fmt_res(&r)); - let ok = r.as_ref().is_ok_and(|c| *c == present) && present < n; - if !ok { - eprintln!("CHECK FAILED R2 {}", arm.name()); - t.failures += 1; - } - } - let _ = write!(js, "{{\"check\":\"R2\",\"presence\":{present},\"n\":{n}}},"); - - // R3: out-of-range sparse value refused when the P lane is built. - let bad = pack_sparse_pair(Some(70_000), Some(5)); - let neg = pack_sparse_pair(Some(1), Some(-3)); - let good = pack_sparse_pair(Some(999), None); - println!("R3 70000 -> {:?}, -3 -> {:?}, (999,absent) -> {:?}", bad, neg, good); - if bad.is_err() { - r3_fired += 1; - } - if neg.is_err() { - r3_fired += 1; - } - let good_ok = good.as_ref().is_ok_and(|w| *w == 1000); - if r3_fired != 2 || !good_ok { - eprintln!("CHECK FAILED R3 (fired {r3_fired}/2, valid-encodes {good_ok})"); - t.failures += 1; - } - let _ = write!(js, "{{\"check\":\"R3\",\"fired\":{r3_fired},\"valid_encodes\":{good_ok}}}"); - - if r1_fired != r1.len() { - eprintln!("CHECK FAILED: R1 refusal fired {r1_fired}/{} times", r1.len()); - t.failures += 1; - } - js -} - -fn run_size(out_root: &str, n: usize) -> bool { - println!("== N = {n} =="); - let mut t = Totals { - gate_failed: 0, - failures: 0, - }; - let words = words_for(n); - let mut live = vec![0u64; words]; - for r in 0..n { - live[r >> 6] |= 1u64 << (r & 63); - } - - let t0 = Instant::now(); - let (u_lanes, u_pres) = build_u(n); - let build_u_us = t0.elapsed().as_nanos() as f64 / 1000.0; - let t0 = Instant::now(); - let (p_small, p_sp) = build_p(n); - let build_p_us = t0.elapsed().as_nanos() as f64 / 1000.0; - let t0 = Instant::now(); - let (s_pres, s_vals) = build_s(n); - let build_s_us = t0.elapsed().as_nanos() as f64 / 1000.0; - let compact: usize = s_vals.iter().map(Vec::len).sum(); - let st = Store { - n, - live, - u_lanes, - u_pres, - p_small, - p_sp, - s_pres, - s_vals, - }; - let lane_b = n * 4; - let bytes_u = 64 * lane_b + 16 * words * 8; - let bytes_p = 32 * lane_b; - let bytes_s = 48 * lane_b + 16 * words * 8 + compact * 4; - println!( - "COLD (reported, not gate) build us: U {build_u_us:.0} P {build_p_us:.0} S {build_s_us:.0} \ - (P aliases U's 16 full lanes, S aliases U's 48 lanes; those are not charged again)" - ); - println!( - "storage bytes: U {bytes_u} (64 lanes, over budget) P {bytes_p} (32 lanes) S {bytes_s} \ - (48 lanes + 16 presence + {compact} compact values)" - ); - - let checks_js = refusal_checks(&st, n, &mut t); - - let cases = gen_cases(); - let mut recs = String::new(); - for (ci, c) in cases.iter().enumerate() { - let o = oracle_count(&c.tree, n); - println!("case {:<16} K={:<2} mix={:<6} oracle count {o}", c.id, c.k, c.mix); - for arm in [Arm::U, Arm::P, Arm::S] { - let v = view(arm, &st); - let t0 = Instant::now(); - let prep = prepare(&v, &st, &c.tree); - let prep_us = t0.elapsed().as_nanos() as f64 / 1000.0; - let mut pr = match prep { - Ok(p) => p, - Err(e) => { - eprintln!("UNEXPECTED REFUSAL {} {}: {}", c.id, arm.name(), e.reason()); - t.failures += 1; - continue; - } - }; - let got = eval(&v, &st, &mut pr); - if got != o { - eprintln!("MISMATCH {} {}: oracle {o}, got {got}", c.id, arm.name()); - t.failures += 1; - } - let b0 = alloc_bytes(); - std::hint::black_box(eval(&v, &st, &mut pr)); - let alloc = alloc_bytes() - b0; - let (warm, runs) = median_us(31, || { - std::hint::black_box(eval(&v, &st, &mut pr)); - }); - let gate = warm >= 1000.0; - if gate { - println!("FAILED-GATE n={n} {} {} warm {warm:.1} us", c.id, arm.name()); - t.gate_failed += 1; - } - println!( - " {} lanes {:>2} planes {:>2} ext_loops {:>2} prep {:.0} us (COLD) warm {:.2} us alloc {alloc} B", - arm.name(), - pr.lanes_touched, - pr.planes, - pr.specs.len(), - prep_us, - warm - ); - if !recs.is_empty() { - recs.push(','); - } - let _ = write!( - recs, - "\n{{\"layout\":\"{}\",\"case\":\"{}\",\"k\":{},\"mix\":\"{}\",\"shape\":\"{}\",\ -\"count\":{got},\"oracle\":{o},\"prep_us_cold\":{},\"warm_median_us\":{},\"runs\":{runs},\ -\"failed_gate\":{gate},\"alloc_bytes_eval\":{alloc},\"lanes_touched\":{},\"planes\":{},\"ext_loops\":{}}}", - arm.name(), - c.id, - c.k, - c.mix, - c.shape, - jf(prep_us), - jf(warm), - pr.lanes_touched, - pr.planes, - pr.specs.len() - ); - } - let _ = ci; - } - - let dir = format!("{out_root}/project/n{n}"); - std::fs::create_dir_all(&dir).expect("create out dir"); - let _ = (u_lane_note(), Op::Eq.name()); - let js = format!( - "{{\"n\":{n},\"seed\":{SEED},\"build_us_cold\":{{\"U\":{},\"P\":{},\"S\":{}}},\ -\"storage_bytes\":{{\"U\":{bytes_u},\"P\":{bytes_p},\"S\":{bytes_s}}},\"s_compact_values\":{compact},\ -\"checks\":[{checks_js}],\"records\":[{recs}\n]}}\n", - jf(build_u_us), - jf(build_p_us), - jf(build_s_us) - ); - std::fs::write(format!("{dir}/project.json"), js).expect("write project.json"); - println!( - "N={n}: {} FAILED-GATE values (warm >= 1000 us, reported), {} failures", - t.gate_failed, t.failures - ); - t.failures == 0 -} - -fn u_lane_note() -> &'static str { - "U needs 64 lanes + 16 presence planes; over the 32-lane budget" -} - -fn main() { - let args: Vec = std::env::args().collect(); - if args.len() < 2 || args[1].starts_with("--") { - eprintln!("usage: project [--n 1000000|10000000]..."); - std::process::exit(2); - } - let out = args[1].clone(); - let mut sizes: Vec = Vec::new(); - let mut i = 2; - while i < args.len() { - if args[i] == "--n" && i + 1 < args.len() { - sizes.push(args[i + 1].parse().expect("--n takes an integer")); - i += 2; - } else { - eprintln!("unknown argument {}", args[i]); - std::process::exit(2); - } - } - if sizes.is_empty() { - sizes = vec![1_000_000, 10_000_000]; - } - let mut ok = true; - for n in sizes { - ok &= run_size(&out, n); - } - if !ok { - println!("PROJECT FAILED: answer mismatch or a refusal did not fire"); - std::process::exit(1); - } - println!("PROJECT ALL ANSWERS MATCH THE ORACLE, ALL REFUSALS FIRED"); -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs deleted file mode 100644 index 88486e37b..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/bin/where_k.rs +++ /dev/null @@ -1,1065 +0,0 @@ -//! LAB: D-GLOBAL-WHERE P2 Part 5, the criteria-aware WHERE probe (ours side). -//! -//! Lab only. Standalone: it does not use the probe's lib.rs. A K-criteria -//! `WHERE` over resident `i32` lanes c0..c15 (c15 nullable through a resident -//! validity plane), lowered by Quack (`lower` / `lower_fused`, optionally -//! `Filter::and_by_skip` ordered, `Filter::sql_where` for the nullable case) -//! and executed by mask-risc `execute_into`. No tuple, no row-ID list, no -//! persisted intermediate in any timed path. The scalar row loop below is the -//! ORACLE only (it is how `achieved` is computed and how every answer is -//! checked); it is never timed. -//! -//! Usage: `where_k [--n 1000000|10000000]...` (default: both sizes). -//! Writes `/where/n/cases.json` and `/where/n/where_ours.json`. -//! Exit 1 on any answer mismatch against the oracle. A warm value >= 1000 us -//! prints FAILED-GATE (counted, reported, does not change the exit code: it is -//! a gate on the substrate path, not a correctness check). -//! -//! Column formula (identical to the SQL in duckdb/bench_where.py; u64, no -//! overflow because every operand is < 2^31 before each multiply): -//! f(id, j) = (((id * 2654435761 + j * 40503) % 2147483648) * 1103515245 -//! % 2147483648) % 1000 -//! c_j = f(id, j) for j != 1; c1 = (c0 + f(id, 1) % 20) % 1000 -//! c15 is NULL (validity bit clear) where f(id, 15) % 10 == 0; the value -//! lane keeps f(id, 15) there as stale payload, which must never matter. - -use std::alloc::{GlobalAlloc, Layout, System}; -use std::fmt::Write as _; -use std::sync::atomic::{AtomicUsize, Ordering::Relaxed}; -use std::time::Instant; - -use lance_graph_mask_risc::{ - execute_into, tile_words_for, words_for, Foreign, LaneRef, Out, Planes, Program, Scratch, - Value, -}; -use lance_graph_quack::{lower, lower_fused, Agg, Cmp, Col, Filter, Mask, Query}; - -// --------------------------------------------------------------------------- -// counting allocator -// --------------------------------------------------------------------------- - -struct CountingAlloc; -static ALLOC_BYTES: AtomicUsize = AtomicUsize::new(0); - -// SAFETY: pure pass-through to `System`; the atomic is the only addition. -unsafe impl GlobalAlloc for CountingAlloc { - unsafe fn alloc(&self, layout: Layout) -> *mut u8 { - ALLOC_BYTES.fetch_add(layout.size(), Relaxed); - // SAFETY: same layout and contract as the caller's. - unsafe { System.alloc(layout) } - } - unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { - // SAFETY: `ptr` came from `alloc` above with this `layout`. - unsafe { System.dealloc(ptr, layout) } - } -} - -#[global_allocator] -static GLOBAL: CountingAlloc = CountingAlloc; - -fn alloc_bytes() -> usize { - ALLOC_BYTES.load(Relaxed) -} - -// --------------------------------------------------------------------------- -// deterministic data -// --------------------------------------------------------------------------- - -const SEED: u64 = 0x9E37_79B9_7F4A_7C15; - -struct Rng(u64); -impl Rng { - fn next_u64(&mut self) -> u64 { - self.0 = self.0.wrapping_add(0x9E37_79B9_7F4A_7C15); - let mut z = self.0; - z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); - z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); - z ^ (z >> 31) - } - fn below(&mut self, n: u64) -> u64 { - self.next_u64() % n - } -} - -#[inline] -fn f(id: u64, j: u64) -> u64 { - let a = (id * 2_654_435_761 + j * 40_503) % 2_147_483_648; - ((a * 1_103_515_245) % 2_147_483_648) % 1000 -} - -struct Data { - n: usize, - cols: Vec>, - live: Vec, - valid: Vec, -} - -fn build_data(n: usize) -> Data { - let words = words_for(n); - let mut cols: Vec> = (0..16).map(|_| Vec::with_capacity(n)).collect(); - let mut valid = vec![0u64; words]; - for id in 0..n as u64 { - let c0 = f(id, 0); - for (j, col) in cols.iter_mut().enumerate() { - let v = if j == 1 { - (c0 + f(id, 1) % 20) % 1000 - } else { - f(id, j as u64) - }; - col.push(v as i32); - } - if f(id, 15) % 10 != 0 { - let r = id as usize; - valid[r >> 6] |= 1u64 << (r & 63); - } - } - let mut live = vec![0u64; words]; - for r in 0..n { - live[r >> 6] |= 1u64 << (r & 63); - } - Data { - n, - cols, - live, - valid, - } -} - -struct Env<'a> { - n: usize, - masks: [&'a [u64]; 2], - lanes: Vec>, -} - -impl<'a> Env<'a> { - fn new(d: &'a Data) -> Env<'a> { - Env { - n: d.n, - masks: [&d.live, &d.valid], - lanes: d.cols.iter().map(|c| LaneRef::I32(c)).collect(), - } - } - fn planes(&self) -> Planes<'_> { - Planes { - n_rows: self.n, - masks: &self.masks, - lanes: &self.lanes, - } - } -} - -// --------------------------------------------------------------------------- -// predicate tree (shared shape with cases.json) -// --------------------------------------------------------------------------- - -#[derive(Clone, Copy, PartialEq, Eq)] -enum Op { - Lt, - Le, - Gt, - Ge, - Eq, - Ne, -} - -impl Op { - fn name(self) -> &'static str { - match self { - Op::Lt => "lt", - Op::Le => "le", - Op::Gt => "gt", - Op::Ge => "ge", - Op::Eq => "eq", - Op::Ne => "ne", - } - } - fn cmp(self, v: i32) -> Cmp { - match self { - Op::Lt => Cmp::LtI32(v), - Op::Le => Cmp::LeI32(v), - Op::Gt => Cmp::GtI32(v), - Op::Ge => Cmp::GeI32(v), - Op::Eq => Cmp::EqI32(v), - Op::Ne => Cmp::NeI32(v), - } - } - fn holds(self, x: i32, v: i32) -> bool { - match self { - Op::Lt => x < v, - Op::Le => x <= v, - Op::Gt => x > v, - Op::Ge => x >= v, - Op::Eq => x == v, - Op::Ne => x != v, - } - } -} - -#[derive(Clone)] -enum Node { - Leaf { col: u16, op: Op, v: i32 }, - And(Vec), - Or(Vec), - Not(Box), -} - -fn leaf(col: u16, op: Op, v: i32) -> Node { - Node::Leaf { col, op, v } -} - -fn leaf_count(n: &Node) -> usize { - match n { - Node::Leaf { .. } => 1, - Node::And(c) | Node::Or(c) => c.iter().map(leaf_count).sum(), - Node::Not(c) => leaf_count(c), - } -} - -fn tree_json(n: &Node) -> String { - match n { - Node::Leaf { col, op, v } => format!( - "{{\"op\":\"cmp\",\"col\":{col},\"cmpop\":\"{}\",\"value\":{v}}}", - op.name() - ), - Node::And(c) | Node::Or(c) => { - let name = if matches!(n, Node::And(_)) { "and" } else { "or" }; - let parts: Vec = c.iter().map(tree_json).collect(); - format!("{{\"op\":\"{name}\",\"args\":[{}]}}", parts.join(",")) - } - Node::Not(c) => format!("{{\"op\":\"not\",\"arg\":{}}}", tree_json(c)), - } -} - -/// ORACLE: SQL three-valued evaluation of the tree at one row. -/// 0 = FALSE, 1 = TRUE, 2 = UNKNOWN. -fn eval3(n: &Node, row: usize, d: &Data) -> u8 { - match n { - Node::Leaf { col, op, v } => { - if *col == 15 && (d.valid[row >> 6] >> (row & 63)) & 1 == 0 { - return 2; - } - u8::from(op.holds(d.cols[*col as usize][row], *v)) - } - Node::And(c) => { - let mut unk = false; - for x in c { - match eval3(x, row, d) { - 0 => return 0, - 2 => unk = true, - _ => {} - } - } - if unk { - 2 - } else { - 1 - } - } - Node::Or(c) => { - let mut unk = false; - for x in c { - match eval3(x, row, d) { - 1 => return 1, - 2 => unk = true, - _ => {} - } - } - if unk { - 2 - } else { - 0 - } - } - Node::Not(c) => match eval3(c, row, d) { - 0 => 1, - 1 => 0, - _ => 2, - }, - } -} - -/// ORACLE: rows for which the WHERE clause is TRUE (scalar row loop). -fn oracle_count(n: &Node, d: &Data) -> usize { - (0..d.n).filter(|&r| eval3(n, r, d) == 1).count() -} - -// --------------------------------------------------------------------------- -// tree -> Quack filter (plain order, and_by_skip order) -// --------------------------------------------------------------------------- - -fn to_filter(n: &Node) -> Filter { - match n { - Node::Leaf { col, op, v } => Filter::cmp(Col(*col), op.cmp(*v)), - Node::And(c) => Filter::and(c.iter().map(to_filter)), - Node::Or(c) => Filter::or(c.iter().map(to_filter)), - Node::Not(c) => Filter::negate(to_filter(c)), - } -} - -/// Estimated survival fraction. Assumes uniform columns on 0..999 and -/// independent leaves; it is NOT measured from the data. It is the score -/// source for the `and_by_skip` ordering: the more selective child (the -/// smaller estimate) gets the higher skip score and moves to the front. -fn est(n: &Node) -> f64 { - let s = match n { - Node::Leaf { op, v, .. } => { - let v = f64::from(*v); - match op { - Op::Lt => v / 1000.0, - Op::Le => (v + 1.0) / 1000.0, - Op::Gt => (999.0 - v) / 1000.0, - Op::Ge => (1000.0 - v) / 1000.0, - Op::Eq => 0.001, - Op::Ne => 0.999, - } - } - Node::And(c) => c.iter().map(est).product(), - Node::Or(c) => 1.0 - c.iter().map(|x| 1.0 - est(x)).product::(), - Node::Not(c) => 1.0 - est(c), - }; - s.clamp(0.0, 1.0) -} - -fn to_filter_skip(n: &Node) -> Filter { - match n { - Node::Leaf { .. } => to_filter(n), - Node::And(c) => Filter::and_by_skip( - c.iter() - .map(|x| (((1.0 - est(x)) * 1_000_000.0) as u32, to_filter_skip(x))), - ), - Node::Or(c) => Filter::or(c.iter().map(to_filter_skip)), - Node::Not(c) => Filter::negate(to_filter_skip(c)), - } -} - -fn finish(f: Filter, nullable: bool) -> Filter { - if nullable { - f.sql_where(&[(Col(15), Mask(1))]) - } else { - f - } -} - -// --------------------------------------------------------------------------- -// prepared programs -// --------------------------------------------------------------------------- - -struct Prog { - program: Program, - scratch: Scratch<'static>, -} - -fn mk(filter: &Filter, agg: Agg, n: usize, fused: bool) -> Option { - let q = Query { - filter: filter.clone(), - agg, - }; - let lowered = if fused { lower_fused(&q) } else { lower(&q) }; - let program = match lowered { - Ok(p) => p, - Err(e) => { - eprintln!("lower failed (fused={fused}): {e:?}"); - return None; - } - }; - let scratch = Scratch::for_program(&program, n).ok()?; - Some(Prog { program, scratch }) -} - -fn run_count(p: &mut Prog, planes: &Planes<'_>) -> usize { - match execute_into( - &p.program, - planes, - &Foreign::NONE, - &mut p.scratch, - Out::None, - ) - .expect("mask-risc runs") - { - Value::Count(c) => c, - other => panic!("expected Count, got {other:?}"), - } -} - -fn run_any(p: &mut Prog, planes: &Planes<'_>) -> bool { - match execute_into( - &p.program, - planes, - &Foreign::NONE, - &mut p.scratch, - Out::None, - ) - .expect("mask-risc runs") - { - Value::Bool(b) => b, - other => panic!("expected Bool, got {other:?}"), - } -} - -fn run_rows(p: &mut Prog, planes: &Planes<'_>, out: &mut [u64]) { - execute_into( - &p.program, - planes, - &Foreign::NONE, - &mut p.scratch, - Out::Mask(out), - ) - .expect("mask-risc runs"); -} - -/// Search helper: count of a tree through plain `lower` (no oracle). -fn count_node(node: &Node, planes: &Planes<'_>, n: usize) -> usize { - let mut p = mk(&to_filter(node), Agg::Count, n, false).expect("search lowers"); - run_count(&mut p, planes) -} - -// --------------------------------------------------------------------------- -// timing -// --------------------------------------------------------------------------- - -/// Median wall time in us over `runs` runs after one warm-up. If the warm-up -/// alone exceeds 20 ms the run count drops to 11 (recorded by the caller). -fn median_us(runs: usize, mut f: impl FnMut()) -> (f64, usize) { - let t = Instant::now(); - f(); - let first = t.elapsed().as_nanos() as f64 / 1000.0; - let runs = if first > 20_000.0 { runs.min(11) } else { runs }; - let mut v = Vec::with_capacity(runs); - for _ in 0..runs { - let t = Instant::now(); - f(); - v.push(t.elapsed().as_nanos() as f64 / 1000.0); - } - v.sort_by(|a, b| a.partial_cmp(b).unwrap()); - (v[v.len() / 2], runs) -} - -fn jf(x: f64) -> String { - format!("{x:.3}") -} -fn jo(x: Option) -> String { - x.map_or("null".to_string(), jf) -} - -// --------------------------------------------------------------------------- -// case generation -// --------------------------------------------------------------------------- - -struct Case { - id: String, - k_group: &'static str, - pop: &'static str, - shape: String, - adversarial: bool, - nullable: bool, - target: usize, - tree: Node, - achieved: usize, -} - -fn k_group(k: usize) -> &'static str { - match k { - 0 | 1 => "1", - 2..=4 => "2-4", - 5..=16 => "5-16", - _ => "17+", - } -} - -/// Leaf `i` of a grid case: even leaves are `col < v`, odd leaves are -/// `col >= 1000 - v`; both have selectivity `v / 1000`. -fn grid_leaf(col: u16, i: usize, v: i32) -> Node { - if i % 2 == 0 { - leaf(col, Op::Lt, v) - } else { - leaf(col, Op::Ge, 1000 - v) - } -} - -fn grid_tree(shape: &str, k: usize, cols: &[u16], vs: &[i32]) -> Node { - let leaves: Vec = (0..k) - .map(|i| grid_leaf(cols[i % cols.len()], i, vs[i])) - .collect(); - if k == 1 { - return leaves.into_iter().next().unwrap(); - } - match shape { - "and" => Node::And(leaves), - "or" => Node::Or(leaves), - _ => { - // mixed: AND of OR-pairs (an odd last leaf stands alone). - let mut groups: Vec = Vec::new(); - let mut it = leaves.into_iter(); - while let Some(a) = it.next() { - match it.next() { - Some(b) => groups.push(Node::Or(vec![a, b])), - None => groups.push(a), - } - } - Node::And(groups) - } - } -} - -fn lerr(c: usize, t: usize) -> f64 { - ((c as f64 + 1.0).ln() - (t as f64 + 1.0).ln()).abs() -} - -/// Search the per-leaf constants that bring the achieved count closest to -/// `target`: bisection over one shared constant (every grid tree is monotone -/// non-decreasing in it), then a greedy +-1 refinement per leaf. The count is -/// read from the engine under test; the final answer is re-checked against -/// the scalar oracle by the caller. -fn search( - planes: &Planes<'_>, - n: usize, - shape: &str, - k: usize, - cols: &[u16], - target: usize, -) -> Vec { - let eval = |vs: &[i32]| count_node(&grid_tree(shape, k, cols, vs), planes, n); - if eval(&vec![1000; k]) < target { - return vec![1000; k]; - } - let (mut lo, mut hi) = (0i32, 1000i32); - while lo < hi { - let mid = (lo + hi) / 2; - if eval(&vec![mid; k]) >= target { - hi = mid; - } else { - lo = mid + 1; - } - } - let mut best = lo; - if lo > 0 { - let c_hi = eval(&vec![lo; k]); - let c_lo = eval(&vec![lo - 1; k]); - if lerr(c_lo, target) < lerr(c_hi, target) { - best = lo - 1; - } - } - let mut vs = vec![best; k]; - let mut cur = eval(&vs); - for _round in 0..2 { - for i in 0..k { - if lerr(cur, target) < 0.03 { - return vs; - } - for dir in [1i32, -1] { - for _ in 0..6 { - let nv = vs[i] + dir; - if !(0..=1000).contains(&nv) { - break; - } - let old = vs[i]; - vs[i] = nv; - let c = eval(&vs); - if lerr(c, target) < lerr(cur, target) { - cur = c; - } else { - vs[i] = old; - break; - } - } - } - } - } - vs -} - -fn explicit( - id: &str, - pop: &'static str, - adv: bool, - nullable: bool, - shape: &str, - tree: Node, -) -> Case { - Case { - id: id.to_string(), - k_group: k_group(leaf_count(&tree)), - pop, - shape: shape.to_string(), - adversarial: adv, - nullable, - target: 0, - tree, - achieved: 0, - } -} - -fn gen_cases(d: &Data, planes: &Planes<'_>) -> Vec { - let n = d.n; - let mut cases: Vec = Vec::new(); - // ---- regular grid: K x population x shape ---- - let pops: [(&'static str, usize); 3] = [("tiny", 50), ("medium", n / 100), ("large", n / 2)]; - let mut ci = 0u64; - for k in [1usize, 3, 8, 17, 24] { - let shapes: &[&str] = if k == 1 { - &["single"] - } else { - &["and", "or", "mixed"] - }; - for &shape in shapes { - for &(pop, target) in &pops { - ci += 1; - let mut rng = Rng(SEED ^ ci.wrapping_mul(0x1000_0000_01B3)); - let mut cols: Vec = (0..15).collect(); - for i in (1..cols.len()).rev() { - let j = rng.below(i as u64 + 1) as usize; - cols.swap(i, j); - } - let vs = search(planes, n, shape, k, &cols, target); - cases.push(Case { - id: format!("k{k}_{pop}_{shape}"), - k_group: k_group(k), - pop, - shape: shape.to_string(), - adversarial: false, - nullable: false, - target, - tree: grid_tree(shape, k, &cols, &vs), - achieved: 0, - }); - } - } - } - // ---- adversarial ---- - let lt = |c: u16, v: i32| leaf(c, Op::Lt, v); - cases.push(explicit( - "adv_one_everything", - "adv", - true, - false, - "and", - Node::And(vec![lt(4, 1000), lt(5, 10)]), - )); - cases.push(explicit( - "adv_one_nothing", - "adv", - true, - false, - "and", - Node::And(vec![lt(5, 1), lt(6, 900), lt(7, 900)]), - )); - cases.push(explicit( - "adv_or_one_everything", - "adv", - true, - false, - "or", - Node::Or(vec![lt(0, 1000), lt(3, 5)]), - )); - cases.push(explicit( - "adv_or_one_nothing", - "adv", - true, - false, - "or", - Node::Or(vec![lt(5, 0), lt(6, 1)]), - )); - cases.push(explicit( - "adv_16_nonselective", - "adv", - true, - false, - "and", - Node::And( - (0..16) - .map(|i| lt((i % 15) as u16, 985 + (i % 5) as i32)) - .collect(), - ), - )); - let r = (n / 3) as u64; - let mut collapse: Vec = (0..15u16) - .map(|j| { - let v = if j == 1 { - (f(r, 0) + f(r, 1) % 20) % 1000 - } else { - f(r, u64::from(j)) - }; - leaf(j, Op::Eq, v as i32) - }) - .collect(); - collapse.push(leaf(0, Op::Ge, f(r, 0) as i32)); - cases.push(explicit( - "adv_16_collapse_one", - "adv", - true, - false, - "and", - Node::And(collapse), - )); - cases.push(explicit( - "adv_correlated_2", - "adv", - true, - false, - "and", - Node::And(vec![lt(0, 500), lt(1, 520)]), - )); - cases.push(explicit( - "adv_correlated_5", - "adv", - true, - false, - "and", - Node::And(vec![lt(0, 500), lt(1, 510), lt(0, 490), lt(1, 530), lt(0, 520)]), - )); - cases.push(explicit( - "adv_contradictory_2", - "adv", - true, - false, - "and", - Node::And(vec![lt(0, 100), leaf(0, Op::Ge, 900)]), - )); - let mut contra = vec![lt(0, 100), leaf(0, Op::Ge, 900)]; - contra.extend((0..15u16).map(|j| lt(1 + (j % 14), 900))); - cases.push(explicit( - "adv_contradictory_17", - "adv", - true, - false, - "and", - Node::And(contra), - )); - // ---- nullable (through Filter::sql_where over the validity plane) ---- - cases.push(explicit( - "null_and", - "null", - true, - true, - "and", - Node::And(vec![lt(15, 500), lt(0, 500)]), - )); - cases.push(explicit( - "null_not", - "null", - true, - true, - "not", - Node::Not(Box::new(lt(15, 500))), - )); - cases.push(explicit( - "null_or", - "null", - true, - true, - "or", - Node::Or(vec![lt(15, 100), lt(2, 100)]), - )); - cases.push(explicit( - "null_not_and", - "null", - true, - true, - "not", - Node::Not(Box::new(Node::And(vec![lt(15, 500), lt(0, 500)]))), - )); - cases.push(explicit( - "null_and_5", - "null", - true, - true, - "and", - Node::And(vec![ - leaf(15, Op::Ge, 200), - lt(0, 700), - lt(2, 700), - lt(3, 900), - lt(15, 900), - ]), - )); - cases -} - -// --------------------------------------------------------------------------- -// measurement -// --------------------------------------------------------------------------- - -struct Totals { - gate_failed: usize, - mismatches: usize, -} - -/// Measure one filter variant: Count, Any, Rows. Returns the JSON object and -/// the Count median (for the best-order pick), or None when the variant does -/// not lower. -fn measure_variant( - filter: &Filter, - fused: bool, - planes: &Planes<'_>, - n: usize, - achieved: usize, - ctx: &str, - t: &mut Totals, -) -> Option<(String, f64)> { - let mut pc = mk(filter, Agg::Count, n, fused)?; - let mut pa = mk(filter, Agg::Any, n, fused)?; - let mut pr = mk(filter, Agg::Rows, n, fused)?; - let words = words_for(n); - let mut out = vec![0u64; words]; - - // correctness first - let c = run_count(&mut pc, planes); - let a = run_any(&mut pa, planes); - run_rows(&mut pr, planes, &mut out); - // Only bits below n_rows are rows; a complemented mask may carry tail bits. - let mut rows: usize = out.iter().map(|w| w.count_ones() as usize).sum(); - if n % 64 != 0 { - if let Some(last) = out.last() { - rows -= (last >> (n % 64)).count_ones() as usize; - } - } - if c != achieved || a != (achieved > 0) || rows != achieved { - eprintln!( - "MISMATCH {ctx}: oracle {achieved}, count {c}, any {a}, rows(popcount of Keep) {rows}" - ); - t.mismatches += 1; - } - - // temp bytes: allocator delta of one warm eval of each terminal - let b0 = alloc_bytes(); - std::hint::black_box(run_count(&mut pc, planes)); - let count_alloc = alloc_bytes() - b0; - let b0 = alloc_bytes(); - std::hint::black_box(run_any(&mut pa, planes)); - let any_alloc = alloc_bytes() - b0; - let b0 = alloc_bytes(); - run_rows(&mut pr, planes, &mut out); - let rows_alloc = alloc_bytes() - b0; - let scratch_bytes = pc.scratch.slots() * tile_words_for(n) * 8; - - let (count_us, rc) = median_us(31, || { - std::hint::black_box(run_count(&mut pc, planes)); - }); - let (any_us, ra) = median_us(31, || { - std::hint::black_box(run_any(&mut pa, planes)); - }); - let (rows_us, rr) = median_us(31, || { - run_rows(&mut pr, planes, &mut out); - }); - for (what, v) in [("count", count_us), ("any", any_us), ("rows", rows_us)] { - if v >= 1000.0 { - println!("FAILED-GATE {ctx} {what} warm {v:.1} us"); - t.gate_failed += 1; - } - } - let json = format!( - "{{\"count_us\":{},\"any_us\":{},\"rows_us\":{},\"runs\":[{rc},{ra},{rr}],\ -\"slots\":{},\"scratch_bytes\":{scratch_bytes},\"alloc_bytes_eval\":{{\"count\":{count_alloc},\"any\":{any_alloc},\"rows\":{rows_alloc}}}}}", - jf(count_us), - jf(any_us), - jf(rows_us), - pc.scratch.slots() - ); - Some((json, count_us)) -} - -fn lower_us(filter: &Filter, fused: bool) -> Option { - let q = Query { - filter: filter.clone(), - agg: Agg::Count, - }; - let go = |q: &Query| if fused { lower_fused(q) } else { lower(q) }; - if go(&q).is_err() { - return None; - } - let (m, _) = median_us(31, || { - let r = go(&q); - std::hint::black_box(&r); - }); - Some(m) -} - -fn run_size(out_root: &str, n: usize) -> bool { - println!("== N = {n} =="); - let t0 = Instant::now(); - let data = build_data(n); - println!( - "columns built in {:.2} s (16 x i32 lanes + validity plane)", - t0.elapsed().as_secs_f64() - ); - let env = Env::new(&data); - let planes = env.planes(); - - let t0 = Instant::now(); - let mut cases = gen_cases(&data, &planes); - // oracle + engine cross-check for every case - let mut totals = Totals { - gate_failed: 0, - mismatches: 0, - }; - for c in cases.iter_mut() { - c.achieved = oracle_count(&c.tree, &data); - let k = leaf_count(&c.tree); - let ours = { - let mut p = mk(&finish(to_filter(&c.tree), c.nullable), Agg::Count, n, false) - .expect("case lowers"); - run_count(&mut p, &planes) - }; - let met = if c.target == 0 { - "-".to_string() - } else { - format!("{}", c.achieved <= c.target * 2 && c.achieved * 2 >= c.target) - }; - println!( - "case {:<24} K={k:<2} target {:>8} achieved {:>8} met={met}", - c.id, c.target, c.achieved - ); - if ours != c.achieved { - eprintln!( - "MISMATCH generation {}: oracle {} vs quack {}", - c.id, c.achieved, ours - ); - totals.mismatches += 1; - } - } - println!( - "generated {} cases in {:.2} s", - cases.len(), - t0.elapsed().as_secs_f64() - ); - - let dir = format!("{out_root}/where/n{n}"); - std::fs::create_dir_all(&dir).expect("create out dir"); - - // cases.json - let mut js = String::new(); - write!(js, "{{\"n\":{n},\"seed\":{SEED},\"cases\":[").unwrap(); - for (i, c) in cases.iter().enumerate() { - if i > 0 { - js.push(','); - } - let met = c.target == 0 || (c.achieved <= c.target * 2 && c.achieved * 2 >= c.target); - write!( - js, - "\n{{\"id\":\"{}\",\"k\":{},\"k_group\":\"{}\",\"pop\":\"{}\",\"shape\":\"{}\",\ -\"adversarial\":{},\"nullable\":{},\"target\":{},\"achieved\":{},\"target_met\":{met},\"tree\":{}}}", - c.id, - leaf_count(&c.tree), - c.k_group, - c.pop, - c.shape, - c.adversarial, - c.nullable, - c.target, - c.achieved, - tree_json(&c.tree) - ) - .unwrap(); - } - js.push_str("\n]}\n"); - std::fs::write(format!("{dir}/cases.json"), js).expect("write cases.json"); - - // measurement - let mut ours = String::new(); - write!(ours, "{{\"n\":{n},\"records\":[").unwrap(); - let mask_bytes = words_for(n) * 8; - for (i, c) in cases.iter().enumerate() { - let k = leaf_count(&c.tree); - let plain = finish(to_filter(&c.tree), c.nullable); - let skip = finish(to_filter_skip(&c.tree), c.nullable); - let skip_same = plain == skip; - let lower_plain = lower_us(&plain, false); - let lower_fused_us = lower_us(&plain, true); - let mut variants = String::new(); - let mut best: Option<(&str, f64)> = None; - for (tag, filt, fused) in [ - ("plain", &plain, false), - ("fused", &plain, true), - ("skip", &skip, false), - ("skip_fused", &skip, true), - ] { - let ctx = format!("n={n} case={} variant={tag}", c.id); - if let Some((json, cus)) = - measure_variant(filt, fused, &planes, n, c.achieved, &ctx, &mut totals) - { - if !variants.is_empty() { - variants.push(','); - } - write!(variants, "\"{tag}\":{json}").unwrap(); - if best.is_none_or(|(_, b)| cus < b) { - best = Some((tag, cus)); - } - } else { - if !variants.is_empty() { - variants.push(','); - } - write!(variants, "\"{tag}\":null").unwrap(); - } - } - let (best_tag, best_us) = best.map_or(("none", f64::NAN), |(t, u)| (t, u)); - println!( - "measured {:<24} K={k:<2} achieved {:>8} lower plain {} fused {} us, best count {} = {:.2} us", - c.id, - c.achieved, - jo(lower_plain), - jo(lower_fused_us), - best_tag, - best_us - ); - if i > 0 { - ours.push(','); - } - write!( - ours, - "\n{{\"id\":\"{}\",\"k\":{k},\"k_group\":\"{}\",\"pop\":\"{}\",\"shape\":\"{}\",\ -\"adversarial\":{},\"nullable\":{},\"achieved\":{},\"lower_us_plain\":{},\"lower_us_fused\":{},\ -\"skip_same_as_plain\":{skip_same},\"best_count_variant\":\"{best_tag}\",\ -\"representation\":{{\"count\":\"virtual\",\"any\":\"virtual\",\"rows\":\"transient\"}},\ -\"rows_mask_bytes\":{mask_bytes},\"variants\":{{{variants}}}}}", - c.id, - c.k_group, - c.pop, - c.shape, - c.adversarial, - c.nullable, - c.achieved, - jo(lower_plain), - jo(lower_fused_us), - ) - .unwrap(); - } - ours.push_str("\n]}\n"); - std::fs::write(format!("{dir}/where_ours.json"), ours).expect("write where_ours.json"); - println!( - "N={n}: {} FAILED-GATE values (warm >= 1000 us, reported), {} mismatches", - totals.gate_failed, totals.mismatches - ); - totals.mismatches == 0 -} - -fn main() { - let args: Vec = std::env::args().collect(); - if args.len() < 2 || args[1].starts_with("--") { - eprintln!("usage: where_k [--n 1000000|10000000]..."); - std::process::exit(2); - } - let out = args[1].clone(); - let mut sizes: Vec = Vec::new(); - let mut i = 2; - while i < args.len() { - if args[i] == "--n" && i + 1 < args.len() { - sizes.push(args[i + 1].parse().expect("--n takes an integer")); - i += 2; - } else { - eprintln!("unknown argument {}", args[i]); - std::process::exit(2); - } - } - if sizes.is_empty() { - sizes = vec![1_000_000, 10_000_000]; - } - let mut ok = true; - for n in sizes { - ok &= run_size(&out, n); - } - if !ok { - println!("WHERE-K FAILED: answer mismatch"); - std::process::exit(1); - } - println!("WHERE-K ALL ANSWERS MATCH THE ORACLE"); -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs b/.claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs deleted file mode 100644 index 528088925..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/probe/src/lib.rs +++ /dev/null @@ -1,1528 +0,0 @@ -//! LAB: shared library of the D-GLOBAL-WHERE P1 probe (falsify_p1, sweep, big). -//! -//! Lab only. No production change; identities live ONLY in -//! `lance_graph_dt64::dr::{MapTable, LocalMap}`. Everything here is either an -//! instrument (allocator, rng, timers), a positional structure over DR -//! coordinates (masks, coordinate CSR, tile matrix), a derived index that is -//! built FROM `MapTable` views under one frame (arm C), or a LAB type the spec -//! names (`SharedSelection`, EXO-46). -//! -//! # Model -//! -//! * `WorkingSet`: ONE `MapTable` (own frame store and clock) holding up to 256 -//! DR256 tiles (TileIds are ordinals 0..tiles for a freshly built set). Its -//! members are chosen by the QUERY (not contiguous, not by id bits). -//! Coordinate of an identity = `tile_ordinal * tw + local`, `tw` = tile width -//! (64 or 256). For a set built by `WorkingSet::build(ids)` the coordinate -//! of `ids[i]` is `i`, and `extend` keeps that. -//! * Lanes are read through the pointer table at PREPARATION only -//! (`gather_lane`); folds read coordinate-indexed arrays (len `n_coords`, -//! padding = `PAD`). A lane array is therefore the source lane re-laid in -//! coordinate order; a fold never looks an identity up. -//! * Node reference (`noderef`): `(set << 16) | coord` (coord < 65536, set < -//! 32768). Coordinate-CSR targets store `coord` for a same-set target and -//! `CROSS | noderef` for a target in another working set. -//! -//! # API index (for sweep.rs / big.rs) -//! -//! * instruments: `CountingAlloc`, `alloc_bytes/alloc_calls/live_bytes/ -//! peak_bytes/reset_peak`, `Rng`, `SEED`, `time_runs`, `stats`, `Stage`, -//! `StageTimes`, `fmt_us`, `gate_label` -//! * bits: `bit`, `set_bit`, `clear_bit`, `popcount`, `for_each_bit`, `words_for` -//! * identity: `WorkingSet::{build, from_tiles, extend, replace_tile, -//! remove_tile, seal, gather_lane, valid_mask, coord_a, n_coords, tw}` -//! * routing: `route_batch_a_in`, `route_batch_b_in`, `route_batch_c`, -//! `CoordIndex::{build, build_in, build_with, lookup}`, `RouteStats`, -//! `COORD_UNMAPPED`, `COORD_AMBIGUOUS`, `Arm` -//! * relation view: `CoordCsr` (+ `delete`), `Binding::{prepare, rewhere_b, -//! guard, delete}`, `TileMatrix` -//! * where: `virtual_where`, `Prepared` (Quack WHERE over a corpus lane) -//! * folds: `w2`, `w2_and`, `w2_xor`, `w3_csr`, `w3_front`, `w4_csr`, -//! `w4_front`, `TileMatrix::fold` (W4 tile), `w5`, `w6` (+ `FoldScratch`, -//! `semijoin`, `step`) -//! * oracle: `oracle()` over a global edge list (HashSet/HashMap allowed here) -//! * EXO-46: `SharedSelection`, `ShareRefusal` -//! -//! Workload semantics (A, B are masks over the working-set coordinates): -//! W2 = |{x in A : exists x->y, y in B}|; W3 = |{x in A : exists x->y->z, z in B}|; -//! W4 = |{z in B : z reached from A in exactly 3 hops}| (distinct); -//! W5 = |{y in B : exists x in A, x->y}| (count distinct, 1 hop, as SQL G5); -//! W6 = sum over x in A, x->y of cnt(y), cnt(y) = outdeg(y), or with `Some(B)` -//! the out-edges of y into B (bag count, as SQL G6) = sum_y indegA[y]*cnt(y). -//! Only VALID (not deleted) edges take part in every fold. - -use std::alloc::{GlobalAlloc, Layout, System}; -use std::collections::{HashMap, HashSet}; -use std::sync::atomic::{AtomicUsize, Ordering::Relaxed}; -use std::time::Instant; - -use lance_graph_dt64::dr::{ - Frame, LocalMap, LocateRefusal, MapRead, MapRefusal, MapTable, RouteVersion, Scope, TileId, -}; -use lance_graph_dt64::{Axis, BindStore, MethodRef, Refusal, Width}; -use lance_graph_mask_risc::{execute_into, Foreign, LaneRef, Out, Planes, Program, Scratch, Value}; -use lance_graph_quack::{lower, Agg, Cmp, Col, Filter, Query}; - -// --------------------------------------------------------------------------- -// counting allocator (each binary declares the #[global_allocator] static) -// --------------------------------------------------------------------------- - -/// A pass-through allocator that counts bytes, calls, live bytes and the peak. -pub struct CountingAlloc; - -static ALLOC_BYTES: AtomicUsize = AtomicUsize::new(0); -static ALLOC_CALLS: AtomicUsize = AtomicUsize::new(0); -static LIVE_BYTES: AtomicUsize = AtomicUsize::new(0); -static PEAK_BYTES: AtomicUsize = AtomicUsize::new(0); - -// SAFETY: a pure pass-through to `System`; the atomics are the only addition. -unsafe impl GlobalAlloc for CountingAlloc { - unsafe fn alloc(&self, layout: Layout) -> *mut u8 { - ALLOC_BYTES.fetch_add(layout.size(), Relaxed); - ALLOC_CALLS.fetch_add(1, Relaxed); - let live = LIVE_BYTES.fetch_add(layout.size(), Relaxed) + layout.size(); - PEAK_BYTES.fetch_max(live, Relaxed); - // SAFETY: same layout, same contract as the caller's. - unsafe { System.alloc(layout) } - } - unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { - LIVE_BYTES.fetch_sub(layout.size(), Relaxed); - // SAFETY: `ptr` came from `alloc` above with this `layout`. - unsafe { System.dealloc(ptr, layout) } - } -} - -pub fn alloc_bytes() -> usize { - ALLOC_BYTES.load(Relaxed) -} -pub fn alloc_calls() -> usize { - ALLOC_CALLS.load(Relaxed) -} -pub fn live_bytes() -> usize { - LIVE_BYTES.load(Relaxed) -} -pub fn peak_bytes() -> usize { - PEAK_BYTES.load(Relaxed) -} -pub fn reset_peak() { - PEAK_BYTES.store(LIVE_BYTES.load(Relaxed), Relaxed); -} - -// --------------------------------------------------------------------------- -// deterministic data -// --------------------------------------------------------------------------- - -pub const SEED: u64 = 0x9E37_79B9_7F4A_7C15; - -/// SplitMix64. -pub struct Rng(pub u64); - -impl Rng { - pub fn new(seed: u64) -> Rng { - Rng(seed) - } - pub fn next_u64(&mut self) -> u64 { - self.0 = self.0.wrapping_add(0x9E37_79B9_7F4A_7C15); - let mut z = self.0; - z = (z ^ (z >> 30)).wrapping_mul(0xBF58_476D_1CE4_E5B9); - z = (z ^ (z >> 27)).wrapping_mul(0x94D0_49BB_1331_11EB); - z ^ (z >> 31) - } - pub fn below(&mut self, n: u64) -> u64 { - self.next_u64() % n - } - /// Uniform in `[0, 1)`. - pub fn unit(&mut self) -> f64 { - (self.next_u64() >> 11) as f64 / (1u64 << 53) as f64 - } -} - -// --------------------------------------------------------------------------- -// bit helpers -// --------------------------------------------------------------------------- - -#[inline] -pub fn words_for(n: usize) -> usize { - n.div_ceil(64) -} -#[inline] -pub fn bit(m: &[u64], i: usize) -> bool { - (m[i >> 6] >> (i & 63)) & 1 == 1 -} -#[inline] -pub fn set_bit(m: &mut [u64], i: usize) { - m[i >> 6] |= 1u64 << (i & 63); -} -#[inline] -pub fn clear_bit(m: &mut [u64], i: usize) { - m[i >> 6] &= !(1u64 << (i & 63)); -} -/// Set bits of a mask (`ndarray::simd::popcount_batch_u64`). -#[inline] -pub fn popcount(m: &[u64]) -> u64 { - ndarray::simd::popcount_batch_u64(m) -} -/// Call `f` with the index of every set bit, ascending. No allocation. -#[inline] -pub fn for_each_bit(m: &[u64], mut f: impl FnMut(usize)) { - for (w, &word) in m.iter().enumerate() { - let mut bits = word; - while bits != 0 { - f(w * 64 + bits.trailing_zeros() as usize); - bits &= bits - 1; - } - } -} - -// --------------------------------------------------------------------------- -// timing and stage helpers -// --------------------------------------------------------------------------- - -/// Run `f` `runs` times, returning each wall time in microseconds. -pub fn time_runs(runs: usize, mut f: impl FnMut()) -> Vec { - let mut out = Vec::with_capacity(runs); - for _ in 0..runs { - let t = Instant::now(); - f(); - out.push(t.elapsed().as_nanos() as f64 / 1000.0); - } - out -} - -/// `(median, p10, p90)` of a sample (sorts a copy). -pub fn stats(samples: &[f64]) -> (f64, f64, f64) { - let mut s = samples.to_vec(); - s.sort_by(|a, b| a.partial_cmp(b).unwrap()); - let at = |p: f64| s[(((s.len() - 1) as f64) * p).round() as usize]; - (at(0.5), at(0.1), at(0.9)) -} - -/// The measured stages of a query over an unbounded corpus (SPEC correction). -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum Stage { - /// Global WHERE -> candidate ids (scan arm or attribute-index arm). - Discover, - /// Reachable demanded ids via the global relation index, bounded at 65,536. - Expand, - /// DR coordinate binding of exactly those ids (arms A/B/C). - Bind, - /// Coordinate CSR + presence bits restricted to the working set. - Project, - /// The fold over the working set. - Fold, -} - -impl Stage { - pub const ALL: [Stage; 5] = [Stage::Discover, Stage::Expand, Stage::Bind, Stage::Project, Stage::Fold]; - pub fn name(self) -> &'static str { - match self { - Stage::Discover => "discover", - Stage::Expand => "expand", - Stage::Bind => "bind", - Stage::Project => "project", - Stage::Fold => "fold", - } - } - fn idx(self) -> usize { - self as usize - } -} - -/// Accumulated nanoseconds per stage. `time` wraps one stage execution. -#[derive(Clone, Debug, Default)] -pub struct StageTimes { - ns: [u128; 5], - calls: [u64; 5], -} - -impl StageTimes { - pub fn new() -> StageTimes { - StageTimes::default() - } - /// Run `f`, charge its wall time to `stage`. - pub fn time(&mut self, stage: Stage, f: impl FnOnce() -> R) -> R { - let t = Instant::now(); - let r = f(); - self.ns[stage.idx()] += t.elapsed().as_nanos(); - self.calls[stage.idx()] += 1; - r - } - /// Charge an externally measured duration (nanoseconds). - pub fn add_ns(&mut self, stage: Stage, ns: u128) { - self.ns[stage.idx()] += ns; - self.calls[stage.idx()] += 1; - } - pub fn us(&self, stage: Stage) -> f64 { - self.ns[stage.idx()] as f64 / 1000.0 - } - pub fn calls(&self, stage: Stage) -> u64 { - self.calls[stage.idx()] - } - pub fn total_us(&self) -> f64 { - self.ns.iter().sum::() as f64 / 1000.0 - } - pub fn reset(&mut self) { - *self = StageTimes::default(); - } - /// One line per stage. `cold` stages (preparation) are labelled, not gated. - pub fn report(&self, cold: bool) -> String { - Stage::ALL - .iter() - .map(|&s| format!("{}={}", s.name(), fmt_us(self.us(s), cold))) - .collect::>() - .join(" ") - } -} - -/// Gate label for a microsecond value: warm values >= 1000 us are a failed -/// gate; cold/preparation values >= 1000 us are reported, not gated. -pub fn gate_label(us: f64, cold: bool) -> &'static str { - if us < 1000.0 { - "" - } else if cold { - " COLD (reported, not gate)" - } else { - " FAILED-GATE" - } -} - -pub fn fmt_us(us: f64, cold: bool) -> String { - format!("{us:.3}us{}", gate_label(us, cold)) -} - -// --------------------------------------------------------------------------- -// working set -// --------------------------------------------------------------------------- - -/// Tiles a working set may hold: the `Extent::DR256_GLOBAL_X64` reservation. -pub const MAX_TILES: usize = 256; -/// Lane value at coordinates that hold no identity. -pub const PAD: i32 = i32::MAX; - -#[derive(Debug)] -pub enum WsError { - Map(MapRefusal), - Read(MapRead), -} -impl From for WsError { - fn from(e: MapRefusal) -> WsError { - WsError::Map(e) - } -} -impl From for WsError { - fn from(e: MapRead) -> WsError { - WsError::Read(e) - } -} - -/// One `MapTable`, up to 256 tiles, <= 65,536 identities chosen by the query. -#[derive(Debug)] -pub struct WorkingSet { - pub table: MapTable, - /// The tile list `locate` reads, in ordinal order. - pub tile_ids: Vec, - pub width: Width, - source: u64, - relmap: u64, -} - -impl WorkingSet { - /// Explicit tile contents (a tile may even repeat another tile's id: that - /// is the Ambiguous fixture). Refuses duplicates inside one tile. - pub fn from_tiles(width: Width, tiles: Vec>, source: u64) -> Result { - if tiles.len() > MAX_TILES { - return Err(MapRefusal::TooMany.into()); - } - let mut table = MapTable::new(source, 0); - let mut changes = Vec::with_capacity(tiles.len()); - let mut tile_ids = Vec::with_capacity(tiles.len()); - for (t, g) in tiles.iter().enumerate() { - changes.push((t as TileId, Some(LocalMap::prepare(width, g)?))); - tile_ids.push(t as TileId); - } - table.advance(source, 0, changes); - Ok(WorkingSet { - table, - tile_ids, - width, - source, - relmap: 0, - }) - } - - /// Chunk `ids` (in the given order) into tiles of the width - /// `Axis::for_survivors` picks. The coordinate of `ids[i]` is `i`. - pub fn build(ids: &[u64], source: u64) -> Result { - if ids.len() > MAX_TILES * 256 { - return Err(MapRefusal::TooMany.into()); - } - let width = Axis::for_survivors(ids.len()).tile; - let tw = width.positions(); - let tiles: Vec> = ids.chunks(tw).map(|c| c.to_vec()).collect(); - WorkingSet::from_tiles(width, tiles, source) - } - - pub fn tw(&self) -> usize { - self.width.positions() - } - pub fn n_coords(&self) -> usize { - self.tile_ids.len() * self.tw() - } - pub fn seal(&self) -> Frame { - self.table.seal() - } - /// Identities held under `frame` (sum of tile lengths). - pub fn n_ids(&self, frame: &Frame) -> usize { - self.tile_ids - .iter() - .filter_map(|&t| self.table.map(frame, t).ok()) - .map(|m| m.len()) - .sum() - } - - /// Arm A for one id: `MapTable::locate` over this set's tile list. - pub fn coord_a(&self, frame: &Frame, g: u64) -> Result { - coord_a_in(&self.table, frame, &self.tile_ids, self.tw(), g) - } - - /// Bit per coordinate that holds an identity under `frame`. - pub fn valid_mask(&self, frame: &Frame) -> Vec { - let tw = self.tw(); - let mut m = vec![0u64; words_for(self.n_coords())]; - for (o, &t) in self.tile_ids.iter().enumerate() { - if let Ok(view) = self.table.map(frame, t) { - for l in 0..view.len() { - set_bit(&mut m, o * tw + l); - } - } - } - m - } - - /// Re-lay a source lane in coordinate order (preparation only: the one - /// place identity is read to fetch a value). Length `n_coords`, `PAD` - /// where no identity. - pub fn gather_lane(&self, frame: &Frame, source: impl Fn(u64) -> i32) -> Vec { - let tw = self.tw(); - let mut lane = vec![PAD; self.n_coords()]; - for (o, &t) in self.tile_ids.iter().enumerate() { - if let Ok(view) = self.table.map(frame, t) { - for (l, &g) in view.globals().iter().enumerate() { - lane[o * tw + l] = source(g); - } - } - } - lane - } - - /// Append identities: fill the last non-full tile, then new tiles, in ONE - /// `MapTable::advance`. An existing tile only ever grows by appending, so - /// `TileMap::extends` holds and every old coordinate is kept. Returns the - /// number of tiles changed. - pub fn extend(&mut self, new_globals: &[u64]) -> Result { - if new_globals.is_empty() { - return Ok(0); - } - let frame = self.table.seal(); - let tw = self.tw(); - let mut changes: Vec<(TileId, Option)> = Vec::new(); - let mut rest = new_globals; - if let Some(&last) = self.tile_ids.last() { - let view = self.table.map(&frame, last)?; - let free = tw - view.len(); - if free > 0 { - let take = free.min(rest.len()); - let mut v = view.globals().to_vec(); - v.extend_from_slice(&rest[..take]); - changes.push((last, Some(LocalMap::prepare(self.width, &v)?))); - rest = &rest[take..]; - } - } - let mut next_ids = self.tile_ids.clone(); - while !rest.is_empty() { - if next_ids.len() >= MAX_TILES { - return Err(MapRefusal::TooMany.into()); - } - let take = tw.min(rest.len()); - let t = next_ids.last().map_or(0, |l| l + 1); - changes.push((t, Some(LocalMap::prepare(self.width, &rest[..take])?))); - next_ids.push(t); - rest = &rest[take..]; - } - let n = changes.len(); - self.source += 1; - self.table.advance(self.source, self.relmap, changes); - self.tile_ids = next_ids; - Ok(n) - } - - /// Replace one tile's map (a reorder / removal of an id is a replacement). - pub fn replace_tile(&mut self, tile: TileId, globals: &[u64]) -> Result { - let m = LocalMap::prepare(self.width, globals)?; - self.source += 1; - Ok(self.table.advance(self.source, self.relmap, vec![(tile, Some(m))])) - } - - /// Remove a tile (an event to `None`). `tile_ids` is NOT edited: callers - /// that read the new frame pass the reduced list to the `_in` functions. - pub fn remove_tile(&mut self, tile: TileId) -> RouteVersion { - self.source += 1; - self.table.advance(self.source, self.relmap, vec![(tile, None)]) - } -} - -// --------------------------------------------------------------------------- -// routing arms (identical answers, including refusals) -// --------------------------------------------------------------------------- - -pub const COORD_UNMAPPED: u32 = u32::MAX; -pub const COORD_AMBIGUOUS: u32 = u32::MAX - 1; - -#[derive(Default, Clone, Copy, Debug, PartialEq, Eq)] -pub struct RouteStats { - /// `MapTable::locate` calls made (0 for arm C queries). - pub locate_calls: u64, - pub distinct: u64, - pub unmapped: u64, - pub ambiguous: u64, -} - -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum Arm { - A, - B, - C, -} -impl Arm { - pub const ALL: [Arm; 3] = [Arm::A, Arm::B, Arm::C]; - pub fn name(self) -> &'static str { - match self { - Arm::A => "A", - Arm::B => "B", - Arm::C => "C", - } - } -} - -/// Arm A for one id over an explicit tile list. -pub fn coord_a_in( - table: &MapTable, - frame: &Frame, - tiles: &[TileId], - tw: usize, - g: u64, -) -> Result { - let (ordinal, local) = table.locate(frame, tiles, g)?; - Ok(ordinal as usize * tw + usize::from(local)) -} - -fn code_of(r: Result) -> Result { - match r { - Ok(c) => Ok(c as u32), - Err(LocateRefusal::Unmapped) => Ok(COORD_UNMAPPED), - Err(LocateRefusal::Ambiguous) => Ok(COORD_AMBIGUOUS), - Err(e) => Err(e), - } -} - -/// Arm A over a batch: one `locate` per endpoint. `out[i]` is the coordinate -/// or `COORD_UNMAPPED` / `COORD_AMBIGUOUS`. A frame-read refusal is `Err` -/// (it hits every id alike). -pub fn route_batch_a_in( - table: &MapTable, - frame: &Frame, - tiles: &[TileId], - tw: usize, - endpoints: &[u64], - out: &mut [u32], -) -> Result { - let mut st = RouteStats::default(); - for (i, &g) in endpoints.iter().enumerate() { - st.locate_calls += 1; - let c = code_of(coord_a_in(table, frame, tiles, tw, g))?; - tally(&mut st, c); - out[i] = c; - } - Ok(st) -} - -/// Arm B over a batch: distinct sorted ids, `locate` ONCE each, then resolve -/// endpoints by binary search into the transient sorted array (dropped on -/// return: not an index). -pub fn route_batch_b_in( - table: &MapTable, - frame: &Frame, - tiles: &[TileId], - tw: usize, - endpoints: &[u64], - out: &mut [u32], -) -> Result { - let mut d: Vec = endpoints.to_vec(); - d.sort_unstable(); - d.dedup(); - let mut codes: Vec = Vec::with_capacity(d.len()); - let mut st = RouteStats { - distinct: d.len() as u64, - ..RouteStats::default() - }; - for &g in &d { - st.locate_calls += 1; - codes.push(code_of(coord_a_in(table, frame, tiles, tw, g))?); - } - for (i, &g) in endpoints.iter().enumerate() { - let at = d.binary_search(&g).expect("endpoint is in the distinct set"); - out[i] = codes[at]; - tally(&mut st, codes[at]); - } - Ok(st) -} - -fn tally(st: &mut RouteStats, c: u32) { - if c == COORD_UNMAPPED { - st.unmapped += 1; - } else if c == COORD_AMBIGUOUS { - st.ambiguous += 1; - } -} - -/// Switches for the falsifier disable runs. -#[derive(Clone, Copy, Debug, Default)] -pub struct CFlags { - /// Skip marking equal adjacent globals Ambiguous (first coordinate wins). - pub disable_dupcheck: bool, - /// Skip the `same_issue` frame check in `lookup`. - pub disable_framecheck: bool, -} - -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum CRefusal { - StaleIndex, - Ambiguous, - Unmapped, -} - -/// Arm C (LAB, optional acceleration): a sorted `(global, coord)` array built -/// FROM `table.map(frame, t).globals()` of every tile under ONE frame. It -/// carries that frame and refuses any other. Never an identity authority. -#[derive(Clone, Debug)] -pub struct CoordIndex { - built: Frame, - entries: Vec<(u64, u32)>, - flags: CFlags, -} - -impl CoordIndex { - pub fn build(ws: &WorkingSet, frame: &Frame) -> Result { - CoordIndex::build_with(ws, frame, CFlags::default()) - } - pub fn build_with(ws: &WorkingSet, frame: &Frame, flags: CFlags) -> Result { - CoordIndex::build_in(&ws.table, &ws.tile_ids, ws.tw(), frame, flags) - } - pub fn build_in( - table: &MapTable, - tiles: &[TileId], - tw: usize, - frame: &Frame, - flags: CFlags, - ) -> Result { - let mut raw: Vec<(u64, u32)> = Vec::new(); - for (o, &t) in tiles.iter().enumerate() { - let view = table.map(frame, t).map_err(LocateRefusal::Read)?; - for (l, &g) in view.globals().iter().enumerate() { - raw.push((g, (o * tw + l) as u32)); - } - } - raw.sort_unstable(); - let mut entries: Vec<(u64, u32)> = Vec::with_capacity(raw.len()); - for (g, c) in raw { - match entries.last_mut() { - Some(last) if last.0 == g => { - if !flags.disable_dupcheck { - last.1 = COORD_AMBIGUOUS; - } - } - _ => entries.push((g, c)), - } - } - Ok(CoordIndex { - built: frame.clone(), - entries, - flags, - }) - } - pub fn frame(&self) -> &Frame { - &self.built - } - pub fn len(&self) -> usize { - self.entries.len() - } - pub fn is_empty(&self) -> bool { - self.entries.is_empty() - } - /// One binary search; refuses a frame this index was not built for. - pub fn lookup(&self, frame: &Frame, g: u64) -> Result { - if !self.flags.disable_framecheck && !frame.same_issue(&self.built) { - return Err(CRefusal::StaleIndex); - } - match self.entries.binary_search_by_key(&g, |e| e.0) { - Ok(at) if self.entries[at].1 == COORD_AMBIGUOUS => Err(CRefusal::Ambiguous), - Ok(at) => Ok(self.entries[at].1), - Err(_) => Err(CRefusal::Unmapped), - } - } -} - -/// Arm C over a batch: 0 `locate` calls. `StaleIndex` is `Err`. -pub fn route_batch_c( - idx: &CoordIndex, - frame: &Frame, - endpoints: &[u64], - out: &mut [u32], -) -> Result { - let mut st = RouteStats::default(); - for (i, &g) in endpoints.iter().enumerate() { - let c = match idx.lookup(frame, g) { - Ok(c) => c, - Err(CRefusal::Unmapped) => COORD_UNMAPPED, - Err(CRefusal::Ambiguous) => COORD_AMBIGUOUS, - Err(CRefusal::StaleIndex) => return Err(CRefusal::StaleIndex), - }; - tally(&mut st, c); - out[i] = c; - } - Ok(st) -} - -// --------------------------------------------------------------------------- -// node references and the coordinate CSR (the project stage) -// --------------------------------------------------------------------------- - -/// Marks a CSR target that lives in another working set. -pub const CROSS: u32 = 1 << 31; -pub const UNROUTED: u32 = u32::MAX; - -#[inline] -pub fn noderef(set: usize, coord: usize) -> u32 { - ((set as u32) << 16) | coord as u32 -} -#[inline] -pub fn nr_set(n: u32) -> usize { - ((n >> 16) & 0x7FFF) as usize -} -#[inline] -pub fn nr_coord(n: u32) -> usize { - (n & 0xFFFF) as usize -} -/// CSR target encoding: local coord, or `CROSS | noderef` for another set. -#[inline] -pub fn tgt_pack(src_set: usize, dst: u32) -> u32 { - if nr_set(dst) == src_set { - nr_coord(dst) as u32 - } else { - CROSS | dst - } -} -#[inline] -pub fn tgt_unpack(src_set: usize, t: u32) -> u32 { - if t & CROSS != 0 { - t & !CROSS - } else { - noderef(src_set, t as usize) - } -} - -/// Per working set: edges by source coordinate. `valid` is the presence -/// plane over edge slots; a deletion clears a bit and moves no coordinate. -#[derive(Clone, Debug, PartialEq, Eq)] -pub struct CoordCsr { - pub n: usize, - pub off: Vec, - pub tgt: Vec, - pub valid: Vec, -} - -impl CoordCsr { - /// Counting-sort the routed edges whose source is in set `si`. - pub fn from_routed(si: usize, n_coords: usize, edges: &[(u32, u32)]) -> CoordCsr { - let mut off = vec![0u32; n_coords + 1]; - for &(s, _) in edges { - if nr_set(s) == si { - off[nr_coord(s) + 1] += 1; - } - } - for i in 0..n_coords { - off[i + 1] += off[i]; - } - let total = off[n_coords] as usize; - let mut tgt = vec![0u32; total]; - let mut cur: Vec = off[..n_coords].to_vec(); - for &(s, d) in edges { - if nr_set(s) == si { - let x = nr_coord(s); - tgt[cur[x] as usize] = tgt_pack(si, d); - cur[x] += 1; - } - } - let mut valid = vec![0u64; words_for(total)]; - for e in 0..total { - set_bit(&mut valid, e); - } - CoordCsr { - n: n_coords, - off, - tgt, - valid, - } - } - pub fn edges(&self) -> usize { - self.tgt.len() - } - pub fn valid_edges(&self) -> usize { - popcount(&self.valid) as usize - } - /// Clear the presence bit of one valid edge `x -> t` (packed target). - pub fn delete(&mut self, x: usize, t: u32) -> bool { - for e in self.off[x] as usize..self.off[x + 1] as usize { - if self.tgt[e] == t && bit(&self.valid, e) { - clear_bit(&mut self.valid, e); - return true; - } - } - false - } -} - -// --------------------------------------------------------------------------- -// the binding: routed endpoints, coordinate CSR, selections (bind + project) -// --------------------------------------------------------------------------- - -#[derive(Debug)] -pub enum BindError { - Locate(LocateRefusal), - C(CRefusal), - /// An endpoint id is held by more than one tile of a set. - Ambiguous(u64), - /// The binding's frame of set `i` is no longer that set's current seal. - Stale(usize), -} - -#[derive(Clone, Copy, Debug, Default)] -pub struct BindStats { - pub locate_calls: u64, - pub endpoints: usize, - /// Edges with an endpoint outside every set (dropped, not routed). - pub dropped_edges: usize, -} - -/// A reusable binding over one or more working sets: the frames it was built -/// under, the coordinate CSR per set, the coordinate-ordered lanes and the -/// A/B masks. Reuse is legal only while `guard` says every frame is current. -#[derive(Clone, Debug)] -pub struct Binding { - pub frames: Vec, - pub graphs: Vec, - pub valid: Vec>, - pub lane_a: Vec>, - pub lane_b: Vec>, - pub a: Vec>, - pub b: Vec>, - pub stats: BindStats, -} - -impl Binding { - /// Route every endpoint of `edges` (global ids) with `arm` into the sets, - /// build the coordinate CSR per set, gather the lanes and evaluate the - /// virtual WHERE (`a < a_lt`, `b < b_lt`). The first set that maps an id - /// owns it. - pub fn prepare( - sets: &[&WorkingSet], - edges: &[(u64, u64)], - arm: Arm, - a_of: &dyn Fn(u64) -> i32, - b_of: &dyn Fn(u64) -> i32, - a_lt: i32, - b_lt: i32, - ) -> Result { - let frames: Vec = sets.iter().map(|s| s.seal()).collect(); - let mut endpoints: Vec = Vec::with_capacity(edges.len() * 2); - for &(s, d) in edges { - endpoints.push(s); - endpoints.push(d); - } - let mut routed = vec![UNROUTED; endpoints.len()]; - let mut out = vec![0u32; endpoints.len()]; - let mut stats = BindStats { - endpoints: endpoints.len(), - ..BindStats::default() - }; - for (si, ws) in sets.iter().enumerate() { - let st = match arm { - Arm::A => route_batch_a_in(&ws.table, &frames[si], &ws.tile_ids, ws.tw(), &endpoints, &mut out) - .map_err(BindError::Locate)?, - Arm::B => route_batch_b_in(&ws.table, &frames[si], &ws.tile_ids, ws.tw(), &endpoints, &mut out) - .map_err(BindError::Locate)?, - Arm::C => { - let idx = CoordIndex::build(ws, &frames[si]).map_err(BindError::Locate)?; - route_batch_c(&idx, &frames[si], &endpoints, &mut out).map_err(BindError::C)? - } - }; - stats.locate_calls += st.locate_calls; - for i in 0..endpoints.len() { - if routed[i] != UNROUTED || out[i] == COORD_UNMAPPED { - continue; - } - if out[i] == COORD_AMBIGUOUS { - return Err(BindError::Ambiguous(endpoints[i])); - } - routed[i] = noderef(si, out[i] as usize); - } - } - let mut pairs: Vec<(u32, u32)> = Vec::with_capacity(edges.len()); - for e in 0..edges.len() { - let (s, d) = (routed[2 * e], routed[2 * e + 1]); - if s == UNROUTED || d == UNROUTED { - stats.dropped_edges += 1; - } else { - pairs.push((s, d)); - } - } - let mut graphs = Vec::new(); - let mut valid = Vec::new(); - let mut lane_a = Vec::new(); - let mut lane_b = Vec::new(); - let mut a = Vec::new(); - let mut b = Vec::new(); - for (si, ws) in sets.iter().enumerate() { - let n = ws.n_coords(); - graphs.push(CoordCsr::from_routed(si, n, &pairs)); - let v = ws.valid_mask(&frames[si]); - let la = ws.gather_lane(&frames[si], a_of); - let lb = ws.gather_lane(&frames[si], b_of); - let mut ma = vec![0u64; words_for(n)]; - let mut mb = vec![0u64; words_for(n)]; - virtual_where(&la, a_lt, &v, &mut ma); - virtual_where(&lb, b_lt, &v, &mut mb); - valid.push(v); - lane_a.push(la); - lane_b.push(lb); - a.push(ma); - b.push(mb); - } - Ok(Binding { - frames, - graphs, - valid, - lane_a, - lane_b, - a, - b, - stats, - }) - } - - /// A B-side parameter change: re-run only the virtual WHERE. - pub fn rewhere_b(&mut self, b_lt: i32) { - for si in 0..self.b.len() { - virtual_where(&self.lane_b[si], b_lt, &self.valid[si], &mut self.b[si]); - } - } - - /// The version guard: every frame the binding was built under must still - /// be the current seal of its set. `enabled = false` is the `bindguard` - /// disable run (the guard never refuses). - pub fn guard(&self, sets: &[&WorkingSet], enabled: bool) -> Result<(), BindError> { - if !enabled { - return Ok(()); - } - for (si, ws) in sets.iter().enumerate() { - if !self.frames[si].same_issue(&ws.seal()) { - return Err(BindError::Stale(si)); - } - } - Ok(()) - } - - /// Presence-only update: clear one edge `(set si, src coord x) -> dst`. - pub fn delete(&mut self, si: usize, x: usize, dst: u32) -> bool { - let t = tgt_pack(si, dst); - self.graphs[si].delete(x, t) - } -} - -/// Arm C routing of one global id across sets (index per set): the noderef. -pub fn route_global_c(idx: &[CoordIndex], frames: &[Frame], g: u64) -> Option { - for (si, ix) in idx.iter().enumerate() { - if let Ok(c) = ix.lookup(&frames[si], g) { - return Some(noderef(si, c as usize)); - } - } - None -} - -// --------------------------------------------------------------------------- -// virtual WHERE -// --------------------------------------------------------------------------- - -/// The virtual WHERE over a working set: `lane[c] < lt` at every coordinate -/// that holds an identity (`valid`), as a coordinate mask. `out` has -/// `words_for(lane.len())` words. -pub fn virtual_where(lane: &[i32], lt: i32, valid: &[u64], out: &mut [u64]) { - ndarray::simd::lt_i32_to_mask(lane, lt, out); - ndarray::simd::mask_and_assign(out, valid); -} - -/// One Quack query over one `i32` lane of `n_rows` rows, lowered once (the -/// global scan arm of `discover`, and `Agg::Count` for G1). -pub struct Prepared { - program: Program, - scratch: Scratch<'static>, - n_rows: usize, -} - -impl Prepared { - pub fn new(cmp: Cmp, agg: Agg, n_rows: usize) -> Prepared { - let q = Query { - filter: Filter::cmp(Col(0), cmp), - agg, - }; - let program = lower(&q).expect("quack lowers"); - let scratch = Scratch::for_program(&program, n_rows).expect("scratch carves"); - Prepared { - program, - scratch, - n_rows, - } - } - /// `Agg::Rows`: the kept mask lands in `out` (`words_for(n_rows)` long). - pub fn keep(&mut self, lane: &[i32], live: &[u64], out: &mut [u64]) { - let masks: [&[u64]; 1] = [live]; - let lanes = [LaneRef::I32(lane)]; - let planes = Planes { - n_rows: self.n_rows, - masks: &masks, - lanes: &lanes, - }; - execute_into(&self.program, &planes, &Foreign::NONE, &mut self.scratch, Out::Mask(out)) - .expect("mask-risc runs"); - } - /// `Agg::Count`. - pub fn count(&mut self, lane: &[i32], live: &[u64]) -> usize { - let masks: [&[u64]; 1] = [live]; - let lanes = [LaneRef::I32(lane)]; - let planes = Planes { - n_rows: self.n_rows, - masks: &masks, - lanes: &lanes, - }; - match execute_into(&self.program, &planes, &Foreign::NONE, &mut self.scratch, Out::None) - .expect("mask-risc runs") - { - Value::Count(c) => c, - other => panic!("expected Value::Count, got {other:?}"), - } - } -} - -// --------------------------------------------------------------------------- -// folds over the coordinate CSR (no allocation; scratch is passed in) -// --------------------------------------------------------------------------- - -/// Reusable masks and queues for the folds, sized once per binding. -pub struct FoldScratch { - pub m1: Vec>, - pub m2: Vec>, - pub m3: Vec>, - pub seen: Vec>, - pub q_a: Vec, - pub q_b: Vec, -} - -impl FoldScratch { - /// `sizes[i]` = coordinates of set `i`. - pub fn new(sizes: &[usize]) -> FoldScratch { - let mk = || sizes.iter().map(|&n| vec![0u64; words_for(n)]).collect::>(); - let total: usize = sizes.iter().sum(); - FoldScratch { - m1: mk(), - m2: mk(), - m3: mk(), - seen: mk(), - q_a: Vec::with_capacity(total), - q_b: Vec::with_capacity(total), - } - } -} - -fn pop_all(m: &[Vec]) -> i64 { - m.iter().map(|w| popcount(w) as i64).sum() -} - -/// `|a AND m|` summed over sets, using `tmp` (distinct from `a` and `m`). -pub fn and_count(a: &[Vec], m: &[Vec], tmp: &mut [Vec]) -> i64 { - let mut total = 0i64; - for si in 0..a.len() { - ndarray::simd::mask_and(&a[si], &m[si], &mut tmp[si]); - total += popcount(&tmp[si]) as i64; - } - total -} - -/// `out[x]` = x has a valid edge into `target` (row pass over every row). -pub fn semijoin(g: &[CoordCsr], target: &[Vec], out: &mut [Vec]) { - for (si, c) in g.iter().enumerate() { - out[si].fill(0); - for x in 0..c.n { - for e in c.off[x] as usize..c.off[x + 1] as usize { - if bit(&c.valid, e) { - let n = tgt_unpack(si, c.tgt[e]); - if bit(&target[nr_set(n)], nr_coord(n)) { - set_bit(&mut out[si], x); - break; - } - } - } - } - } -} - -/// `dst` = the 1-hop neighbour set of `src` over valid edges (scatter OR). -pub fn step(g: &[CoordCsr], src: &[Vec], dst: &mut [Vec]) { - for d in dst.iter_mut() { - d.fill(0); - } - for (si, c) in g.iter().enumerate() { - for_each_bit(&src[si], |x| { - for e in c.off[x] as usize..c.off[x + 1] as usize { - if bit(&c.valid, e) { - let n = tgt_unpack(si, c.tgt[e]); - set_bit(&mut dst[nr_set(n)], nr_coord(n)); - } - } - }); - } -} - -fn hits_b(g: &[CoordCsr], si: usize, x: usize, b: &[Vec]) -> bool { - let c = &g[si]; - for e in c.off[x] as usize..c.off[x + 1] as usize { - if bit(&c.valid, e) { - let n = tgt_unpack(si, c.tgt[e]); - if bit(&b[nr_set(n)], nr_coord(n)) { - return true; - } - } - } - false -} - -fn hits_b2(g: &[CoordCsr], si: usize, x: usize, b: &[Vec]) -> bool { - let c = &g[si]; - for e in c.off[x] as usize..c.off[x + 1] as usize { - if bit(&c.valid, e) { - let n = tgt_unpack(si, c.tgt[e]); - if hits_b(g, nr_set(n), nr_coord(n), b) { - return true; - } - } - } - false -} - -/// W2, direct: for each x in A, early-exit scan of its edges into B. -pub fn w2(g: &[CoordCsr], a: &[Vec], b: &[Vec]) -> i64 { - let mut count = 0i64; - for si in 0..g.len() { - for_each_bit(&a[si], |x| { - if hits_b(g, si, x, b) { - count += 1; - } - }); - } - count -} - -/// W2 over ONE set (set 0) with a BORROWED A mask: the fold borrows the -/// selection's mask (EXO-46), nothing is copied or passed between programs. -pub fn w2_borrowed(g: &[CoordCsr], a: &[u64], b: &[Vec]) -> i64 { - let mut count = 0i64; - for_each_bit(a, |x| { - if hits_b(g, 0, x, b) { - count += 1; - } - }); - count -} - -/// W2 as mask algebra: `popcount(A AND semijoin(B))`. -pub fn w2_and(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { - semijoin(g, b, &mut sc.m1); - and_count(a, &sc.m1, &mut sc.m2) -} - -/// W2 through XOR: `|A AND S| = (|A| + |S| - |A XOR S|) / 2`. -pub fn w2_xor(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { - semijoin(g, b, &mut sc.m1); - let mut x = 0i64; - for si in 0..a.len() { - ndarray::simd::mask_xor(&a[si], &sc.m1[si], &mut sc.m2[si]); - x += popcount(&sc.m2[si]) as i64; - } - (pop_all(a) + pop_all(&sc.m1) - x) / 2 -} - -/// W3, DFS with early exit per source. -pub fn w3_csr(g: &[CoordCsr], a: &[Vec], b: &[Vec]) -> i64 { - let mut count = 0i64; - for si in 0..g.len() { - for_each_bit(&a[si], |x| { - if hits_b2(g, si, x, b) { - count += 1; - } - }); - } - count -} - -/// W3 by frontier masks: `popcount(A AND semijoin(semijoin(B)))`. -pub fn w3_front(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { - semijoin(g, b, &mut sc.m1); - semijoin(g, &sc.m1, &mut sc.m2); - and_count(a, &sc.m2, &mut sc.m3) -} - -/// W4, BFS per level with a per-level visited bitmap; the answer counts the -/// distinct nodes at exactly 3 hops that are in B. -pub fn w4_csr(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { - let FoldScratch { q_a, q_b, seen, .. } = sc; - q_a.clear(); - for si in 0..g.len() { - for_each_bit(&a[si], |x| q_a.push(noderef(si, x))); - } - for _ in 0..3 { - for s in seen.iter_mut() { - s.fill(0); - } - q_b.clear(); - for &n in q_a.iter() { - let (si, x) = (nr_set(n), nr_coord(n)); - let c = &g[si]; - for e in c.off[x] as usize..c.off[x + 1] as usize { - if bit(&c.valid, e) { - let m = tgt_unpack(si, c.tgt[e]); - let (ms, mc) = (nr_set(m), nr_coord(m)); - if !bit(&seen[ms], mc) { - set_bit(&mut seen[ms], mc); - q_b.push(m); - } - } - } - } - std::mem::swap(q_a, q_b); - } - q_a.iter().filter(|&&n| bit(&b[nr_set(n)], nr_coord(n))).count() as i64 -} - -/// W4 by frontier masks: three scatter-OR steps, then `popcount(F3 AND B)`. -pub fn w4_front(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { - for si in 0..a.len() { - sc.m1[si].copy_from_slice(&a[si]); - } - step(g, &sc.m1, &mut sc.m2); - step(g, &sc.m2, &mut sc.m3); - step(g, &sc.m3, &mut sc.m1); - and_count(&sc.m1, b, &mut sc.m2) -} - -/// W5: distinct y in B with an edge from A (1 hop). -pub fn w5(g: &[CoordCsr], a: &[Vec], b: &[Vec], sc: &mut FoldScratch) -> i64 { - step(g, a, &mut sc.m1); - and_count(&sc.m1, b, &mut sc.m2) -} - -/// W6: bag 2-path count, checked i64 (`None` = overflow). -pub fn w6(g: &[CoordCsr], a: &[Vec], b: Option<&[Vec]>) -> Option { - let mut total = 0i64; - let mut ovf = false; - for si in 0..g.len() { - let c = &g[si]; - for_each_bit(&a[si], |x| { - for e in c.off[x] as usize..c.off[x + 1] as usize { - if !bit(&c.valid, e) { - continue; - } - let y = tgt_unpack(si, c.tgt[e]); - let (ys, yc) = (nr_set(y), nr_coord(y)); - let c1 = &g[ys]; - let mut cnt = 0i64; - for e2 in c1.off[yc] as usize..c1.off[yc + 1] as usize { - if !bit(&c1.valid, e2) { - continue; - } - match b { - None => cnt += 1, - Some(bm) => { - let z = tgt_unpack(ys, c1.tgt[e2]); - if bit(&bm[nr_set(z)], nr_coord(z)) { - cnt += 1; - } - } - } - } - match total.checked_add(cnt) { - Some(t) => total = t, - None => ovf = true, - } - } - }); - } - if ovf { - None - } else { - Some(total) - } -} - -// --------------------------------------------------------------------------- -// W4 tile: dense row masks, only when the total active coordinates <= 4096 -// --------------------------------------------------------------------------- - -/// Dense adjacency rows over all sets' coordinates (`off[si] + coord`). -pub struct TileMatrix { - pub total: usize, - wpr: usize, - off: Vec, - rows: Vec, - f1: Vec, - f2: Vec, - a: Vec, - b: Vec, -} - -impl TileMatrix { - /// `None` when the total coordinate count exceeds 4096. - pub fn build(g: &[CoordCsr]) -> Option { - let total: usize = g.iter().map(|c| c.n).sum(); - if total > 4096 { - return None; - } - let wpr = words_for(total.max(1)); - let mut off = Vec::with_capacity(g.len()); - let mut acc = 0usize; - for c in g { - off.push(acc); - acc += c.n; - } - let mut rows = vec![0u64; total.max(1) * wpr]; - for (si, c) in g.iter().enumerate() { - for x in 0..c.n { - for e in c.off[x] as usize..c.off[x + 1] as usize { - if bit(&c.valid, e) { - let n = tgt_unpack(si, c.tgt[e]); - let d = off[nr_set(n)] + nr_coord(n); - let r = off[si] + x; - set_bit(&mut rows[r * wpr..(r + 1) * wpr], d); - } - } - } - } - Some(TileMatrix { - total, - wpr, - off, - rows, - f1: vec![0; wpr], - f2: vec![0; wpr], - a: vec![0; wpr], - b: vec![0; wpr], - }) - } - /// Presence-only update on the dense rows. - pub fn clear_edge(&mut self, si: usize, x: usize, dst: u32) { - let r = self.off[si] + x; - let d = self.off[nr_set(dst)] + nr_coord(dst); - let wpr = self.wpr; - clear_bit(&mut self.rows[r * wpr..(r + 1) * wpr], d); - } - /// Scatter the per-set A and B masks into the dense space. - pub fn load(&mut self, a: &[Vec], b: &[Vec]) { - self.a.fill(0); - self.b.fill(0); - for si in 0..a.len() { - let o = self.off[si]; - let (da, db) = (&mut self.a, &mut self.b); - for_each_bit(&a[si], |x| set_bit(da, o + x)); - for_each_bit(&b[si], |x| set_bit(db, o + x)); - } - } - /// W4: three dense OR-of-rows steps, then `popcount(F3 AND B)`. - pub fn fold(&mut self) -> i64 { - let wpr = self.wpr; - let TileMatrix { rows, f1, f2, a, b, .. } = self; - f1.copy_from_slice(a); - for step_no in 0..3 { - let (src, dst) = if step_no % 2 == 0 { (&*f1, &mut *f2) } else { (&*f2, &mut *f1) }; - dst.fill(0); - for_each_bit(src, |x| ndarray::simd::mask_or_assign(dst, &rows[x * wpr..(x + 1) * wpr])); - } - // three steps: f1 -> f2 -> f1 -> f2; the result is f2. - ndarray::simd::mask_and(f2, b, f1); - popcount(f1) as i64 - } -} - -// --------------------------------------------------------------------------- -// scalar oracle over the global edge list (HashSet/HashMap allowed: oracle) -// --------------------------------------------------------------------------- - -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct Oracle { - pub w2: i64, - pub w3: i64, - pub w4: i64, - pub w5: i64, - /// Bag 2-path count without a B filter. - pub w6: i64, - /// Bag 2-path count with z in B (SQL G6). - pub w6b: i64, -} - -pub fn oracle( - edges: &[(u64, u64)], - in_a: &dyn Fn(u64) -> bool, - in_b: &dyn Fn(u64) -> bool, - deleted: &[(u64, u64)], -) -> Oracle { - let del: HashSet<(u64, u64)> = deleted.iter().copied().collect(); - let mut adj: HashMap> = HashMap::new(); - for &(s, d) in edges { - if !del.contains(&(s, d)) { - adj.entry(s).or_default().push(d); - } - } - let a_nodes: Vec = adj.keys().copied().filter(|&x| in_a(x)).collect(); - let nbrs = |x: u64| adj.get(&x).map(|v| v.as_slice()).unwrap_or(&[]); - let w2 = a_nodes.iter().filter(|&&x| nbrs(x).iter().any(|&y| in_b(y))).count() as i64; - let w3 = a_nodes - .iter() - .filter(|&&x| nbrs(x).iter().any(|&y| nbrs(y).iter().any(|&z| in_b(z)))) - .count() as i64; - let mut front: HashSet = a_nodes.iter().copied().collect(); - let mut reach1: HashSet = HashSet::new(); - for hop in 0..3 { - let mut next: HashSet = HashSet::new(); - for &x in &front { - next.extend(nbrs(x).iter().copied()); - } - if hop == 0 { - reach1 = next.clone(); - } - front = next; - } - let w4 = front.iter().filter(|&&z| in_b(z)).count() as i64; - let w5 = reach1.iter().filter(|&&y| in_b(y)).count() as i64; - let mut w6 = 0i64; - let mut w6b = 0i64; - for &x in &a_nodes { - for &y in nbrs(x) { - w6 += nbrs(y).len() as i64; - w6b += nbrs(y).iter().filter(|&&z| in_b(z)).count() as i64; - } - } - Oracle { w2, w3, w4, w5, w6, w6b } -} - -// --------------------------------------------------------------------------- -// EXO-46 shared selection (LAB) -// --------------------------------------------------------------------------- - -#[derive(Debug, Clone, PartialEq)] -pub enum ShareRefusal { - /// dt64's `BindStore::admit` refused the method reference. - Bind(Refusal), - /// The method reference is for another class than the selection's. - ClassMismatch { selection: u32, asked: u32 }, - /// The method presented a permit that does not hold its reference - /// (a permit is per method; it is never inherited). - NotPermitted, - Scope, - /// The selection's frame is not the table's current seal. - StaleFrame, -} - -/// A sealed selection one working set owns: the frame it was evaluated under, -/// the scope it was authorized for, a criteria tag and the mask. Methods -/// borrow the mask through `admit`; no mask is passed between programs. -#[derive(Debug, Clone)] -pub struct SharedSelection { - pub class: u32, - pub frame: Frame, - pub scope: Scope, - pub criteria: u64, - pub mask: Vec, -} - -impl SharedSelection { - /// Frame currency is `frame.same_issue(¤t)`, `current` being - /// `table.seal()`: the seal is replaced by every `advance`, so a stale - /// frame fails even when numbers are equal (an identity compare of issues, - /// never a digest compare). Order: dt64 admit (class bound, method known, - /// sig rev, guard), class match, the method's own permit, scope, frame. - /// Allocation-free on the success path (unguarded methods). - pub fn admit( - &self, - store: &BindStore, - mref: &MethodRef, - permit: &[MethodRef], - current: &Frame, - scope_now: Scope, - ) -> Result<&[u64], ShareRefusal> { - store.admit(mref).map_err(ShareRefusal::Bind)?; - if mref.class != self.class { - return Err(ShareRefusal::ClassMismatch { - selection: self.class, - asked: mref.class, - }); - } - if !permit.contains(mref) { - return Err(ShareRefusal::NotPermitted); - } - if self.scope != scope_now { - return Err(ShareRefusal::Scope); - } - if !self.frame.same_issue(current) { - return Err(ShareRefusal::StaleFrame); - } - Ok(&self.mask) - } -} - -// --------------------------------------------------------------------------- -// multi-domain helpers -// --------------------------------------------------------------------------- - -/// The global-id union check for domains (working sets) that should be -/// disjoint: `Ok(total ids)` or `Err(first id held by two members)`. It reads -/// the pointer tables, never a second identity table. -pub fn union_check(sets: &[&WorkingSet]) -> Result { - let mut all: Vec = Vec::new(); - for ws in sets { - let f = ws.seal(); - for &t in &ws.tile_ids { - if let Ok(v) = ws.table.map(&f, t) { - all.extend_from_slice(v.globals()); - } - } - } - all.sort_unstable(); - for w in all.windows(2) { - if w[0] == w[1] { - return Err(w[0]); - } - } - Ok(all.len()) -} - -/// Checked sum of per-domain contributions (`None` on overflow). -pub fn checked_sum(parts: &[i64]) -> Option { - parts.iter().try_fold(0i64, |acc, &p| acc.checked_add(p)) -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log b/.claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log deleted file mode 100644 index 3124af7d4..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/comp_both.log +++ /dev/null @@ -1,124 +0,0 @@ - -######## N=1000000 routing arm C ######## -discover |sel|=1000 achieved 1000: scan 185.5us + extract 23.4us (N-bound by design) -discover |sel|=50000 achieved 50000: scan 198.2us + extract 85.4us (N-bound by design) -discover |sel|=200000 achieved 200000: scan 182.1us + extract 458.5us (N-bound by design) -case sel=1000 D=1 contig ... -case sel=50000 D=1 contig ... -case sel=200000 D=4 contig ... -case sel=200000 D=4 scatter ... -case sel=50000 D=2 contig ... -case sel=50000 D=2 scatter ... -case sel=50000 D=4 contig ... -case sel=50000 D=4 scatter ... -case sel=50000 D=8 contig ... -case sel=50000 D=8 scatter ... - -== N=1000000 (all times us; discover = WHERE scan + mask->ids, N-BOUND by design; rest = everything else given the ids) == - sel D part discover partit fetch bind route prep fold/set fold_tot compose continue rebuild rest gate - 1000 1 contig 208.9 0.7 68.2 18.4 480.6 60.2 60.2 60.2 0.1 - - 688.5 - 50000 1 contig 283.6 56.7 7167.1 947.3 35913.9 2478.3 3614.4 3614.4 0.3 - - 50178.1 FAILED-GATE - 200000 4 contig 640.6 237.7 14085.6 3805.8 165011.9 13889.9 3814.5 15257.8 3.4 54696.0 178169.9 212292.1 FAILED-GATE - 200000 4 scatter 640.6 518.0 13516.0 3682.3 282447.8 10023.7 4358.3 17433.0 4.3 - - 327625.2 FAILED-GATE - 50000 2 contig 283.6 56.7 2765.6 933.0 29809.1 2456.1 1897.4 3794.7 0.4 19912.8 35965.7 39815.5 FAILED-GATE - 50000 2 scatter 283.6 184.8 3945.5 1025.8 51220.8 2844.8 1815.3 3630.7 0.4 - - 62852.9 FAILED-GATE - 50000 4 contig 283.6 58.6 3111.9 897.0 32129.9 2540.0 921.0 3683.9 0.9 13690.3 45314.7 42422.2 - 50000 4 scatter 283.6 142.5 2956.7 892.7 58127.8 2470.2 908.4 3633.7 0.9 - - 68224.5 - 50000 8 contig 283.6 58.4 2787.9 883.6 35078.3 2404.8 452.4 3618.9 2.3 7764.8 46454.5 44834.2 - 50000 8 scatter 283.6 170.7 2941.4 889.9 90952.8 2473.4 466.4 3731.5 2.2 - - 101161.8 - (route/prep/bind/fetch/partition/continuation/rebuild are COLD, reported not gated; fold gate is per set, warm) - sel= 1000 D= 1 contig edges 6924 cross 0 ( 0.0%) dropped 1155 locate 0 warm allocs 0 calls/0 B retained 176004 B (176004 B/set) peak 648572 B disjoint-check 5.2us answers exists=true W2=Some(295) W5=443 W6=Some(14193) sum(per-set DISTINCT) wrong=false - sel= 50000 D= 1 contig edges 351834 cross 0 ( 0.0%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8113924 B (8113924 B/set) peak 31071728 B disjoint-check 144.1us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=false - sel= 200000 D= 4 contig edges 1437868 cross 39089 ( 2.7%) dropped 161605 locate 0 warm allocs 0 calls/0 B retained 32717864 B (8179466 B/set) peak 68292672 B disjoint-check 816.4us answers exists=true W2=Some(59065) W5=88417 W6=Some(3124985) sum(per-set DISTINCT) wrong=true - sel= 200000 D= 4 scatter edges 1437868 cross 1077204 ( 74.9%) dropped 161605 locate 0 warm allocs 0 calls/0 B retained 32717864 B (8179466 B/set) peak 86873564 B disjoint-check 4693.8us answers exists=true W2=Some(59065) W5=88417 W6=Some(3124985) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 2 contig edges 351834 cross 4847 ( 1.4%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8127784 B (4063892 B/set) peak 21734240 B disjoint-check 147.2us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 2 scatter edges 351834 cross 175564 ( 49.9%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8127776 B (4063888 B/set) peak 21879200 B disjoint-check 983.4us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 4 contig edges 351834 cross 11192 ( 3.2%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8153056 B (2038264 B/set) peak 20271008 B disjoint-check 177.3us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 4 scatter edges 351834 cross 263611 ( 74.9%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8153064 B (2038266 B/set) peak 21721320 B disjoint-check 965.7us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 8 contig edges 351834 cross 20915 ( 5.9%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8225600 B (1028200 B/set) peak 17937928 B disjoint-check 137.5us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 8 scatter edges 351834 cross 307477 ( 87.4%) dropped 48424 locate 0 warm allocs 0 calls/0 B retained 8225592 B (1028199 B/set) peak 18333352 B disjoint-check 942.7us answers exists=true W2=Some(14654) W5=21823 W6=Some(742573) sum(per-set DISTINCT) wrong=true - --- N=1000000: slope in D at fixed |sel|=50,000 (us per added set; D8/D1 ratio) -- - contig D=[1, 2, 4, 8]: partition +0.3/set x1.0; fetch -414.7/set x0.4; bind -9.0/set x0.9; route +215.2/set x1.0; prep -9.0/set x1.0; fold_total -9.7/set x1.0; compose +0.3/set x9.0; rest_given_ids -226.6/set x0.9; - scatter D=[1, 2, 4, 8]: partition +9.8/set x3.0; fetch -465.2/set x0.4; bind -13.7/set x0.9; route +7397.6/set x2.5; prep -23.1/set x1.0; fold_total +16.5/set x1.0; compose +0.3/set x8.5; rest_given_ids +6922.1/set x2.0; - --- refusals and WorkingSet::extend (N=1000000) -- - refusal too_many: FIRES (build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true) - refusal id_in_two_sets: FIRES (union_check overlapping=Err(5072); naive composed COUNT Some(1729)/DISTINCT 2620/BAG Some(84635) vs oracle 1434/2208/69688; disjoint control union_check=Ok(5000) and composed==oracle) - refusal checked_sum_overflow: FIRES (checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)) - refusal stale_binding: FIRES (guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true) - WorkingSet::extend(+10000 onto 50000) 717.2us vs WorkingSet::build(60000) 950.3us; old coordinates kept and old frame stale: true - -######## N=10000000 routing arm C ######## -discover |sel|=1000 achieved 1000: scan 2815.9us + extract 95.6us (N-bound by design) -discover |sel|=50000 achieved 50000: scan 2234.4us + extract 156.2us (N-bound by design) -discover |sel|=200000 achieved 200000: scan 1933.7us + extract 313.2us (N-bound by design) -discover |sel|=1000000 achieved 1000000: scan 1823.2us + extract 1417.0us (N-bound by design) -case sel=1000 D=1 contig ... -case sel=50000 D=1 contig ... -case sel=200000 D=4 contig ... -case sel=200000 D=4 scatter ... -case sel=1000000 D=16 contig ... -case sel=1000000 D=16 scatter ... -case sel=50000 D=2 contig ... -case sel=50000 D=2 scatter ... -case sel=50000 D=4 contig ... -case sel=50000 D=4 scatter ... -case sel=50000 D=8 contig ... -case sel=50000 D=8 scatter ... - -== N=10000000 (all times us; discover = WHERE scan + mask->ids, N-BOUND by design; rest = everything else given the ids) == - sel D part discover partit fetch bind route prep fold/set fold_tot compose continue rebuild rest gate - 1000 1 contig 2911.5 1.0 43.7 15.5 338.4 38.5 54.9 54.9 0.1 - - 492.2 - 50000 1 contig 2390.5 56.1 2541.9 884.5 29655.6 2325.9 3604.8 3604.8 0.5 - - 39069.3 FAILED-GATE - 200000 4 contig 2246.9 248.9 24507.8 3702.6 150077.3 10226.4 3665.4 14661.5 3.6 53768.5 180443.1 203428.1 FAILED-GATE - 200000 4 scatter 2246.9 629.7 20106.3 3683.4 333023.1 10583.2 3868.5 15474.0 3.4 - - 383503.1 FAILED-GATE - 1000000 16 contig 3240.3 1297.9 118963.4 18568.0 1271009.9 62251.9 7099.8 113597.0 103.2 185331.4 1725769.3 1585791.2 FAILED-GATE - 1000000 16 scatter 3240.3 4415.6 83652.2 22078.2 5273045.1 54532.2 5544.3 88709.6 113.5 - - 5526546.4 FAILED-GATE - 50000 2 contig 2390.5 60.9 2870.8 912.6 29956.6 2448.1 1856.5 3712.9 0.5 19486.8 35561.7 39962.3 FAILED-GATE - 50000 2 scatter 2390.5 144.7 2713.6 919.9 42124.0 2459.8 1815.9 3631.9 0.5 - - 51994.4 FAILED-GATE - 50000 4 contig 2390.5 57.0 3043.5 904.2 32310.5 3198.7 1156.4 4625.7 1.5 16093.7 51256.7 44141.1 FAILED-GATE - 50000 4 scatter 2390.5 146.3 3066.6 898.5 59080.6 2521.2 926.0 3704.1 1.0 - - 69418.2 - 50000 8 contig 2390.5 62.8 2779.7 884.2 35880.7 2449.4 457.8 3662.0 2.4 7963.9 50665.6 45721.4 - 50000 8 scatter 2390.5 145.7 2835.6 898.7 85488.3 2380.8 468.0 3744.4 2.3 - - 95495.8 - (route/prep/bind/fetch/partition/continuation/rebuild are COLD, reported not gated; fold gate is per set, warm) - sel= 1000 D= 1 contig edges 6802 cross 0 ( 0.0%) dropped 1207 locate 0 warm allocs 0 calls/0 B retained 174940 B (174940 B/set) peak 646052 B disjoint-check 5.2us answers exists=true W2=Some(313) W5=465 W6=Some(14811) sum(per-set DISTINCT) wrong=false - sel= 50000 D= 1 contig edges 349173 cross 0 ( 0.0%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8100752 B (8100752 B/set) peak 24661736 B disjoint-check 208.5us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=false - sel= 200000 D= 4 contig edges 1403707 cross 12133 ( 0.9%) dropped 197471 locate 0 warm allocs 0 calls/0 B retained 32590588 B (8147647 B/set) peak 87519744 B disjoint-check 827.1us answers exists=true W2=Some(59030) W5=87951 W6=Some(2983642) sum(per-set DISTINCT) wrong=true - sel= 200000 D= 4 scatter edges 1403707 cross 1053140 ( 75.0%) dropped 197471 locate 0 warm allocs 0 calls/0 B retained 32590596 B (8147649 B/set) peak 80509456 B disjoint-check 4658.5us answers exists=true W2=Some(59030) W5=87951 W6=Some(2983642) sum(per-set DISTINCT) wrong=true - sel= 1000000 D=16 contig edges 7102129 cross 135606 ( 1.9%) dropped 900176 locate 0 warm allocs 0 calls/0 B retained 162088340 B (10130521 B/set) peak 331133700 B disjoint-check 5693.4us answers exists=true W2=Some(294165) W5=440420 W6=Some(15207122) sum(per-set DISTINCT) wrong=true - sel= 1000000 D=16 scatter edges 7102129 cross 6657999 ( 93.7%) dropped 900176 locate 0 warm allocs 0 calls/0 B retained 162088340 B (10130521 B/set) peak 341225180 B disjoint-check 26636.4us answers exists=true W2=Some(294165) W5=440420 W6=Some(15207122) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 2 contig edges 349173 cross 3596 ( 1.0%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8114612 B (4057306 B/set) peak 21741428 B disjoint-check 117.9us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 2 scatter edges 349173 cross 175000 ( 50.1%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8114612 B (4057306 B/set) peak 21886440 B disjoint-check 994.3us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 4 contig edges 349173 cross 9377 ( 2.7%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8139892 B (2034973 B/set) peak 20277412 B disjoint-check 187.5us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 4 scatter edges 349173 cross 262087 ( 75.1%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8139884 B (2034971 B/set) peak 21728572 B disjoint-check 953.1us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 8 contig edges 349173 cross 20175 ( 5.8%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8212412 B (1026551 B/set) peak 17141040 B disjoint-check 144.1us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true - sel= 50000 D= 8 scatter edges 349173 cross 305719 ( 87.6%) dropped 50811 locate 0 warm allocs 0 calls/0 B retained 8212420 B (1026552 B/set) peak 17541644 B disjoint-check 1236.0us answers exists=true W2=Some(14773) W5=22073 W6=Some(737052) sum(per-set DISTINCT) wrong=true - --- N=10000000: slope in D at fixed |sel|=50,000 (us per added set; D8/D1 ratio) -- - contig D=[1, 2, 4, 8]: partition +0.7/set x1.1; fetch +19.5/set x1.1; bind -1.6/set x1.0; route +925.0/set x1.2; prep +18.4/set x1.1; fold_total +10.8/set x1.0; compose +0.3/set x5.3; rest_given_ids +973.1/set x1.2; - scatter D=[1, 2, 4, 8]: partition +8.6/set x2.6; fetch +37.5/set x1.1; bind +0.1/set x1.0; route +7750.5/set x2.9; prep +1.7/set x1.0; fold_total +19.8/set x1.0; compose +0.3/set x5.2; rest_given_ids +7818.5/set x2.4; - --- refusals and WorkingSet::extend (N=10000000) -- - refusal too_many: FIRES (build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true) - refusal id_in_two_sets: FIRES (union_check overlapping=Err(58320); naive composed COUNT Some(1791)/DISTINCT 2611/BAG Some(89960) vs oracle 1495/2195/74382; disjoint control union_check=Ok(5000) and composed==oracle) - refusal checked_sum_overflow: FIRES (checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)) - refusal stale_binding: FIRES (guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true) - WorkingSet::extend(+10000 onto 50000) 723.1us vs WorkingSet::build(60000) 984.8us; old coordinates kept and old frame stale: true - -== SCALING CHECK: ratio of stage cost, N=10000000 over N=1000000 (flat = ~1; a stage > 1.5x and > 100us is CORPUS-BOUND) == -sel= 1000 D= 1 contig : discover x13.9(scan, N-bound expected); partition x1.38; fetch x0.64; bind x0.84; route x0.70; prep x0.64; fold_total x0.91; fold_per_set x0.91; compose x0.71; rest_given_ids x0.71; -sel= 50000 D= 1 contig : discover x8.4(scan, N-bound expected); partition x0.99; fetch x0.35; bind x0.93; route x0.83; prep x0.94; fold_total x1.00; fold_per_set x1.00; compose x1.74; rest_given_ids x0.78; -sel= 200000 D= 4 contig : discover x3.5(scan, N-bound expected); partition x1.05; fetch x1.7 CORPUS-BOUND; bind x0.97; route x0.91; prep x0.74; fold_total x0.96; fold_per_set x0.96; compose x1.06; continuation x0.98; rebuild x1.01; rest_given_ids x0.96; -sel= 200000 D= 4 scatter: discover x3.5(scan, N-bound expected); partition x1.22; fetch x1.49; bind x1.00; route x1.18; prep x1.06; fold_total x0.89; fold_per_set x0.89; compose x0.79; rest_given_ids x1.17; -sel= 50000 D= 2 contig : discover x8.4(scan, N-bound expected); partition x1.07; fetch x1.04; bind x0.98; route x1.00; prep x1.00; fold_total x0.98; fold_per_set x0.98; compose x1.34; continuation x0.98; rebuild x0.99; rest_given_ids x1.00; -sel= 50000 D= 2 scatter: discover x8.4(scan, N-bound expected); partition x0.78; fetch x0.69; bind x0.90; route x0.82; prep x0.86; fold_total x1.00; fold_per_set x1.00; compose x1.05; rest_given_ids x0.83; -sel= 50000 D= 4 contig : discover x8.4(scan, N-bound expected); partition x0.97; fetch x0.98; bind x1.01; route x1.01; prep x1.26; fold_total x1.26; fold_per_set x1.26; compose x1.65; continuation x1.18; rebuild x1.13; rest_given_ids x1.04; -sel= 50000 D= 4 scatter: discover x8.4(scan, N-bound expected); partition x1.03; fetch x1.04; bind x1.01; route x1.02; prep x1.02; fold_total x1.02; fold_per_set x1.02; compose x1.02; rest_given_ids x1.02; -sel= 50000 D= 8 contig : discover x8.4(scan, N-bound expected); partition x1.08; fetch x1.00; bind x1.00; route x1.02; prep x1.02; fold_total x1.01; fold_per_set x1.01; compose x1.03; continuation x1.03; rebuild x1.09; rest_given_ids x1.02; -sel= 50000 D= 8 scatter: discover x8.4(scan, N-bound expected); partition x0.85; fetch x0.96; bind x1.01; route x0.94; prep x0.96; fold_total x1.00; fold_per_set x1.00; compose x1.06; rest_given_ids x0.94; - CORPUS-BOUND findings (reported, not failures): fetch@sel=200000,D=4,contig - -compose: 13 case(s) printed FAILED-GATE on the warm per-set fold (reported, not an exit code) -compose: all composed answers equal the oracle; every refusal fired -rc=0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json deleted file mode 100644 index cac6f4e84..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n1000000/compose.json +++ /dev/null @@ -1 +0,0 @@ -{"n":1000000,"arm":"C","graph":"avg out-degree 8, 7/8 targets in the source's 1024-id block, 1/8 uniform","gate":"warm fold per set >= 1000us prints FAILED-GATE (reported)","cases":[{"sel_requested":1000,"sel_achieved":1000,"d":1,"partition":"contig","discover_scan_us":185.518,"discover_extract_us":23.394,"partition_us":0.738,"fetch_us":68.246,"bind_us":18.434,"route_us":480.623,"prep_us":60.173,"fold_total_us":60.180,"fold_per_set_us":60.180,"compose_us":0.087,"disjoint_check_us":5.150,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":688.481,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":176004,"peak_bytes":648572,"per_set_bytes":176004,"edges":6924,"dropped_edges":1155,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":295,"distinct_w5":443,"bag_w6":14193,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":1,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":56.708,"fetch_us":7167.132,"bind_us":947.313,"route_us":35913.941,"prep_us":2478.336,"fold_total_us":3614.396,"fold_per_set_us":3614.396,"compose_us":0.259,"disjoint_check_us":144.073,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":50178.085,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8113924,"peak_bytes":31071728,"per_set_bytes":8113924,"edges":351834,"dropped_edges":48424,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"contig","discover_scan_us":182.098,"discover_extract_us":458.537,"partition_us":237.714,"fetch_us":14085.577,"bind_us":3805.815,"route_us":165011.889,"prep_us":13889.909,"fold_total_us":15257.804,"fold_per_set_us":3814.451,"compose_us":3.377,"disjoint_check_us":816.436,"continuation_us":54695.987,"rebuild_us":178169.859,"rest_given_ids_us":212292.085,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32717864,"peak_bytes":68292672,"per_set_bytes":8179466,"edges":1437868,"dropped_edges":161605,"cross_edges":39089,"locate_calls":0,"answers":{"exists":true,"count_w2":59065,"distinct_w5":88417,"bag_w6":3124985,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"scatter","discover_scan_us":182.098,"discover_extract_us":458.537,"partition_us":518.015,"fetch_us":13516.040,"bind_us":3682.322,"route_us":282447.807,"prep_us":10023.671,"fold_total_us":17433.038,"fold_per_set_us":4358.260,"compose_us":4.279,"disjoint_check_us":4693.844,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":327625.172,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32717864,"peak_bytes":86873564,"per_set_bytes":8179466,"edges":1437868,"dropped_edges":161605,"cross_edges":1077204,"locate_calls":0,"answers":{"exists":true,"count_w2":59065,"distinct_w5":88417,"bag_w6":3124985,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":56.681,"fetch_us":2765.558,"bind_us":933.014,"route_us":29809.139,"prep_us":2456.050,"fold_total_us":3794.716,"fold_per_set_us":1897.358,"compose_us":0.369,"disjoint_check_us":147.169,"continuation_us":19912.817,"rebuild_us":35965.680,"rest_given_ids_us":39815.527,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8127784,"peak_bytes":21734240,"per_set_bytes":4063892,"edges":351834,"dropped_edges":48424,"cross_edges":4847,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"scatter","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":184.832,"fetch_us":3945.469,"bind_us":1025.756,"route_us":51220.848,"prep_us":2844.840,"fold_total_us":3630.682,"fold_per_set_us":1815.341,"compose_us":0.428,"disjoint_check_us":983.433,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":62852.855,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8127776,"peak_bytes":21879200,"per_set_bytes":4063888,"edges":351834,"dropped_edges":48424,"cross_edges":175564,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":58.575,"fetch_us":3111.928,"bind_us":896.983,"route_us":32129.913,"prep_us":2540.042,"fold_total_us":3683.860,"fold_per_set_us":920.965,"compose_us":0.926,"disjoint_check_us":177.261,"continuation_us":13690.263,"rebuild_us":45314.727,"rest_given_ids_us":42422.227,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8153056,"peak_bytes":20271008,"per_set_bytes":2038264,"edges":351834,"dropped_edges":48424,"cross_edges":11192,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"scatter","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":142.501,"fetch_us":2956.710,"bind_us":892.687,"route_us":58127.786,"prep_us":2470.250,"fold_total_us":3633.664,"fold_per_set_us":908.416,"compose_us":0.935,"disjoint_check_us":965.658,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":68224.533,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8153064,"peak_bytes":21721320,"per_set_bytes":2038266,"edges":351834,"dropped_edges":48424,"cross_edges":263611,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"contig","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":58.352,"fetch_us":2787.902,"bind_us":883.556,"route_us":35078.325,"prep_us":2404.830,"fold_total_us":3618.900,"fold_per_set_us":452.363,"compose_us":2.328,"disjoint_check_us":137.452,"continuation_us":7764.773,"rebuild_us":46454.471,"rest_given_ids_us":44834.193,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8225600,"peak_bytes":17937928,"per_set_bytes":1028200,"edges":351834,"dropped_edges":48424,"cross_edges":20915,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"scatter","discover_scan_us":198.232,"discover_extract_us":85.398,"partition_us":170.694,"fetch_us":2941.371,"bind_us":889.875,"route_us":90952.772,"prep_us":2473.404,"fold_total_us":3731.517,"fold_per_set_us":466.440,"compose_us":2.196,"disjoint_check_us":942.745,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":101161.829,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8225592,"peak_bytes":18333352,"per_set_bytes":1028199,"edges":351834,"dropped_edges":48424,"cross_edges":307477,"locate_calls":0,"answers":{"exists":true,"count_w2":14654,"distinct_w5":21823,"bag_w6":742573,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true}],"d_slopes":{"contig":{"partition":{"slope_us_per_set":0.261,"ratio_dmax_over_d1":1.029},"fetch":{"slope_us_per_set":-414.705,"ratio_dmax_over_d1":0.389},"bind":{"slope_us_per_set":-8.992,"ratio_dmax_over_d1":0.933},"route":{"slope_us_per_set":215.166,"ratio_dmax_over_d1":0.977},"prep":{"slope_us_per_set":-8.973,"ratio_dmax_over_d1":0.970},"fold_total":{"slope_us_per_set":-9.706,"ratio_dmax_over_d1":1.001},"compose":{"slope_us_per_set":0.305,"ratio_dmax_over_d1":8.988},"rest_given_ids":{"slope_us_per_set":-226.644,"ratio_dmax_over_d1":0.894}},"scatter":{"partition":{"slope_us_per_set":9.797,"ratio_dmax_over_d1":3.010},"fetch":{"slope_us_per_set":-465.189,"ratio_dmax_over_d1":0.410},"bind":{"slope_us_per_set":-13.741,"ratio_dmax_over_d1":0.939},"route":{"slope_us_per_set":7397.614,"ratio_dmax_over_d1":2.533},"prep":{"slope_us_per_set":-23.108,"ratio_dmax_over_d1":0.998},"fold_total":{"slope_us_per_set":16.490,"ratio_dmax_over_d1":1.032},"compose":{"slope_us_per_set":0.282,"ratio_dmax_over_d1":8.479},"rest_given_ids":{"slope_us_per_set":6922.145,"ratio_dmax_over_d1":2.016}}},"refusals":{"too_many":{"fires":true,"control_passes":true,"detail":"build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true"},"id_in_two_sets":{"fires":true,"control_passes":true,"detail":"union_check overlapping=Err(5072); naive composed COUNT Some(1729)/DISTINCT 2620/BAG Some(84635) vs oracle 1434/2208/69688; disjoint control union_check=Ok(5000) and composed==oracle"},"checked_sum_overflow":{"fires":true,"control_passes":true,"detail":"checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)"},"stale_binding":{"fires":true,"control_passes":true,"detail":"guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true"}},"extend_vs_rebuild":{"extend_us":717.218,"rebuild_us":950.337,"added":10000,"base":50000,"coords_kept_old_frame_stale":true}} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json deleted file mode 100644 index a26c9c391..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/n10000000/compose.json +++ /dev/null @@ -1 +0,0 @@ -{"n":10000000,"arm":"C","graph":"avg out-degree 8, 7/8 targets in the source's 1024-id block, 1/8 uniform","gate":"warm fold per set >= 1000us prints FAILED-GATE (reported)","cases":[{"sel_requested":1000,"sel_achieved":1000,"d":1,"partition":"contig","discover_scan_us":2815.938,"discover_extract_us":95.592,"partition_us":1.022,"fetch_us":43.737,"bind_us":15.521,"route_us":338.420,"prep_us":38.504,"fold_total_us":54.941,"fold_per_set_us":54.941,"compose_us":0.062,"disjoint_check_us":5.231,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":492.207,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":174940,"peak_bytes":646052,"per_set_bytes":174940,"edges":6802,"dropped_edges":1207,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":313,"distinct_w5":465,"bag_w6":14811,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":1,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":56.104,"fetch_us":2541.926,"bind_us":884.542,"route_us":29655.556,"prep_us":2325.918,"fold_total_us":3604.808,"fold_per_set_us":3604.808,"compose_us":0.450,"disjoint_check_us":208.486,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":39069.304,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8100752,"peak_bytes":24661736,"per_set_bytes":8100752,"edges":349173,"dropped_edges":50811,"cross_edges":0,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":false},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"contig","discover_scan_us":1933.714,"discover_extract_us":313.219,"partition_us":248.901,"fetch_us":24507.777,"bind_us":3702.625,"route_us":150077.323,"prep_us":10226.397,"fold_total_us":14661.460,"fold_per_set_us":3665.365,"compose_us":3.578,"disjoint_check_us":827.056,"continuation_us":53768.467,"rebuild_us":180443.130,"rest_given_ids_us":203428.061,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32590588,"peak_bytes":87519744,"per_set_bytes":8147647,"edges":1403707,"dropped_edges":197471,"cross_edges":12133,"locate_calls":0,"answers":{"exists":true,"count_w2":59030,"distinct_w5":87951,"bag_w6":2983642,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":200000,"sel_achieved":200000,"d":4,"partition":"scatter","discover_scan_us":1933.714,"discover_extract_us":313.219,"partition_us":629.720,"fetch_us":20106.335,"bind_us":3683.397,"route_us":333023.104,"prep_us":10583.207,"fold_total_us":15473.996,"fold_per_set_us":3868.499,"compose_us":3.363,"disjoint_check_us":4658.523,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":383503.122,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":32590596,"peak_bytes":80509456,"per_set_bytes":8147649,"edges":1403707,"dropped_edges":197471,"cross_edges":1053140,"locate_calls":0,"answers":{"exists":true,"count_w2":59030,"distinct_w5":87951,"bag_w6":2983642,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":1000000,"sel_achieved":1000000,"d":16,"partition":"contig","discover_scan_us":1823.229,"discover_extract_us":1417.035,"partition_us":1297.915,"fetch_us":118963.435,"bind_us":18568.048,"route_us":1271009.854,"prep_us":62251.855,"fold_total_us":113596.956,"fold_per_set_us":7099.810,"compose_us":103.150,"disjoint_check_us":5693.389,"continuation_us":185331.432,"rebuild_us":1725769.265,"rest_given_ids_us":1585791.213,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":162088340,"peak_bytes":331133700,"per_set_bytes":10130521,"edges":7102129,"dropped_edges":900176,"cross_edges":135606,"locate_calls":0,"answers":{"exists":true,"count_w2":294165,"distinct_w5":440420,"bag_w6":15207122,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":1000000,"sel_achieved":1000000,"d":16,"partition":"scatter","discover_scan_us":1823.229,"discover_extract_us":1417.035,"partition_us":4415.619,"fetch_us":83652.243,"bind_us":22078.176,"route_us":5273045.145,"prep_us":54532.196,"fold_total_us":88709.563,"fold_per_set_us":5544.348,"compose_us":113.464,"disjoint_check_us":26636.412,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":5526546.406,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":162088340,"peak_bytes":341225180,"per_set_bytes":10130521,"edges":7102129,"dropped_edges":900176,"cross_edges":6657999,"locate_calls":0,"answers":{"exists":true,"count_w2":294165,"distinct_w5":440420,"bag_w6":15207122,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":60.905,"fetch_us":2870.762,"bind_us":912.595,"route_us":29956.594,"prep_us":2448.053,"fold_total_us":3712.930,"fold_per_set_us":1856.465,"compose_us":0.493,"disjoint_check_us":117.854,"continuation_us":19486.750,"rebuild_us":35561.738,"rest_given_ids_us":39962.332,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8114612,"peak_bytes":21741428,"per_set_bytes":4057306,"edges":349173,"dropped_edges":50811,"cross_edges":3596,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":2,"partition":"scatter","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":144.741,"fetch_us":2713.574,"bind_us":919.875,"route_us":42124.019,"prep_us":2459.842,"fold_total_us":3631.868,"fold_per_set_us":1815.934,"compose_us":0.451,"disjoint_check_us":994.277,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":51994.370,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8114612,"peak_bytes":21886440,"per_set_bytes":4057306,"edges":349173,"dropped_edges":50811,"cross_edges":175000,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":56.968,"fetch_us":3043.499,"bind_us":904.232,"route_us":32310.512,"prep_us":3198.703,"fold_total_us":4625.697,"fold_per_set_us":1156.424,"compose_us":1.528,"disjoint_check_us":187.502,"continuation_us":16093.726,"rebuild_us":51256.725,"rest_given_ids_us":44141.139,"fold_gate":"FAILED-GATE","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8139892,"peak_bytes":20277412,"per_set_bytes":2034973,"edges":349173,"dropped_edges":50811,"cross_edges":9377,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":4,"partition":"scatter","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":146.252,"fetch_us":3066.558,"bind_us":898.519,"route_us":59080.628,"prep_us":2521.248,"fold_total_us":3704.076,"fold_per_set_us":926.019,"compose_us":0.951,"disjoint_check_us":953.097,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":69418.232,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8139884,"peak_bytes":21728572,"per_set_bytes":2034971,"edges":349173,"dropped_edges":50811,"cross_edges":262087,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"contig","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":62.836,"fetch_us":2779.706,"bind_us":884.207,"route_us":35880.740,"prep_us":2449.430,"fold_total_us":3662.049,"fold_per_set_us":457.756,"compose_us":2.395,"disjoint_check_us":144.077,"continuation_us":7963.905,"rebuild_us":50665.568,"rest_given_ids_us":45721.363,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8212412,"peak_bytes":17141040,"per_set_bytes":1026551,"edges":349173,"dropped_edges":50811,"cross_edges":20175,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true},{"sel_requested":50000,"sel_achieved":50000,"d":8,"partition":"scatter","discover_scan_us":2234.359,"discover_extract_us":156.166,"partition_us":145.709,"fetch_us":2835.561,"bind_us":898.657,"route_us":85488.339,"prep_us":2380.831,"fold_total_us":3744.386,"fold_per_set_us":468.048,"compose_us":2.320,"disjoint_check_us":1235.987,"continuation_us":null,"rebuild_us":null,"rest_given_ids_us":95495.803,"fold_gate":"","warm_alloc_calls":0,"warm_alloc_bytes":0,"retained_bytes":8212420,"peak_bytes":17541644,"per_set_bytes":1026552,"edges":349173,"dropped_edges":50811,"cross_edges":305719,"locate_calls":0,"answers":{"exists":true,"count_w2":14773,"distinct_w5":22073,"bag_w6":737052,"sum_of_per_set_distinct_is_wrong":true},"oracle_ok":true}],"d_slopes":{"contig":{"partition":{"slope_us_per_set":0.710,"ratio_dmax_over_d1":1.120},"fetch":{"slope_us_per_set":19.495,"ratio_dmax_over_d1":1.094},"bind":{"slope_us_per_set":-1.586,"ratio_dmax_over_d1":1.000},"route":{"slope_us_per_set":925.007,"ratio_dmax_over_d1":1.210},"prep":{"slope_us_per_set":18.413,"ratio_dmax_over_d1":1.053},"fold_total":{"slope_us_per_set":10.758,"ratio_dmax_over_d1":1.016},"compose":{"slope_us_per_set":0.294,"ratio_dmax_over_d1":5.322},"rest_given_ids":{"slope_us_per_set":973.093,"ratio_dmax_over_d1":1.170}},"scatter":{"partition":{"slope_us_per_set":8.635,"ratio_dmax_over_d1":2.597},"fetch":{"slope_us_per_set":37.521,"ratio_dmax_over_d1":1.116},"bind":{"slope_us_per_set":0.057,"ratio_dmax_over_d1":1.016},"route":{"slope_us_per_set":7750.462,"ratio_dmax_over_d1":2.883},"prep":{"slope_us_per_set":1.664,"ratio_dmax_over_d1":1.024},"fold_total":{"slope_us_per_set":19.849,"ratio_dmax_over_d1":1.039},"compose":{"slope_us_per_set":0.281,"ratio_dmax_over_d1":5.156},"rest_given_ids":{"slope_us_per_set":7818.469,"ratio_dmax_over_d1":2.444}}},"refusals":{"too_many":{"fires":true,"control_passes":true,"detail":"build(65537)->TooMany true; extend(full set)->TooMany true; build(65536) ok true"},"id_in_two_sets":{"fires":true,"control_passes":true,"detail":"union_check overlapping=Err(58320); naive composed COUNT Some(1791)/DISTINCT 2611/BAG Some(89960) vs oracle 1495/2195/74382; disjoint control union_check=Ok(5000) and composed==oracle"},"checked_sum_overflow":{"fires":true,"control_passes":true,"detail":"checked_sum([MAX,1])=None; checked_sum([1,2,3])=Some(6)"},"stale_binding":{"fires":true,"control_passes":true,"detail":"guard after replace_tile=Err(Stale(0)); arm-C index refuses new frame true; guard before replace ok true; guard disabled lets it through true"}},"extend_vs_rebuild":{"extend_us":723.097,"rebuild_us":984.791,"added":10000,"base":50000,"coords_kept_old_frame_stale":true}} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json b/.claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json deleted file mode 100644 index 3b07f8312..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/compose/scaling.json +++ /dev/null @@ -1 +0,0 @@ -{"n_lo":1000000,"n_hi":10000000,"cases":[{"sel":1000,"d":1,"partition":"contig","stages":{"discover":{"ratio":13.937,"corpus_bound":false},"partition":{"ratio":1.385,"corpus_bound":false},"fetch":{"ratio":0.641,"corpus_bound":false},"bind":{"ratio":0.842,"corpus_bound":false},"route":{"ratio":0.704,"corpus_bound":false},"prep":{"ratio":0.640,"corpus_bound":false},"fold_total":{"ratio":0.913,"corpus_bound":false},"fold_per_set":{"ratio":0.913,"corpus_bound":false},"compose":{"ratio":0.713,"corpus_bound":false},"rest_given_ids":{"ratio":0.715,"corpus_bound":false}}},{"sel":50000,"d":1,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.989,"corpus_bound":false},"fetch":{"ratio":0.355,"corpus_bound":false},"bind":{"ratio":0.934,"corpus_bound":false},"route":{"ratio":0.826,"corpus_bound":false},"prep":{"ratio":0.938,"corpus_bound":false},"fold_total":{"ratio":0.997,"corpus_bound":false},"fold_per_set":{"ratio":0.997,"corpus_bound":false},"compose":{"ratio":1.737,"corpus_bound":false},"rest_given_ids":{"ratio":0.779,"corpus_bound":false}}},{"sel":200000,"d":4,"partition":"contig","stages":{"discover":{"ratio":3.507,"corpus_bound":false},"partition":{"ratio":1.047,"corpus_bound":false},"fetch":{"ratio":1.740,"corpus_bound":true},"bind":{"ratio":0.973,"corpus_bound":false},"route":{"ratio":0.909,"corpus_bound":false},"prep":{"ratio":0.736,"corpus_bound":false},"fold_total":{"ratio":0.961,"corpus_bound":false},"fold_per_set":{"ratio":0.961,"corpus_bound":false},"compose":{"ratio":1.060,"corpus_bound":false},"continuation":{"ratio":0.983,"corpus_bound":false},"rebuild":{"ratio":1.013,"corpus_bound":false},"rest_given_ids":{"ratio":0.958,"corpus_bound":false}}},{"sel":200000,"d":4,"partition":"scatter","stages":{"discover":{"ratio":3.507,"corpus_bound":false},"partition":{"ratio":1.216,"corpus_bound":false},"fetch":{"ratio":1.488,"corpus_bound":false},"bind":{"ratio":1.000,"corpus_bound":false},"route":{"ratio":1.179,"corpus_bound":false},"prep":{"ratio":1.056,"corpus_bound":false},"fold_total":{"ratio":0.888,"corpus_bound":false},"fold_per_set":{"ratio":0.888,"corpus_bound":false},"compose":{"ratio":0.786,"corpus_bound":false},"rest_given_ids":{"ratio":1.171,"corpus_bound":false}}},{"sel":50000,"d":2,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":1.075,"corpus_bound":false},"fetch":{"ratio":1.038,"corpus_bound":false},"bind":{"ratio":0.978,"corpus_bound":false},"route":{"ratio":1.005,"corpus_bound":false},"prep":{"ratio":0.997,"corpus_bound":false},"fold_total":{"ratio":0.978,"corpus_bound":false},"fold_per_set":{"ratio":0.978,"corpus_bound":false},"compose":{"ratio":1.336,"corpus_bound":false},"continuation":{"ratio":0.979,"corpus_bound":false},"rebuild":{"ratio":0.989,"corpus_bound":false},"rest_given_ids":{"ratio":1.004,"corpus_bound":false}}},{"sel":50000,"d":2,"partition":"scatter","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.783,"corpus_bound":false},"fetch":{"ratio":0.688,"corpus_bound":false},"bind":{"ratio":0.897,"corpus_bound":false},"route":{"ratio":0.822,"corpus_bound":false},"prep":{"ratio":0.865,"corpus_bound":false},"fold_total":{"ratio":1.000,"corpus_bound":false},"fold_per_set":{"ratio":1.000,"corpus_bound":false},"compose":{"ratio":1.054,"corpus_bound":false},"rest_given_ids":{"ratio":0.827,"corpus_bound":false}}},{"sel":50000,"d":4,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.973,"corpus_bound":false},"fetch":{"ratio":0.978,"corpus_bound":false},"bind":{"ratio":1.008,"corpus_bound":false},"route":{"ratio":1.006,"corpus_bound":false},"prep":{"ratio":1.259,"corpus_bound":false},"fold_total":{"ratio":1.256,"corpus_bound":false},"fold_per_set":{"ratio":1.256,"corpus_bound":false},"compose":{"ratio":1.650,"corpus_bound":false},"continuation":{"ratio":1.176,"corpus_bound":false},"rebuild":{"ratio":1.131,"corpus_bound":false},"rest_given_ids":{"ratio":1.041,"corpus_bound":false}}},{"sel":50000,"d":4,"partition":"scatter","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":1.026,"corpus_bound":false},"fetch":{"ratio":1.037,"corpus_bound":false},"bind":{"ratio":1.007,"corpus_bound":false},"route":{"ratio":1.016,"corpus_bound":false},"prep":{"ratio":1.021,"corpus_bound":false},"fold_total":{"ratio":1.019,"corpus_bound":false},"fold_per_set":{"ratio":1.019,"corpus_bound":false},"compose":{"ratio":1.017,"corpus_bound":false},"rest_given_ids":{"ratio":1.017,"corpus_bound":false}}},{"sel":50000,"d":8,"partition":"contig","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":1.077,"corpus_bound":false},"fetch":{"ratio":0.997,"corpus_bound":false},"bind":{"ratio":1.001,"corpus_bound":false},"route":{"ratio":1.023,"corpus_bound":false},"prep":{"ratio":1.019,"corpus_bound":false},"fold_total":{"ratio":1.012,"corpus_bound":false},"fold_per_set":{"ratio":1.012,"corpus_bound":false},"compose":{"ratio":1.029,"corpus_bound":false},"continuation":{"ratio":1.026,"corpus_bound":false},"rebuild":{"ratio":1.091,"corpus_bound":false},"rest_given_ids":{"ratio":1.020,"corpus_bound":false}}},{"sel":50000,"d":8,"partition":"scatter","stages":{"discover":{"ratio":8.428,"corpus_bound":false},"partition":{"ratio":0.854,"corpus_bound":false},"fetch":{"ratio":0.964,"corpus_bound":false},"bind":{"ratio":1.010,"corpus_bound":false},"route":{"ratio":0.940,"corpus_bound":false},"prep":{"ratio":0.963,"corpus_bound":false},"fold_total":{"ratio":1.003,"corpus_bound":false},"fold_per_set":{"ratio":1.003,"corpus_bound":false},"compose":{"ratio":1.056,"corpus_bound":false},"rest_given_ids":{"ratio":0.944,"corpus_bound":false}}}],"corpus_bound":["fetch@sel=200000,D=4,contig"]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log deleted file mode 100644 index ed9670dcd..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/corrections.log +++ /dev/null @@ -1,98 +0,0 @@ -NO-EXISTING-KERNEL: a DIRECT ordered u8 compare over a packed u32 lane. ndarray::simd lt_u8_to_mask/ge_u8_to_mask read contiguous &[u8] (would compare all 4 fields per lane, interleaved); Quack Cmp has EqU32/NeU32/MatchU32 and signed I32 orderings only. Arm kernel_ternary_or composes existing words (ternary_match_u32_to_mask, mask_or_assign, mask_not); nothing new is implemented. -== n = 1000000 sel = 20000 (in-memory) == - fixture built in 8419.610us (COLD): 20000 ids, 159944 edges -correction 1: route once vs per query (sel 20000) - [in-memory] route1/part prepare (P) med 162177.266us COLD (reported, not gate) p10 154647.238us p90 178524.931us alloc 10025440B/22calls COLD - [in-memory] route1/part guard+where A+where B (w) med 3.628us p10 3.437us p90 4.107us alloc 0B/0calls - [in-memory] route1/part fold w2_and (f) med 461.059us p10 447.229us p90 485.036us alloc 0B/0calls - [in-memory] route1_break_even_Q = 1.000 (Q >= 2) - [in-memory] route1 per_query Q=1 (per query) med 163961.826us COLD (reported, not gate) p10 161042.026us p90 169573.810us alloc 0B/0calls includes prepare - [in-memory] route1 reuse Q=1 (per query) med 158198.132us COLD (reported, not gate) p10 154608.574us p90 165699.276us alloc 0B/0calls includes 1 prepare - [in-memory] route1 reuse warm Q=1 (per query) med 493.792us p10 488.223us p90 502.973us alloc 0B/0calls no prepare - [oracle ok ] route1 Q=1: per_query == reuse == oracle (oracle every 1th query) - [in-memory] route1 per_query Q=16 (per query) med 168808.956us COLD (reported, not gate) p10 165603.115us p90 170437.212us alloc 0B/0calls includes prepare - [in-memory] route1 reuse Q=16 (per query) med 10420.953us COLD (reported, not gate) p10 10060.888us p90 11776.117us alloc 0B/0calls includes 1 prepare - [in-memory] route1 reuse warm Q=16 (per query) med 385.223us p10 375.793us p90 388.868us alloc 0B/0calls no prepare - [oracle ok ] route1 Q=16: per_query == reuse == oracle (oracle every 1th query) - [in-memory] route1 per_query Q=256 (per query) med 172018.005us COLD (reported, not gate) p10 172018.005us p90 172018.005us alloc 0B/0calls includes prepare - [in-memory] route1 reuse Q=256 (per query) med 1011.869us COLD (reported, not gate) p10 1011.869us p90 1011.869us alloc 0B/0calls includes 1 prepare - [in-memory] route1 reuse warm Q=256 (per query) med 381.206us p10 379.170us p90 394.978us alloc 0B/0calls no prepare - [oracle ok ] route1 Q=256: per_query == reuse == oracle (oracle every 16th query) - [oracle ok ] route1 stale: guard accepts the fresh binding - [oracle ok ] route1 stale: guard REFUSES the binding after replace_tile - [oracle ok ] route1 stale: disabled guard would NOT refuse (guard is load-bearing) - [oracle ok ] route1 stale: a fresh prepare after replace gives the oracle answer - [in-memory] route1_stale_fold_answer_unguarded = 896 (reported, equals fresh 896: true) -correction 2: ndarray kernels vs hand-written packed u8 compare (n 1000000) - [in-memory] kernel2 handwritten f0 < 64 med 289.017us p10 279.143us p90 310.816us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f0 < 64 med 172.174us p10 147.163us p90 261.068us alloc 0B/0calls 1 ternary passes - [oracle ok ] kernel2 f0 < 64: masks bit-identical, popcount hand 250586 kernel 250586 oracle 250586 - [in-memory] kernel2 handwritten f2 >= 170 med 291.321us p10 283.516us p90 326.333us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f2 >= 170 med 649.049us p10 625.306us p90 851.022us alloc 0B/0calls 4 ternary passes - [oracle ok ] kernel2 f2 >= 170: masks bit-identical, popcount hand 335748 kernel 335748 oracle 335748 - [in-memory] kernel2 handwritten f3 < 255 med 335.876us p10 284.102us p90 398.478us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f3 < 255 med 1299.575us FAILED-GATE p10 1263.328us p90 1690.789us alloc 0B/0calls 8 ternary passes - [oracle ok ] kernel2 f3 < 255: masks bit-identical, popcount hand 996074 kernel 996074 oracle 996074 - [in-memory] kernel2 handwritten f1 >= 64 med 311.835us p10 295.437us p90 440.211us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f1 >= 64 med 161.284us p10 154.012us p90 182.514us alloc 0B/0calls 1 ternary passes - [oracle ok ] kernel2 f1 >= 64: masks bit-identical, popcount hand 749508 kernel 749508 oracle 749508 -correction 3: borrowed lane reads vs gather_lane copies (sel 20000) - [in-memory] borrow3 copy gather_lane lt=100 med 43.127us p10 41.025us p90 74.082us alloc 80896B/1calls bytes_copied=80896 - [in-memory] borrow3 borrowed in-place lt=100 med 43.186us p10 35.372us p90 58.332us alloc 0B/0calls bytes_copied=0 - [oracle ok ] borrow3 lt=100: masks identical, popcount copy 2001 borrowed 2001 oracle 2001 - [in-memory] borrow3 copy gather_lane lt=500 med 60.665us p10 40.288us p90 97.912us alloc 80896B/1calls bytes_copied=80896 - [in-memory] borrow3 borrowed in-place lt=500 med 148.899us p10 141.133us p90 177.940us alloc 0B/0calls bytes_copied=0 - [oracle ok ] borrow3 lt=500: masks identical, popcount copy 10054 borrowed 10054 oracle 10054 - [in-memory] borrow3 copy gather_lane lt=900 med 44.736us p10 42.908us p90 66.364us alloc 80896B/1calls bytes_copied=80896 - [in-memory] borrow3 borrowed in-place lt=900 med 59.052us p10 52.939us p90 74.578us alloc 0B/0calls bytes_copied=0 - [oracle ok ] borrow3 lt=900: masks identical, popcount copy 18075 borrowed 18075 oracle 18075 - failed gates (reported, not exit code): 1 -== n = 10000000 sel = 20000 (in-memory) == - fixture built in 69193.310us (COLD): 20000 ids, 159944 edges -correction 1: route once vs per query (sel 20000) - [in-memory] route1/part prepare (P) med 164812.948us COLD (reported, not gate) p10 160257.855us p90 175733.368us alloc 10026116B/22calls COLD - [in-memory] route1/part guard+where A+where B (w) med 4.045us p10 3.668us p90 4.149us alloc 0B/0calls - [in-memory] route1/part fold w2_and (f) med 565.972us p10 467.822us p90 624.414us alloc 0B/0calls - [in-memory] route1_break_even_Q = 1.000 (Q >= 2) - [in-memory] route1 per_query Q=1 (per query) med 165895.533us COLD (reported, not gate) p10 163981.548us p90 172999.743us alloc 0B/0calls includes prepare - [in-memory] route1 reuse Q=1 (per query) med 173032.943us COLD (reported, not gate) p10 166204.320us p90 181124.214us alloc 0B/0calls includes 1 prepare - [in-memory] route1 reuse warm Q=1 (per query) med 487.184us p10 484.915us p90 501.791us alloc 0B/0calls no prepare - [oracle ok ] route1 Q=1: per_query == reuse == oracle (oracle every 1th query) - [in-memory] route1 per_query Q=16 (per query) med 172381.154us COLD (reported, not gate) p10 168887.209us p90 172506.918us alloc 0B/0calls includes prepare - [in-memory] route1 reuse Q=16 (per query) med 10031.140us COLD (reported, not gate) p10 9926.080us p90 12004.005us alloc 0B/0calls includes 1 prepare - [in-memory] route1 reuse warm Q=16 (per query) med 377.603us p10 368.040us p90 407.572us alloc 0B/0calls no prepare - [oracle ok ] route1 Q=16: per_query == reuse == oracle (oracle every 1th query) - [in-memory] route1 per_query Q=256 (per query) med 168183.626us COLD (reported, not gate) p10 168183.626us p90 168183.626us alloc 0B/0calls includes prepare - [in-memory] route1 reuse Q=256 (per query) med 1100.291us COLD (reported, not gate) p10 1100.291us p90 1100.291us alloc 0B/0calls includes 1 prepare - [in-memory] route1 reuse warm Q=256 (per query) med 378.526us p10 371.185us p90 411.039us alloc 0B/0calls no prepare - [oracle ok ] route1 Q=256: per_query == reuse == oracle (oracle every 16th query) - [oracle ok ] route1 stale: guard accepts the fresh binding - [oracle ok ] route1 stale: guard REFUSES the binding after replace_tile - [oracle ok ] route1 stale: disabled guard would NOT refuse (guard is load-bearing) - [oracle ok ] route1 stale: a fresh prepare after replace gives the oracle answer - [in-memory] route1_stale_fold_answer_unguarded = 832 (reported, equals fresh 832: true) -correction 2: ndarray kernels vs hand-written packed u8 compare (n 10000000) - [in-memory] kernel2 handwritten f0 < 64 med 3219.154us FAILED-GATE p10 3188.283us p90 7444.305us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f0 < 64 med 1948.932us FAILED-GATE p10 1916.467us p90 2081.143us alloc 0B/0calls 1 ternary passes - [oracle ok ] kernel2 f0 < 64: masks bit-identical, popcount hand 2500921 kernel 2500921 oracle 2500921 - [in-memory] kernel2 handwritten f2 >= 170 med 3229.769us FAILED-GATE p10 3139.084us p90 3312.597us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f2 >= 170 med 8423.505us FAILED-GATE p10 7987.559us p90 9819.324us alloc 0B/0calls 4 ternary passes - [oracle ok ] kernel2 f2 >= 170: masks bit-identical, popcount hand 3361973 kernel 3361973 oracle 3361973 - [in-memory] kernel2 handwritten f3 < 255 med 3213.734us FAILED-GATE p10 3158.964us p90 3352.926us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f3 < 255 med 16383.946us FAILED-GATE p10 15234.294us p90 17110.579us alloc 0B/0calls 8 ternary passes - [oracle ok ] kernel2 f3 < 255: masks bit-identical, popcount hand 9960816 kernel 9960816 oracle 9960816 - [in-memory] kernel2 handwritten f1 >= 64 med 3256.543us FAILED-GATE p10 3169.027us p90 3434.967us alloc 0B/0calls project.rs fill_lane - [in-memory] kernel2 kernel_ternary_or f1 >= 64 med 2095.654us FAILED-GATE p10 2065.148us p90 2178.108us alloc 0B/0calls 1 ternary passes - [oracle ok ] kernel2 f1 >= 64: masks bit-identical, popcount hand 7499717 kernel 7499717 oracle 7499717 -correction 3: borrowed lane reads vs gather_lane copies (sel 20000) - [in-memory] borrow3 copy gather_lane lt=100 med 122.492us p10 109.253us p90 176.445us alloc 80896B/1calls bytes_copied=80896 - [in-memory] borrow3 borrowed in-place lt=100 med 120.542us p10 108.969us p90 148.768us alloc 0B/0calls bytes_copied=0 - [oracle ok ] borrow3 lt=100: masks identical, popcount copy 2028 borrowed 2028 oracle 2028 - [in-memory] borrow3 copy gather_lane lt=500 med 111.256us p10 109.034us p90 130.695us alloc 80896B/1calls bytes_copied=80896 - [in-memory] borrow3 borrowed in-place lt=500 med 261.073us p10 242.948us p90 303.780us alloc 0B/0calls bytes_copied=0 - [oracle ok ] borrow3 lt=500: masks identical, popcount copy 9986 borrowed 9986 oracle 9986 - [in-memory] borrow3 copy gather_lane lt=900 med 111.261us p10 109.012us p90 127.780us alloc 80896B/1calls bytes_copied=80896 - [in-memory] borrow3 borrowed in-place lt=900 med 110.038us p10 101.207us p90 135.430us alloc 0B/0calls bytes_copied=0 - [oracle ok ] borrow3 lt=900: masks identical, popcount copy 18070 borrowed 18070 oracle 18070 - failed gates (reported, not exit code): 8 -CORRECTIONS ALL ANSWERS MATCH THE ORACLE diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json deleted file mode 100644 index ff5d0a054..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n1000000/corrections.json +++ /dev/null @@ -1,30 +0,0 @@ -{"lab":true,"label":"in-memory","n":1000000,"sel":20000,"ok":true,"failed_gates":1,"no_existing_kernel":"direct ordered u8 compare over a packed u32 lane","rows":[ -{"label":"in-memory","group":"route1/part","name":"prepare (P)","median_us":162177.266,"p10_us":154647.238,"p90_us":178524.931,"cold":true,"failed_gate":false,"alloc_bytes":10025440,"alloc_calls":22,"note":"COLD"}, -{"label":"in-memory","group":"route1/part","name":"guard+where A+where B (w)","median_us":3.628,"p10_us":3.437,"p90_us":4.107,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, -{"label":"in-memory","group":"route1/part","name":"fold w2_and (f)","median_us":461.059,"p10_us":447.229,"p90_us":485.036,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, -{"label":"in-memory","note":"route1_break_even_Q","value":"1.000 (Q >= 2)"}, -{"label":"in-memory","group":"route1","name":"per_query Q=1 (per query)","median_us":163961.826,"p10_us":161042.026,"p90_us":169573.810,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, -{"label":"in-memory","group":"route1","name":"reuse Q=1 (per query)","median_us":158198.132,"p10_us":154608.574,"p90_us":165699.276,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, -{"label":"in-memory","group":"route1","name":"reuse warm Q=1 (per query)","median_us":493.792,"p10_us":488.223,"p90_us":502.973,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, -{"label":"in-memory","group":"route1","name":"per_query Q=16 (per query)","median_us":168808.956,"p10_us":165603.115,"p90_us":170437.212,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, -{"label":"in-memory","group":"route1","name":"reuse Q=16 (per query)","median_us":10420.953,"p10_us":10060.888,"p90_us":11776.117,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, -{"label":"in-memory","group":"route1","name":"reuse warm Q=16 (per query)","median_us":385.223,"p10_us":375.793,"p90_us":388.868,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, -{"label":"in-memory","group":"route1","name":"per_query Q=256 (per query)","median_us":172018.005,"p10_us":172018.005,"p90_us":172018.005,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, -{"label":"in-memory","group":"route1","name":"reuse Q=256 (per query)","median_us":1011.869,"p10_us":1011.869,"p90_us":1011.869,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, -{"label":"in-memory","group":"route1","name":"reuse warm Q=256 (per query)","median_us":381.206,"p10_us":379.170,"p90_us":394.978,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, -{"label":"in-memory","note":"route1_stale_fold_answer_unguarded","value":"896 (reported, equals fresh 896: true)"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f0 < 64","median_us":289.017,"p10_us":279.143,"p90_us":310.816,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f0 < 64","median_us":172.174,"p10_us":147.163,"p90_us":261.068,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f2 >= 170","median_us":291.321,"p10_us":283.516,"p90_us":326.333,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f2 >= 170","median_us":649.049,"p10_us":625.306,"p90_us":851.022,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"4 ternary passes"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f3 < 255","median_us":335.876,"p10_us":284.102,"p90_us":398.478,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f3 < 255","median_us":1299.575,"p10_us":1263.328,"p90_us":1690.789,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"8 ternary passes"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f1 >= 64","median_us":311.835,"p10_us":295.437,"p90_us":440.211,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f1 >= 64","median_us":161.284,"p10_us":154.012,"p90_us":182.514,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, -{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=100","median_us":43.127,"p10_us":41.025,"p90_us":74.082,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, -{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=100","median_us":43.186,"p10_us":35.372,"p90_us":58.332,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, -{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=500","median_us":60.665,"p10_us":40.288,"p90_us":97.912,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, -{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=500","median_us":148.899,"p10_us":141.133,"p90_us":177.940,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, -{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=900","median_us":44.736,"p10_us":42.908,"p90_us":66.364,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, -{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=900","median_us":59.052,"p10_us":52.939,"p90_us":74.578,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"} -]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json b/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json deleted file mode 100644 index b7ab6e6c9..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/corrections/n10000000/corrections.json +++ /dev/null @@ -1,30 +0,0 @@ -{"lab":true,"label":"in-memory","n":10000000,"sel":20000,"ok":true,"failed_gates":8,"no_existing_kernel":"direct ordered u8 compare over a packed u32 lane","rows":[ -{"label":"in-memory","group":"route1/part","name":"prepare (P)","median_us":164812.948,"p10_us":160257.855,"p90_us":175733.368,"cold":true,"failed_gate":false,"alloc_bytes":10026116,"alloc_calls":22,"note":"COLD"}, -{"label":"in-memory","group":"route1/part","name":"guard+where A+where B (w)","median_us":4.045,"p10_us":3.668,"p90_us":4.149,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, -{"label":"in-memory","group":"route1/part","name":"fold w2_and (f)","median_us":565.972,"p10_us":467.822,"p90_us":624.414,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0}, -{"label":"in-memory","note":"route1_break_even_Q","value":"1.000 (Q >= 2)"}, -{"label":"in-memory","group":"route1","name":"per_query Q=1 (per query)","median_us":165895.533,"p10_us":163981.548,"p90_us":172999.743,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, -{"label":"in-memory","group":"route1","name":"reuse Q=1 (per query)","median_us":173032.943,"p10_us":166204.320,"p90_us":181124.214,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, -{"label":"in-memory","group":"route1","name":"reuse warm Q=1 (per query)","median_us":487.184,"p10_us":484.915,"p90_us":501.791,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, -{"label":"in-memory","group":"route1","name":"per_query Q=16 (per query)","median_us":172381.154,"p10_us":168887.209,"p90_us":172506.918,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, -{"label":"in-memory","group":"route1","name":"reuse Q=16 (per query)","median_us":10031.140,"p10_us":9926.080,"p90_us":12004.005,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, -{"label":"in-memory","group":"route1","name":"reuse warm Q=16 (per query)","median_us":377.603,"p10_us":368.040,"p90_us":407.572,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, -{"label":"in-memory","group":"route1","name":"per_query Q=256 (per query)","median_us":168183.626,"p10_us":168183.626,"p90_us":168183.626,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes prepare"}, -{"label":"in-memory","group":"route1","name":"reuse Q=256 (per query)","median_us":1100.291,"p10_us":1100.291,"p90_us":1100.291,"cold":true,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"includes 1 prepare"}, -{"label":"in-memory","group":"route1","name":"reuse warm Q=256 (per query)","median_us":378.526,"p10_us":371.185,"p90_us":411.039,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"no prepare"}, -{"label":"in-memory","note":"route1_stale_fold_answer_unguarded","value":"832 (reported, equals fresh 832: true)"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f0 < 64","median_us":3219.154,"p10_us":3188.283,"p90_us":7444.305,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f0 < 64","median_us":1948.932,"p10_us":1916.467,"p90_us":2081.143,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f2 >= 170","median_us":3229.769,"p10_us":3139.084,"p90_us":3312.597,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f2 >= 170","median_us":8423.505,"p10_us":7987.559,"p90_us":9819.324,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"4 ternary passes"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f3 < 255","median_us":3213.734,"p10_us":3158.964,"p90_us":3352.926,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f3 < 255","median_us":16383.946,"p10_us":15234.294,"p90_us":17110.579,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"8 ternary passes"}, -{"label":"in-memory","group":"kernel2","name":"handwritten f1 >= 64","median_us":3256.543,"p10_us":3169.027,"p90_us":3434.967,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"project.rs fill_lane"}, -{"label":"in-memory","group":"kernel2","name":"kernel_ternary_or f1 >= 64","median_us":2095.654,"p10_us":2065.148,"p90_us":2178.108,"cold":false,"failed_gate":true,"alloc_bytes":0,"alloc_calls":0,"note":"1 ternary passes"}, -{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=100","median_us":122.492,"p10_us":109.253,"p90_us":176.445,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, -{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=100","median_us":120.542,"p10_us":108.969,"p90_us":148.768,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, -{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=500","median_us":111.256,"p10_us":109.034,"p90_us":130.695,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, -{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=500","median_us":261.073,"p10_us":242.948,"p90_us":303.780,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"}, -{"label":"in-memory","group":"borrow3","name":"copy gather_lane lt=900","median_us":111.261,"p10_us":109.012,"p90_us":127.780,"cold":false,"failed_gate":false,"alloc_bytes":80896,"alloc_calls":1,"note":"bytes_copied=80896"}, -{"label":"in-memory","group":"borrow3","name":"borrowed in-place lt=900","median_us":110.038,"p10_us":101.207,"p90_us":135.430,"cold":false,"failed_gate":false,"alloc_bytes":0,"alloc_calls":0,"note":"bytes_copied=0"} -]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log b/.claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log deleted file mode 100644 index 4c12ccd7e..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/falsify_p1.log +++ /dev/null @@ -1,39 +0,0 @@ -# fixture: P=1000 ids Q=400 ids edges=5688 P-source edges=4056 P->Q edges=339 -F1 PASS 1400 ids x 3 arms G->L->G and L->G->L, mismatches=0 -F2 PASS 8112 endpoints: A==B true A==C true; 339 endpoints are Q ids (Unmapped in P, same refusal in all arms) -F3 PASS A calls=8112 (2*edges=8112, map lookups 32448) B calls=1236 (distinct=1236, map lookups 4944) C query calls=0 (map lookups 0, build lookups 0) -F4 PASS A=Err(Ambiguous) B=4294967294 C=Err(Ambiguous) (an unrelated id still agrees: true) -F5 PASS A=Err(Unmapped) B=4294967295 C=Err(Unmapped) -F6 PASS A=Err(Read(Stale(ForeignFrame))) C=Err(StaleIndex) -F7 PASS under f1: A old true C old true; C(f1) asked with f2 -> Err(StaleIndex); C rebuilt==A under f2 true; 256 ids moved -F8 PASS tiles changed=2 extends=true digest changed=true (a digest guard would refuse) generations same=true old coords kept=true W2 old=336 new-restricted=336 old binding is stale to the frame guard=true -F9 PASS oracle W2=336 fresh f2 binding=336 reused f1 binding without the check=327 (WRONG: true) guarded -> Err(Stale(0)) C(f1) with f2 -> Err(StaleIndex) -F10 PASS old frame Ok(512); new frame with the reduced tile list Err(Unmapped) (C Err(Unmapped)); new frame with the old list Err(Read(NoSuchTile(2))); old frame again Ok(512) -F11 PASS W2 336 -> 335 (oracle 335) after the effective deletion; unrelated deletion leaves W2 335 (all workloads == oracle: true); map lookups during folds+updates: 0; frame still current true -F12 PASS 339 P->Q edges, B held in Q coordinates: W2=336 oracle=336; over cross edges only: DR-decoded 59 oracle 59, coordinate coincidence 46 (WRONG) -F13 PASS id 0x55bdef6 is coordinate 10 in one set and 3 in the other (both resolve back); A selection: 1000 ids, DR-aligned equality true; bitwise coincidence equality false (WRONG) -F14 PASS 64 reuses (B parameter changed each time, only the WHERE re-run) vs 64 fresh bindings: 0 differ -F15a PASS M1 and M2, each with its own permit, admit the SAME selection (same mask address, same fold answer) -F15b PASS M2 with only M1's permit -> Err(NotPermitted) -F15c PASS unbound class -> Err(Bind(UnknownClass(2131427583))); other bound class -> Err(ClassMismatch { selection: 2131427329, asked: 2131427330 }) -F15d PASS stale sig rev -> Err(Bind(SignatureRevisionMismatch { class: 2131427329, method: MethodId(1), bound: SigRev(1), asked: SigRev(2) })) -F15e PASS another scope -> Err(Scope) -F15f PASS stale frame after advance -> Err(StaleFrame) -F15g PASS mask bit-identical before/after the presence update; fold 240 -> 239 -F15h PASS admit returns a borrow of the selection's own mask (&[u64] tied to &self): no mask is passed or copied between programs -F15i PASS admit + fold allocated 0 bytes in 0 calls -F16 PASS 9 (arm x params) runs, W2 direct/AND/XOR, W3 csr/front, W4 csr/front/tile, W5, W6 (plain and B) == oracle; sample W2=336 W3=360 W4=691 W5=517 W6=7167 W6b=3574 -F17 PASS W2/W3/W4(csr,front,tile)/W5/W6 folds: allocations []; no tuple vector (folds read masks, offsets and targets only; signatures carry no Vec of tuples) -F18 PASS duplicate check on -> Err(Ambiguous); compiled out -> Ok(0) (a silent wrong coordinate, so F4 fails under --disable dupcheck) -F19 PASS frame check on -> Err(StaleIndex); compiled out -> Ok(0) but the truth under f2 is Some(255) (so F6/F7/F9 fail under --disable framecheck) -F20 PASS guard on -> Err(Stale(0)); compiled out -> Ok(()) and the reused binding answers 327 where the truth is 336 (silent wrong answer, so F9 fails under --disable bindguard) -F21 PASS extend by 200 ids touched 1 tile(s) via MapTable::advance; TileMap::extends=true; old coordinates kept=true; every coordinate == full rebuild true; binding structure equal true; all workloads equal rebuild and oracle true; extend 17.179us vs full rebuild 29.612us (preparation: reported, not gate) -F22 PASS EXISTS/COUNT/DISTINCT/Bag == one domain == oracle for 1, 2, 3 domains (D=1 arm A W2=336 W5=517 W6=7167; D=2 arm B W2=336 W5=517 W6=7167; D=3 arm C W2=336 W5=517 W6=7167); [] -F23 PASS 339 cross-domain edges only: all workloads == oracle true; edge 0x747ea2ea->0xb3619b13 stored as CROSS | (domain 1, coord 497) -F24 PASS x(domain 0)->y(domain 1)->z(domain 2)->w(domain 0): W4 over 3 hops=1 (oracle 1), W3 over 2 hops=1 and 0 with only the first hop; csr, front and tile routes agree -F25 PASS id 0x724c81ec is in selection A and selection B: coordinate Some((0, 2)) under 2 domains, Some((0, 2)) under 3; |A AND B| = 200 = 200 = oracle 200 -F26 PASS disjoint 3 domains: union check Ok(1400); domains overlapping on 300 ids: Err(5620832); duplicate listed in one table -> Err(Ambiguous) -F27 PASS deleted 0x6dd3aee7->0xd24aa499 (domain 0 -> domain 1): W2 336 -> 335 (oracle 335); domain 0 lost one edge, domain 1 untouched; frames unchanged -F28 PASS 1799 cross-domain targets of the old binding all decode to the right ids under the old frames of BOTH domains; 256 coordinates of tile 0 mean other ids under the new frames; the old binding is stale to the guard (Err(Stale(0))) and still answers its own frames (== oracle true) -F29 PASS disjoint domains: EXISTS=OR true; COUNT sum Some(336) = 336; DISTINCT sum of per-domain counts Some(672) is WRONG, exact union 517 = 517; Bag sums Some(7167)/Some(3574) = oracle 7167/3574 (i64 checked, overflow detected true). OVERLAPPING domains evaluated alone: sums COUNT 385 DISTINCT 541 BAG 4600 are WRONG vs oracle 309/450/4834; exact union by global id 309/450 is right -falsify_p1: 0 of 37 checks failed diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json deleted file mode 100644 index 3e455b431..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "label": "Lance-backed LAB", "n": 1000000, "reps": 5, "attest_cold_us": 75034.1, - "owner_gates": ["S-INGRESS", "D4"], - "rows": [ - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":775.5,"resolve":10.1,"route":0.0,"ingress":0.0,"lance":15287.2,"fold":70.6,"total":16602.0,"cold_total":18329.9},"rows_scanned":1000000,"rows_selected":988,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":425.8,"resolve":9.0,"route":0.0,"ingress":82.3,"lance":15348.0,"fold":0.9,"total":16388.7,"cold_total":20954.2},"rows_scanned":1000988,"rows_selected":988,"bytes_read":3797280,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":6.9,"route":331.2,"ingress":49.1,"lance":1631.2,"fold":1.0,"total":2060.2,"cold_total":2342.6},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":1,"us":{"where":0.0,"resolve":7.5,"route":200.9,"ingress":48.3,"lance":1757.4,"fold":1.0,"total":2015.6,"cold_total":2038.9},"rows_scanned":988,"rows_selected":988,"bytes_read":1264896,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":826.8,"resolve":12.0,"route":0.0,"ingress":0.0,"lance":24055.0,"fold":217.5,"total":25877.9,"cold_total":24487.4},"rows_scanned":1000000,"rows_selected":988,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":677.1,"resolve":10.3,"route":0.0,"ingress":95.3,"lance":19736.2,"fold":2.1,"total":21324.2,"cold_total":22525.7},"rows_scanned":1000988,"rows_selected":988,"bytes_read":7591968,"bytes_vs_A_pct":119.9,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":9.9,"route":422.8,"ingress":51.8,"lance":3996.5,"fold":2.5,"total":4506.9,"cold_total":4375.0},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":4,"us":{"where":0.0,"resolve":9.3,"route":262.1,"ingress":49.2,"lance":3941.9,"fold":2.1,"total":4260.7,"cold_total":4106.8},"rows_scanned":988,"rows_selected":988,"bytes_read":5059584,"bytes_vs_A_pct":79.9,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1078.4,"resolve":24.4,"route":0.0,"ingress":0.0,"lance":85207.8,"fold":1076.2,"total":89987.4,"cold_total":88217.1},"rows_scanned":1000000,"rows_selected":988,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":1008.1,"resolve":17.2,"route":0.0,"ingress":116.3,"lance":31616.8,"fold":9.7,"total":33685.0,"cold_total":40532.0},"rows_scanned":1000988,"rows_selected":988,"bytes_read":22770720,"bytes_vs_A_pct":112.2,"row_addr_mask_serialized_bytes":2124,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":14.8,"route":487.3,"ingress":50.3,"lance":12929.9,"fold":7.0,"total":13499.5,"cold_total":13793.8},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000988,"k":16,"us":{"where":0.0,"resolve":14.5,"route":269.2,"ingress":47.2,"lance":12141.3,"fold":6.0,"total":12477.2,"cold_total":12987.5},"rows_scanned":988,"rows_selected":988,"bytes_read":20238336,"bytes_vs_A_pct":99.8,"row_addr_mask_serialized_bytes":2124,"read":"Ranges/988r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":720.2,"resolve":8.6,"route":0.0,"ingress":0.0,"lance":10943.8,"fold":18.0,"total":12060.8,"cold_total":13030.3},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":481.3,"resolve":7.7,"route":0.0,"ingress":51.2,"lance":12993.9,"fold":0.8,"total":13979.4,"cold_total":15039.3},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2388400,"bytes_vs_A_pct":65.4,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":4.4,"route":65.5,"ingress":0.5,"lance":620.1,"fold":0.8,"total":692.1,"cold_total":921.1},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":4.0,"route":69.2,"ingress":0.4,"lance":479.4,"fold":0.8,"total":548.7,"cold_total":754.1},"rows_scanned":1000,"rows_selected":1000,"bytes_read":2592,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":695.8,"resolve":11.1,"route":0.0,"ingress":0.0,"lance":22848.2,"fold":50.8,"total":24377.7,"cold_total":23587.0},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":379.7,"resolve":9.1,"route":0.0,"ingress":51.2,"lance":12077.0,"fold":2.2,"total":12806.5,"cold_total":14258.1},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2396176,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":6.2,"route":66.1,"ingress":0.4,"lance":819.6,"fold":1.9,"total":900.2,"cold_total":1100.8},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.3,"route":68.6,"ingress":0.7,"lance":936.6,"fold":2.4,"total":1013.5,"cold_total":948.9},"rows_scanned":1000,"rows_selected":1000,"bytes_read":10368,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":767.5,"resolve":24.3,"route":0.0,"ingress":0.0,"lance":86771.4,"fold":204.2,"total":90432.6,"cold_total":137650.0},"rows_scanned":1000000,"rows_selected":1000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":557.4,"resolve":15.4,"route":0.0,"ingress":56.3,"lance":14481.3,"fold":7.7,"total":15407.4,"cold_total":18149.4},"rows_scanned":1001000,"rows_selected":1000,"bytes_read":2427280,"bytes_vs_A_pct":10.7,"row_addr_mask_serialized_bytes":2028,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.8,"route":70.5,"ingress":0.8,"lance":1631.3,"fold":7.2,"total":1732.1,"cold_total":1878.4},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":13.9,"route":67.1,"ingress":0.7,"lance":1565.9,"fold":7.0,"total":1669.0,"cold_total":1772.1},"rows_scanned":1000,"rows_selected":1000,"bytes_read":41472,"bytes_vs_A_pct":0.2,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":703.9,"resolve":10.3,"route":0.0,"ingress":0.0,"lance":13626.2,"fold":132.0,"total":15225.8,"cold_total":17714.0},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":890.5,"resolve":9.1,"route":0.0,"ingress":475.0,"lance":20282.0,"fold":1.6,"total":22245.2,"cold_total":22045.6},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":8.2,"route":1327.8,"ingress":588.9,"lance":3850.1,"fold":1.7,"total":5850.1,"cold_total":6840.1},"rows_scanned":10169,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":1,"us":{"where":0.0,"resolve":8.5,"route":1239.2,"ingress":572.7,"lance":3792.1,"fold":56.5,"total":5689.2,"cold_total":5696.2},"rows_scanned":17101,"rows_selected":10169,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":827.5,"resolve":12.7,"route":0.0,"ingress":0.0,"lance":23314.6,"fold":597.6,"total":25351.0,"cold_total":30758.9},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":787.1,"resolve":11.2,"route":0.0,"ingress":470.3,"lance":24529.4,"fold":4.7,"total":26129.3,"cold_total":29798.3},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":9.7,"route":2194.2,"ingress":586.1,"lance":9735.9,"fold":4.8,"total":12723.7,"cold_total":12955.7},"rows_scanned":10169,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":4,"us":{"where":0.0,"resolve":9.9,"route":1747.5,"ingress":537.5,"lance":8738.6,"fold":85.7,"total":11092.3,"cold_total":11858.0},"rows_scanned":17101,"rows_selected":10169,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1059.6,"resolve":26.0,"route":0.0,"ingress":0.0,"lance":89234.3,"fold":2908.8,"total":96456.6,"cold_total":88371.6},"rows_scanned":1000000,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":1065.7,"resolve":25.7,"route":0.0,"ingress":638.8,"lance":57917.9,"fold":27.3,"total":60277.8,"cold_total":60415.3},"rows_scanned":1010169,"rows_selected":10169,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20486,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":19.6,"route":2520.2,"ingress":594.1,"lance":35338.7,"fold":20.9,"total":38425.8,"cold_total":41454.2},"rows_scanned":10169,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20486,"read":"Ranges/9979r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010169,"k":16,"us":{"where":0.0,"resolve":17.7,"route":1990.8,"ingress":566.9,"lance":29934.9,"fold":209.8,"total":32739.9,"cold_total":33573.5},"rows_scanned":17101,"rows_selected":10169,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":34702,"read":"Coalesced/9340r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":637.1,"resolve":8.8,"route":0.0,"ingress":0.0,"lance":11102.5,"fold":26.1,"total":12249.2,"cold_total":12711.1},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":360.5,"resolve":7.0,"route":0.0,"ingress":219.4,"lance":12108.8,"fold":1.5,"total":13056.6,"cold_total":15688.5},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2400064,"bytes_vs_A_pct":65.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":5.4,"route":662.2,"ingress":0.6,"lance":760.6,"fold":1.4,"total":1434.2,"cold_total":1760.9},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":4.5,"route":667.2,"ingress":0.5,"lance":667.4,"fold":1.4,"total":1348.3,"cold_total":1413.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.4,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":413.7,"resolve":12.0,"route":0.0,"ingress":0.0,"lance":23055.1,"fold":88.0,"total":24297.0,"cold_total":25445.7},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":373.1,"resolve":9.4,"route":0.0,"ingress":190.5,"lance":12615.8,"fold":4.6,"total":13615.5,"cold_total":14440.8},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2442832,"bytes_vs_A_pct":32.8,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":8.4,"route":714.1,"ingress":1.0,"lance":1163.8,"fold":4.7,"total":1857.7,"cold_total":1674.0},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":8.4,"route":727.5,"ingress":0.9,"lance":1083.3,"fold":4.6,"total":1796.4,"cold_total":1877.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.8,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":792.5,"resolve":24.4,"route":0.0,"ingress":0.0,"lance":85780.0,"fold":332.8,"total":90868.7,"cold_total":96342.5},"rows_scanned":1000000,"rows_selected":10000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":504.9,"resolve":18.0,"route":0.0,"ingress":201.0,"lance":15453.7,"fold":23.3,"total":16656.8,"cold_total":19032.2},"rows_scanned":1010000,"rows_selected":10000,"bytes_read":2613904,"bytes_vs_A_pct":11.5,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":18.6,"route":717.6,"ingress":0.9,"lance":2092.7,"fold":18.0,"total":2847.7,"cold_total":3340.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":14.1,"route":703.5,"ingress":1.0,"lance":1897.9,"fold":20.3,"total":2650.0,"cold_total":2758.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":1.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":895.3,"resolve":10.8,"route":0.0,"ingress":0.0,"lance":14828.3,"fold":503.6,"total":16723.9,"cold_total":22202.1},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":893.6,"resolve":11.0,"route":0.0,"ingress":3350.0,"lance":35511.6,"fold":9.8,"total":40572.6,"cold_total":42846.9},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":9.5,"route":8955.7,"ingress":4503.0,"lance":21178.4,"fold":10.2,"total":34767.1,"cold_total":33798.0},"rows_scanned":100164,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":1,"us":{"where":0.0,"resolve":11.8,"route":8749.0,"ingress":0.1,"lance":14096.0,"fold":2111.5,"total":25518.9,"cold_total":26466.3},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":789.5,"resolve":14.4,"route":0.0,"ingress":0.0,"lance":25410.7,"fold":2066.2,"total":29431.7,"cold_total":29110.0},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":948.8,"resolve":16.2,"route":0.0,"ingress":3201.2,"lance":67939.2,"fold":75.8,"total":72777.7,"cold_total":85183.6},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":15.7,"route":9532.8,"ingress":4592.7,"lance":54872.0,"fold":65.9,"total":72586.5,"cold_total":72444.7},"rows_scanned":100164,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":4,"us":{"where":0.0,"resolve":16.4,"route":8998.2,"ingress":0.1,"lance":28280.6,"fold":4415.2,"total":42848.3,"cold_total":42226.5},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1036.0,"resolve":28.9,"route":0.0,"ingress":0.0,"lance":88912.5,"fold":9360.9,"total":103204.6,"cold_total":98535.2},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":1091.6,"resolve":27.4,"route":0.0,"ingress":3618.8,"lance":255226.0,"fold":561.1,"total":261225.7,"cold_total":274799.5},"rows_scanned":1100164,"rows_selected":100164,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":126420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":26.8,"route":9135.6,"ingress":4572.4,"lance":222967.6,"fold":576.8,"total":238325.2,"cold_total":233856.1},"rows_scanned":100164,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":126420,"read":"Ranges/91527r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100164,"k":16,"us":{"where":0.0,"resolve":30.8,"route":9148.8,"ingress":0.1,"lance":97943.6,"fold":12481.2,"total":125376.8,"cold_total":119291.8},"rows_scanned":1000000,"rows_selected":100164,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":546.4,"resolve":9.2,"route":0.0,"ingress":0.0,"lance":9413.4,"fold":100.0,"total":10120.2,"cold_total":12557.3},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":414.0,"resolve":7.6,"route":0.0,"ingress":1231.3,"lance":11370.8,"fold":9.5,"total":13508.8,"cold_total":16811.2},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2512816,"bytes_vs_A_pct":68.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":6.5,"route":6996.5,"ingress":1.8,"lance":1547.3,"fold":10.0,"total":8609.0,"cold_total":9072.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":127008,"bytes_vs_A_pct":3.5,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":9.2,"route":6741.1,"ingress":0.1,"lance":11010.7,"fold":1320.5,"total":19462.5,"cold_total":19421.2},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":618.6,"resolve":12.4,"route":0.0,"ingress":0.0,"lance":25138.7,"fold":422.7,"total":27025.7,"cold_total":28441.4},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":455.6,"resolve":11.4,"route":0.0,"ingress":1344.9,"lance":14674.0,"fold":57.7,"total":16953.0,"cold_total":17754.6},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":2893840,"bytes_vs_A_pct":38.8,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":10.3,"route":6951.3,"ingress":1.6,"lance":2179.6,"fold":64.6,"total":9310.3,"cold_total":9858.2},"rows_scanned":100000,"rows_selected":100000,"bytes_read":508032,"bytes_vs_A_pct":6.8,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":12.7,"route":6909.4,"ingress":0.1,"lance":25566.8,"fold":2138.2,"total":35605.7,"cold_total":36063.5},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":780.5,"resolve":26.0,"route":0.0,"ingress":0.0,"lance":95865.0,"fold":1887.0,"total":102766.2,"cold_total":90885.9},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":543.8,"resolve":18.5,"route":0.0,"ingress":1331.9,"lance":17479.1,"fold":344.5,"total":20164.0,"cold_total":23682.2},"rows_scanned":1100000,"rows_selected":100000,"bytes_read":4417936,"bytes_vs_A_pct":19.5,"row_addr_mask_serialized_bytes":24620,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":17.2,"route":6906.1,"ingress":1.5,"lance":5080.9,"fold":318.9,"total":12649.9,"cold_total":12776.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2032128,"bytes_vs_A_pct":9.0,"row_addr_mask_serialized_bytes":47,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":26.9,"route":7117.3,"ingress":0.1,"lance":89599.6,"fold":3680.5,"total":103492.4,"cold_total":111295.5},"rows_scanned":1000000,"rows_selected":100000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":981.0,"resolve":13.3,"route":0.0,"ingress":0.0,"lance":13632.3,"fold":848.2,"total":15758.4,"cold_total":18563.0},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1030.0,"resolve":18.2,"route":0.0,"ingress":9789.0,"lance":102369.1,"fold":154.2,"total":116563.5,"cold_total":114075.4},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":1004.1,"resolve":16.3,"route":0.0,"ingress":9520.4,"lance":104413.7,"fold":219.7,"total":116194.1,"cold_total":132559.6},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":3798576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":16.2,"route":38664.3,"ingress":9390.8,"lance":92917.2,"fold":160.9,"total":141071.3,"cold_total":141808.7},"rows_scanned":500613,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":1,"us":{"where":0.0,"resolve":15.3,"route":36154.5,"ingress":0.1,"lance":14483.0,"fold":2944.8,"total":54430.4,"cold_total":54472.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":1266192,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":828.1,"resolve":15.4,"route":0.0,"ingress":0.0,"lance":27253.5,"fold":3093.6,"total":31747.1,"cold_total":29476.2},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":6330960,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":970.5,"resolve":23.8,"route":0.0,"ingress":9462.3,"lance":252497.3,"fold":865.0,"total":265124.9,"cold_total":275137.8},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":993.6,"resolve":20.5,"route":0.0,"ingress":9963.5,"lance":256271.4,"fold":878.8,"total":269758.3,"cold_total":289695.7},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":7597152,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.4,"route":38314.6,"ingress":9476.7,"lance":248910.2,"fold":916.6,"total":298587.8,"cold_total":302827.0},"rows_scanned":500613,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":4,"us":{"where":0.0,"resolve":19.3,"route":36917.9,"ingress":0.1,"lance":33232.7,"fold":6402.1,"total":78087.6,"cold_total":79421.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":5064768,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1017.8,"resolve":30.6,"route":0.0,"ingress":0.0,"lance":83342.9,"fold":14429.0,"total":103228.8,"cold_total":102876.3},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1011.6,"resolve":28.4,"route":0.0,"ingress":9396.5,"lance":903199.7,"fold":3419.7,"total":919861.2,"cold_total":866934.1},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":1015.8,"resolve":28.9,"route":0.0,"ingress":10729.4,"lance":893039.0,"fold":3463.9,"total":911573.0,"cold_total":893647.0},"rows_scanned":1500613,"rows_selected":500613,"bytes_read":22819568,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":131220,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":29.2,"route":43569.4,"ingress":10888.5,"lance":945372.6,"fold":3976.3,"total":1005410.6,"cold_total":961106.3},"rows_scanned":500613,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":377194,"read":"Ranges/326222r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500613,"k":16,"us":{"where":0.0,"resolve":29.4,"route":37291.1,"ingress":0.1,"lance":89781.2,"fold":18144.1,"total":151386.0,"cold_total":170235.8},"rows_scanned":1000000,"rows_selected":500613,"bytes_read":20287184,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":418.8,"resolve":9.8,"route":0.0,"ingress":0.0,"lance":8226.5,"fold":400.1,"total":9082.7,"cold_total":13241.3},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":3652000,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":403.1,"resolve":9.5,"route":0.0,"ingress":5991.0,"lance":14257.1,"fold":63.3,"total":20974.1,"cold_total":24747.8},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":384.0,"resolve":9.8,"route":0.0,"ingress":5990.7,"lance":13603.1,"fold":70.7,"total":20469.7,"cold_total":20034.7},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":3019552,"bytes_vs_A_pct":82.7,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":8.5,"route":34230.8,"ingress":3.2,"lance":3589.2,"fold":95.7,"total":37936.5,"cold_total":38125.8},"rows_scanned":500000,"rows_selected":500000,"bytes_read":633744,"bytes_vs_A_pct":17.4,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":10.5,"route":33966.7,"ingress":0.1,"lance":12953.9,"fold":2419.1,"total":50044.2,"cold_total":49174.6},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":1266192,"bytes_vs_A_pct":34.7,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":427.6,"resolve":12.3,"route":0.0,"ingress":0.0,"lance":18199.2,"fold":1804.5,"total":20488.0,"cold_total":22011.9},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":7450576,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":479.7,"resolve":14.9,"route":0.0,"ingress":6425.3,"lance":20565.7,"fold":609.7,"total":28928.7,"cold_total":31394.1},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":510.0,"resolve":11.7,"route":0.0,"ingress":6462.4,"lance":18562.9,"fold":418.8,"total":26284.2,"cold_total":32369.5},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":4920784,"bytes_vs_A_pct":66.0,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":12.2,"route":34925.8,"ingress":5.4,"lance":7436.1,"fold":849.5,"total":43227.9,"cold_total":48904.4},"rows_scanned":500000,"rows_selected":500000,"bytes_read":2534976,"bytes_vs_A_pct":34.0,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":15.9,"route":34929.9,"ingress":0.1,"lance":23135.7,"fold":4226.4,"total":62838.0,"cold_total":63063.0},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":5064768,"bytes_vs_A_pct":68.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":763.5,"resolve":27.3,"route":0.0,"ingress":0.0,"lance":83641.1,"fold":8377.5,"total":96273.2,"cold_total":96701.7},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":22668976,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":742.5,"resolve":22.5,"route":0.0,"ingress":6497.6,"lance":50544.5,"fold":3680.0,"total":64639.2,"cold_total":63670.8},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"allow","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":742.1,"resolve":22.4,"route":0.0,"ingress":6979.8,"lance":45244.4,"fold":3704.6,"total":59360.6,"cold_total":57815.5},"rows_scanned":1500000,"rows_selected":500000,"bytes_read":12525712,"bytes_vs_A_pct":55.3,"row_addr_mask_serialized_bytes":73820,"read":"block","gate":"FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":21.5,"route":34802.2,"ingress":4.7,"lance":36990.6,"fold":4249.5,"total":77508.9,"cold_total":74474.1},"rows_scanned":500000,"rows_selected":500000,"bytes_read":10139904,"bytes_vs_A_pct":44.7,"row_addr_mask_serialized_bytes":144,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":27.0,"route":34717.0,"ingress":0.1,"lance":89344.9,"fold":10766.2,"total":137978.8,"cold_total":132391.2},"rows_scanned":1000000,"rows_selected":500000,"bytes_read":20287184,"bytes_vs_A_pct":89.5,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} - ] -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log deleted file mode 100644 index 661be286d..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n1000000/lance_arm.log +++ /dev/null @@ -1,162 +0,0 @@ -# where_lance_arm LAB, Lance-backed, n=1000000, warm reps=5, seed=0x9e3779b97f4a7c15 -# mask ingress COPIES addresses into RowAddrTreeMap (S-INGRESS open, not zero-copy) -BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / single authority open, #1788); arm C's ids are given directly; no DR ordinal is composed with _rowid - -== ClassView refusals (each with a paired success control) == - [ok ] control: resolve -> exactly the 2 demanded columns (schema has more) - [ok ] control: resolved names equal the fixture truth (not label, not ordinal) - [ok ] AbsentField refused, no column list - [ok ] AbsentField control: present position resolves - [ok ] Unauthorized refused, no column list - [ok ] Unauthorized control: permitted position resolves - [ok ] UnknownProperty refused, no column list - [ok ] UnknownProperty control: known position resolves - [ok ] AmbiguousProperty refused (2 columns), no column list - [ok ] AmbiguousProperty control: unambiguous position resolves - -== Mapping traps (the test would catch a positional or label mapping) == - ordinal mapping wrong on 16/16 positions; label mapping finds no column on 16/16 - [ok ] ordinal mapping gives a different answer (trap is live) - [ok ] label mapping finds no physical column - -== Staleness (dataset appended after resolution / attest) == - [ok ] control: schema resolution current before append - [ok ] control: lane fresh before append - [ok ] control: seek under the real witness runs - [ok ] StaleSchema refused after append - [ok ] stale lane refused after append - [ok ] other dataset refused - [ok ] forged (newer-version) witness refused by seek_from - -# attest (cold, once per version): 75034.1 us [COLD/IO, reported] - -== Measurements (us, median of 5 warm runs; cold = first run) == --- scattered target 0.1% actual 0.099% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) - A-full Lance-backed | where 775.5 resolve 10.1 route 0.0 ingress 0.0 lance 15287.2 fold 70.6 total 16602.0 cold 18329.9 | scanned 1000000 sel 988 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 425.8 resolve 9.0 route 0.0 ingress 82.3 lance 15348.0 fold 0.9 total 16388.7 cold 20954.2 | scanned 1000988 sel 988 bytes 3797280 (100.0% of A) row_addr_mask 2124B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 6.9 route 331.2 ingress 49.1 lance 1631.2 fold 1.0 total 2060.2 cold 2342.6 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 7.5 route 200.9 ingress 48.3 lance 1757.4 fold 1.0 total 2015.6 cold 2038.9 | scanned 988 sel 988 bytes 1264896 ( 33.3% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- scattered target 0.1% actual 0.099% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) - A-full Lance-backed | where 826.8 resolve 12.0 route 0.0 ingress 0.0 lance 24055.0 fold 217.5 total 25877.9 cold 24487.4 | scanned 1000000 sel 988 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 677.1 resolve 10.3 route 0.0 ingress 95.3 lance 19736.2 fold 2.1 total 21324.2 cold 22525.7 | scanned 1000988 sel 988 bytes 7591968 (119.9% of A) row_addr_mask 2124B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 9.9 route 422.8 ingress 51.8 lance 3996.5 fold 2.5 total 4506.9 cold 4375.0 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 9.3 route 262.1 ingress 49.2 lance 3941.9 fold 2.1 total 4260.7 cold 4106.8 | scanned 988 sel 988 bytes 5059584 ( 79.9% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- scattered target 0.1% actual 0.099% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=988 dr_ids=988 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1078.4 resolve 24.4 route 0.0 ingress 0.0 lance 85207.8 fold 1076.2 total 89987.4 cold 88217.1 | scanned 1000000 sel 988 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1008.1 resolve 17.2 route 0.0 ingress 116.3 lance 31616.8 fold 9.7 total 33685.0 cold 40532.0 | scanned 1000988 sel 988 bytes 22770720 (112.2% of A) row_addr_mask 2124B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 14.8 route 487.3 ingress 50.3 lance 12929.9 fold 7.0 total 13499.5 cold 13793.8 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 14.5 route 269.2 ingress 47.2 lance 12141.3 fold 6.0 total 12477.2 cold 12987.5 | scanned 988 sel 988 bytes 20238336 ( 99.8% of A) row_addr_mask 2124B read Ranges/988r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- clustered target 0.1% actual 0.100% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 720.2 resolve 8.6 route 0.0 ingress 0.0 lance 10943.8 fold 18.0 total 12060.8 cold 13030.3 | scanned 1000000 sel 1000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 481.3 resolve 7.7 route 0.0 ingress 51.2 lance 12993.9 fold 0.8 total 13979.4 cold 15039.3 | scanned 1001000 sel 1000 bytes 2388400 ( 65.4% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 4.4 route 65.5 ingress 0.5 lance 620.1 fold 0.8 total 692.1 cold 921.1 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 4.0 route 69.2 ingress 0.4 lance 479.4 fold 0.8 total 548.7 cold 754.1 | scanned 1000 sel 1000 bytes 2592 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- clustered target 0.1% actual 0.100% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 695.8 resolve 11.1 route 0.0 ingress 0.0 lance 22848.2 fold 50.8 total 24377.7 cold 23587.0 | scanned 1000000 sel 1000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 379.7 resolve 9.1 route 0.0 ingress 51.2 lance 12077.0 fold 2.2 total 12806.5 cold 14258.1 | scanned 1001000 sel 1000 bytes 2396176 ( 32.2% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 6.2 route 66.1 ingress 0.4 lance 819.6 fold 1.9 total 900.2 cold 1100.8 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 7.3 route 68.6 ingress 0.7 lance 936.6 fold 2.4 total 1013.5 cold 948.9 | scanned 1000 sel 1000 bytes 10368 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- clustered target 0.1% actual 0.100% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1000 dr_ids=1000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 767.5 resolve 24.3 route 0.0 ingress 0.0 lance 86771.4 fold 204.2 total 90432.6 cold 137650.0 | scanned 1000000 sel 1000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 557.4 resolve 15.4 route 0.0 ingress 56.3 lance 14481.3 fold 7.7 total 15407.4 cold 18149.4 | scanned 1001000 sel 1000 bytes 2427280 ( 10.7% of A) row_addr_mask 2028B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 13.8 route 70.5 ingress 0.8 lance 1631.3 fold 7.2 total 1732.1 cold 1878.4 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 13.9 route 67.1 ingress 0.7 lance 1565.9 fold 7.0 total 1669.0 cold 1772.1 | scanned 1000 sel 1000 bytes 41472 ( 0.2% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- scattered target 1.0% actual 1.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) - A-full Lance-backed | where 703.9 resolve 10.3 route 0.0 ingress 0.0 lance 13626.2 fold 132.0 total 15225.8 cold 17714.0 | scanned 1000000 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 890.5 resolve 9.1 route 0.0 ingress 475.0 lance 20282.0 fold 1.6 total 22245.2 cold 22045.6 | scanned 1010169 sel 10169 bytes 3798576 (100.0% of A) row_addr_mask 20486B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 8.2 route 1327.8 ingress 588.9 lance 3850.1 fold 1.7 total 5850.1 cold 6840.1 | scanned 10169 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 8.5 route 1239.2 ingress 572.7 lance 3792.1 fold 56.5 total 5689.2 cold 5696.2 | scanned 17101 sel 10169 bytes 1266192 ( 33.3% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- scattered target 1.0% actual 1.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) - A-full Lance-backed | where 827.5 resolve 12.7 route 0.0 ingress 0.0 lance 23314.6 fold 597.6 total 25351.0 cold 30758.9 | scanned 1000000 sel 10169 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 787.1 resolve 11.2 route 0.0 ingress 470.3 lance 24529.4 fold 4.7 total 26129.3 cold 29798.3 | scanned 1010169 sel 10169 bytes 7597152 (120.0% of A) row_addr_mask 20486B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 9.7 route 2194.2 ingress 586.1 lance 9735.9 fold 4.8 total 12723.7 cold 12955.7 | scanned 10169 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 9.9 route 1747.5 ingress 537.5 lance 8738.6 fold 85.7 total 11092.3 cold 11858.0 | scanned 17101 sel 10169 bytes 5064768 ( 80.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- scattered target 1.0% actual 1.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10169 dr_ids=10169 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1059.6 resolve 26.0 route 0.0 ingress 0.0 lance 89234.3 fold 2908.8 total 96456.6 cold 88371.6 | scanned 1000000 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1065.7 resolve 25.7 route 0.0 ingress 638.8 lance 57917.9 fold 27.3 total 60277.8 cold 60415.3 | scanned 1010169 sel 10169 bytes 22819568 (112.5% of A) row_addr_mask 20486B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 19.6 route 2520.2 ingress 594.1 lance 35338.7 fold 20.9 total 38425.8 cold 41454.2 | scanned 10169 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 20486B read Ranges/9979r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 17.7 route 1990.8 ingress 566.9 lance 29934.9 fold 209.8 total 32739.9 cold 33573.5 | scanned 17101 sel 10169 bytes 20287184 (100.0% of A) row_addr_mask 34702B read Coalesced/9340r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- clustered target 1.0% actual 1.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 637.1 resolve 8.8 route 0.0 ingress 0.0 lance 11102.5 fold 26.1 total 12249.2 cold 12711.1 | scanned 1000000 sel 10000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 360.5 resolve 7.0 route 0.0 ingress 219.4 lance 12108.8 fold 1.5 total 13056.6 cold 15688.5 | scanned 1010000 sel 10000 bytes 2400064 ( 65.7% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 5.4 route 662.2 ingress 0.6 lance 760.6 fold 1.4 total 1434.2 cold 1760.9 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 4.5 route 667.2 ingress 0.5 lance 667.4 fold 1.4 total 1348.3 cold 1413.2 | scanned 10000 sel 10000 bytes 14256 ( 0.4% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- clustered target 1.0% actual 1.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 413.7 resolve 12.0 route 0.0 ingress 0.0 lance 23055.1 fold 88.0 total 24297.0 cold 25445.7 | scanned 1000000 sel 10000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 373.1 resolve 9.4 route 0.0 ingress 190.5 lance 12615.8 fold 4.6 total 13615.5 cold 14440.8 | scanned 1010000 sel 10000 bytes 2442832 ( 32.8% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 8.4 route 714.1 ingress 1.0 lance 1163.8 fold 4.7 total 1857.7 cold 1674.0 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 8.4 route 727.5 ingress 0.9 lance 1083.3 fold 4.6 total 1796.4 cold 1877.7 | scanned 10000 sel 10000 bytes 57024 ( 0.8% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- clustered target 1.0% actual 1.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 792.5 resolve 24.4 route 0.0 ingress 0.0 lance 85780.0 fold 332.8 total 90868.7 cold 96342.5 | scanned 1000000 sel 10000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 504.9 resolve 18.0 route 0.0 ingress 201.0 lance 15453.7 fold 23.3 total 16656.8 cold 19032.2 | scanned 1010000 sel 10000 bytes 2613904 ( 11.5% of A) row_addr_mask 8220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 18.6 route 717.6 ingress 0.9 lance 2092.7 fold 18.0 total 2847.7 cold 3340.2 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 14.1 route 703.5 ingress 1.0 lance 1897.9 fold 20.3 total 2650.0 cold 2758.7 | scanned 10000 sel 10000 bytes 228096 ( 1.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- scattered target 10.0% actual 10.016% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) - A-full Lance-backed | where 895.3 resolve 10.8 route 0.0 ingress 0.0 lance 14828.3 fold 503.6 total 16723.9 cold 22202.1 | scanned 1000000 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 893.6 resolve 11.0 route 0.0 ingress 3350.0 lance 35511.6 fold 9.8 total 40572.6 cold 42846.9 | scanned 1100164 sel 100164 bytes 3798576 (100.0% of A) row_addr_mask 126420B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 9.5 route 8955.7 ingress 4503.0 lance 21178.4 fold 10.2 total 34767.1 cold 33798.0 | scanned 100164 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 11.8 route 8749.0 ingress 0.1 lance 14096.0 fold 2111.5 total 25518.9 cold 26466.3 | scanned 1000000 sel 100164 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 10.0% actual 10.016% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) - A-full Lance-backed | where 789.5 resolve 14.4 route 0.0 ingress 0.0 lance 25410.7 fold 2066.2 total 29431.7 cold 29110.0 | scanned 1000000 sel 100164 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 948.8 resolve 16.2 route 0.0 ingress 3201.2 lance 67939.2 fold 75.8 total 72777.7 cold 85183.6 | scanned 1100164 sel 100164 bytes 7597152 (120.0% of A) row_addr_mask 126420B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 15.7 route 9532.8 ingress 4592.7 lance 54872.0 fold 65.9 total 72586.5 cold 72444.7 | scanned 100164 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 16.4 route 8998.2 ingress 0.1 lance 28280.6 fold 4415.2 total 42848.3 cold 42226.5 | scanned 1000000 sel 100164 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 10.0% actual 10.016% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100164 dr_ids=100164 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1036.0 resolve 28.9 route 0.0 ingress 0.0 lance 88912.5 fold 9360.9 total 103204.6 cold 98535.2 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1091.6 resolve 27.4 route 0.0 ingress 3618.8 lance 255226.0 fold 561.1 total 261225.7 cold 274799.5 | scanned 1100164 sel 100164 bytes 22819568 (112.5% of A) row_addr_mask 126420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 26.8 route 9135.6 ingress 4572.4 lance 222967.6 fold 576.8 total 238325.2 cold 233856.1 | scanned 100164 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 126420B read Ranges/91527r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 30.8 route 9148.8 ingress 0.1 lance 97943.6 fold 12481.2 total 125376.8 cold 119291.8 | scanned 1000000 sel 100164 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 10.0% actual 10.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 546.4 resolve 9.2 route 0.0 ingress 0.0 lance 9413.4 fold 100.0 total 10120.2 cold 12557.3 | scanned 1000000 sel 100000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 414.0 resolve 7.6 route 0.0 ingress 1231.3 lance 11370.8 fold 9.5 total 13508.8 cold 16811.2 | scanned 1100000 sel 100000 bytes 2512816 ( 68.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 6.5 route 6996.5 ingress 1.8 lance 1547.3 fold 10.0 total 8609.0 cold 9072.7 | scanned 100000 sel 100000 bytes 127008 ( 3.5% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 9.2 route 6741.1 ingress 0.1 lance 11010.7 fold 1320.5 total 19462.5 cold 19421.2 | scanned 1000000 sel 100000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 10.0% actual 10.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 618.6 resolve 12.4 route 0.0 ingress 0.0 lance 25138.7 fold 422.7 total 27025.7 cold 28441.4 | scanned 1000000 sel 100000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 455.6 resolve 11.4 route 0.0 ingress 1344.9 lance 14674.0 fold 57.7 total 16953.0 cold 17754.6 | scanned 1100000 sel 100000 bytes 2893840 ( 38.8% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 10.3 route 6951.3 ingress 1.6 lance 2179.6 fold 64.6 total 9310.3 cold 9858.2 | scanned 100000 sel 100000 bytes 508032 ( 6.8% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 12.7 route 6909.4 ingress 0.1 lance 25566.8 fold 2138.2 total 35605.7 cold 36063.5 | scanned 1000000 sel 100000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 10.0% actual 10.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 780.5 resolve 26.0 route 0.0 ingress 0.0 lance 95865.0 fold 1887.0 total 102766.2 cold 90885.9 | scanned 1000000 sel 100000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 543.8 resolve 18.5 route 0.0 ingress 1331.9 lance 17479.1 fold 344.5 total 20164.0 cold 23682.2 | scanned 1100000 sel 100000 bytes 4417936 ( 19.5% of A) row_addr_mask 24620B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 17.2 route 6906.1 ingress 1.5 lance 5080.9 fold 318.9 total 12649.9 cold 12776.6 | scanned 100000 sel 100000 bytes 2032128 ( 9.0% of A) row_addr_mask 47B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 26.9 route 7117.3 ingress 0.1 lance 89599.6 fold 3680.5 total 103492.4 cold 111295.5 | scanned 1000000 sel 100000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 50.0% actual 50.061% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) - A-full Lance-backed | where 981.0 resolve 13.3 route 0.0 ingress 0.0 lance 13632.3 fold 848.2 total 15758.4 cold 18563.0 | scanned 1000000 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1030.0 resolve 18.2 route 0.0 ingress 9789.0 lance 102369.1 fold 154.2 total 116563.5 cold 114075.4 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 1004.1 resolve 16.3 route 0.0 ingress 9520.4 lance 104413.7 fold 219.7 total 116194.1 cold 132559.6 | scanned 1500613 sel 500613 bytes 3798576 (100.0% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 16.2 route 38664.3 ingress 9390.8 lance 92917.2 fold 160.9 total 141071.3 cold 141808.7 | scanned 500613 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 15.3 route 36154.5 ingress 0.1 lance 14483.0 fold 2944.8 total 54430.4 cold 54472.3 | scanned 1000000 sel 500613 bytes 1266192 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 50.0% actual 50.061% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) - A-full Lance-backed | where 828.1 resolve 15.4 route 0.0 ingress 0.0 lance 27253.5 fold 3093.6 total 31747.1 cold 29476.2 | scanned 1000000 sel 500613 bytes 6330960 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 970.5 resolve 23.8 route 0.0 ingress 9462.3 lance 252497.3 fold 865.0 total 265124.9 cold 275137.8 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 993.6 resolve 20.5 route 0.0 ingress 9963.5 lance 256271.4 fold 878.8 total 269758.3 cold 289695.7 | scanned 1500613 sel 500613 bytes 7597152 (120.0% of A) row_addr_mask 131220B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 19.4 route 38314.6 ingress 9476.7 lance 248910.2 fold 916.6 total 298587.8 cold 302827.0 | scanned 500613 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 19.3 route 36917.9 ingress 0.1 lance 33232.7 fold 6402.1 total 78087.6 cold 79421.3 | scanned 1000000 sel 500613 bytes 5064768 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 50.0% actual 50.061% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=500613 dr_ids=500613 (ids given, BLOCKED_D4) - A-full Lance-backed | where 1017.8 resolve 30.6 route 0.0 ingress 0.0 lance 83342.9 fold 14429.0 total 103228.8 cold 102876.3 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 1011.6 resolve 28.4 route 0.0 ingress 9396.5 lance 903199.7 fold 3419.7 total 919861.2 cold 866934.1 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 1015.8 resolve 28.9 route 0.0 ingress 10729.4 lance 893039.0 fold 3463.9 total 911573.0 cold 893647.0 | scanned 1500613 sel 500613 bytes 22819568 (112.5% of A) row_addr_mask 131220B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 29.2 route 43569.4 ingress 10888.5 lance 945372.6 fold 3976.3 total 1005410.6 cold 961106.3 | scanned 500613 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 377194B read Ranges/326222r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 29.4 route 37291.1 ingress 0.1 lance 89781.2 fold 18144.1 total 151386.0 cold 170235.8 | scanned 1000000 sel 500613 bytes 20287184 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 50.0% actual 50.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 418.8 resolve 9.8 route 0.0 ingress 0.0 lance 8226.5 fold 400.1 total 9082.7 cold 13241.3 | scanned 1000000 sel 500000 bytes 3652000 (100.0% of A) row_addr_mask 0B read full | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 403.1 resolve 9.5 route 0.0 ingress 5991.0 lance 14257.1 fold 63.3 total 20974.1 cold 24747.8 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 384.0 resolve 9.8 route 0.0 ingress 5990.7 lance 13603.1 fold 70.7 total 20469.7 cold 20034.7 | scanned 1500000 sel 500000 bytes 3019552 ( 82.7% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 8.5 route 34230.8 ingress 3.2 lance 3589.2 fold 95.7 total 37936.5 cold 38125.8 | scanned 500000 sel 500000 bytes 633744 ( 17.4% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 10.5 route 33966.7 ingress 0.1 lance 12953.9 fold 2419.1 total 50044.2 cold 49174.6 | scanned 1000000 sel 500000 bytes 1266192 ( 34.7% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 50.0% actual 50.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 427.6 resolve 12.3 route 0.0 ingress 0.0 lance 18199.2 fold 1804.5 total 20488.0 cold 22011.9 | scanned 1000000 sel 500000 bytes 7450576 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 479.7 resolve 14.9 route 0.0 ingress 6425.3 lance 20565.7 fold 609.7 total 28928.7 cold 31394.1 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read allow | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 510.0 resolve 11.7 route 0.0 ingress 6462.4 lance 18562.9 fold 418.8 total 26284.2 cold 32369.5 | scanned 1500000 sel 500000 bytes 4920784 ( 66.0% of A) row_addr_mask 73820B read block | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 12.2 route 34925.8 ingress 5.4 lance 7436.1 fold 849.5 total 43227.9 cold 48904.4 | scanned 500000 sel 500000 bytes 2534976 ( 34.0% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 15.9 route 34929.9 ingress 0.1 lance 23135.7 fold 4226.4 total 62838.0 cold 63063.0 | scanned 1000000 sel 500000 bytes 5064768 ( 68.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 50.0% actual 50.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=500000 dr_ids=500000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 763.5 resolve 27.3 route 0.0 ingress 0.0 lance 83641.1 fold 8377.5 total 96273.2 cold 96701.7 | scanned 1000000 sel 500000 bytes 22668976 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 742.5 resolve 22.5 route 0.0 ingress 6497.6 lance 50544.5 fold 3680.0 total 64639.2 cold 63670.8 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read allow | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 742.1 resolve 22.4 route 0.0 ingress 6979.8 lance 45244.4 fold 3704.6 total 59360.6 cold 57815.5 | scanned 1500000 sel 500000 bytes 12525712 ( 55.3% of A) row_addr_mask 73820B read block | FAILED-GATE(reported):fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 21.5 route 34802.2 ingress 4.7 lance 36990.6 fold 4249.5 total 77508.9 cold 74474.1 | scanned 500000 sel 500000 bytes 10139904 ( 44.7% of A) row_addr_mask 144B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 27.0 route 34717.0 ingress 0.1 lance 89344.9 fold 10766.2 total 137978.8 cold 132391.2 | scanned 1000000 sel 500000 bytes 20287184 ( 89.5% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - -# wrote /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/lancearm/lance_arm/n1000000/lance_arm.json -# all oracle and refusal checks passed diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json deleted file mode 100644 index 45e6eaf39..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "label": "Lance-backed LAB", "n": 10000000, "reps": 3, "attest_cold_us": 784159.9, - "owner_gates": ["S-INGRESS", "D4"], - "rows": [ - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":10604.5,"resolve":21.3,"route":0.0,"ingress":0.0,"lance":195610.4,"fold":910.1,"total":218871.8,"cold_total":248872.6},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":12104.3,"resolve":21.7,"route":0.0,"ingress":1653.7,"lance":361305.1,"fold":2.3,"total":384464.6,"cold_total":252931.3},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":37968912,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":11.1,"route":4701.9,"ingress":583.1,"lance":10024.5,"fold":2.0,"total":15416.5,"cold_total":18348.9},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":1,"us":{"where":0.0,"resolve":9.7,"route":4608.5,"ingress":577.2,"lance":9944.5,"fold":2.0,"total":15567.4,"cold_total":16479.7},"rows_scanned":9858,"rows_selected":9858,"bytes_read":12652848,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":10270.8,"resolve":26.1,"route":0.0,"ingress":0.0,"lance":307619.8,"fold":3159.1,"total":329560.2,"cold_total":327486.8},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":10101.3,"resolve":21.1,"route":0.0,"ingress":1115.0,"lance":299279.6,"fold":5.1,"total":319075.8,"cold_total":795736.7},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":75927456,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":14.8,"route":4674.0,"ingress":586.6,"lance":32178.6,"fold":5.4,"total":37470.0,"cold_total":38813.9},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":4,"us":{"where":0.0,"resolve":13.7,"route":4638.8,"ingress":605.6,"lance":30510.4,"fold":5.7,"total":35784.4,"cold_total":37041.0},"rows_scanned":9858,"rows_selected":9858,"bytes_read":50611392,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10176.8,"resolve":38.5,"route":0.0,"ingress":0.0,"lance":1001637.3,"fold":10647.2,"total":1045618.6,"cold_total":1564785.9},"rows_scanned":10000000,"rows_selected":9858,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":10119.1,"resolve":31.7,"route":0.0,"ingress":1341.3,"lance":381186.5,"fold":35.2,"total":402796.4,"cold_total":426910.0},"rows_scanned":10009858,"rows_selected":9858,"bytes_read":227761632,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":20960,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":25.4,"route":4720.8,"ingress":560.4,"lance":126263.9,"fold":34.3,"total":131587.9,"cold_total":128649.1},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.001,"frac_actual":0.000986,"k":16,"us":{"where":0.0,"resolve":25.0,"route":4855.6,"ingress":596.9,"lance":118893.5,"fold":40.5,"total":124392.6,"cold_total":150616.7},"rows_scanned":9858,"rows_selected":9858,"bytes_read":202445568,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":20960,"read":"Ranges/9858r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":7871.4,"resolve":21.1,"route":0.0,"ingress":0.0,"lance":133907.6,"fold":291.0,"total":145676.3,"cold_total":135584.2},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":8167.7,"resolve":15.2,"route":0.0,"ingress":557.5,"lance":183495.7,"fold":2.5,"total":195631.0,"cold_total":200661.6},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28077728,"bytes_vs_A_pct":69.0,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":10.4,"route":757.9,"ingress":1.3,"lance":1196.4,"fold":2.1,"total":1982.0,"cold_total":2389.8},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":1,"us":{"where":0.0,"resolve":7.8,"route":767.2,"ingress":1.1,"lance":1061.2,"fold":1.9,"total":1835.1,"cold_total":1793.5},"rows_scanned":10000,"rows_selected":10000,"bytes_read":14256,"bytes_vs_A_pct":0.0,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":7753.2,"resolve":24.7,"route":0.0,"ingress":0.0,"lance":292504.0,"fold":536.7,"total":308708.8,"cold_total":346033.9},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":7832.2,"resolve":15.8,"route":0.0,"ingress":457.3,"lance":179587.6,"fold":5.3,"total":194055.6,"cold_total":189390.8},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28120496,"bytes_vs_A_pct":35.7,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":7.6,"route":694.6,"ingress":1.2,"lance":1147.0,"fold":4.6,"total":1863.2,"cold_total":2077.7},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":4,"us":{"where":0.0,"resolve":8.0,"route":696.0,"ingress":1.0,"lance":1171.6,"fold":4.6,"total":1885.1,"cold_total":1853.5},"rows_scanned":10000,"rows_selected":10000,"bytes_read":57024,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":7796.2,"resolve":43.0,"route":0.0,"ingress":0.0,"lance":1279262.2,"fold":2073.5,"total":1311710.1,"cold_total":1956666.8},"rows_scanned":10000000,"rows_selected":10000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":7610.1,"resolve":23.8,"route":0.0,"ingress":563.9,"lance":178640.5,"fold":31.6,"total":191638.1,"cold_total":220112.0},"rows_scanned":10010000,"rows_selected":10000,"bytes_read":28291568,"bytes_vs_A_pct":12.3,"row_addr_mask_serialized_bytes":8220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":15.9,"route":693.6,"ingress":1.2,"lance":2316.2,"fold":26.4,"total":3069.1,"cold_total":3702.3},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.001,"frac_actual":0.001000,"k":16,"us":{"where":0.0,"resolve":14.3,"route":720.1,"ingress":1.0,"lance":1868.0,"fold":18.7,"total":2632.8,"cold_total":2826.2},"rows_scanned":10000,"rows_selected":10000,"bytes_read":228096,"bytes_vs_A_pct":0.1,"row_addr_mask_serialized_bytes":27,"read":"Ranges/1r","gate":"in-fold<1000us; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":10180.7,"resolve":20.4,"route":0.0,"ingress":0.0,"lance":177444.2,"fold":1802.7,"total":193936.1,"cold_total":196070.0},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":10618.7,"resolve":17.1,"route":0.0,"ingress":8666.2,"lance":271392.6,"fold":11.2,"total":303514.4,"cold_total":271725.3},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":12.4,"route":25682.7,"ingress":9053.3,"lance":30579.4,"fold":11.8,"total":65685.1,"cold_total":66387.6},"rows_scanned":101671,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":1,"us":{"where":0.0,"resolve":15.5,"route":24078.2,"ingress":6835.2,"lance":40248.7,"fold":663.6,"total":73177.8,"cold_total":66036.8},"rows_scanned":170665,"rows_selected":101671,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10172.4,"resolve":28.2,"route":0.0,"ingress":0.0,"lance":304089.4,"fold":7061.2,"total":328723.7,"cold_total":340691.5},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":10183.8,"resolve":19.5,"route":0.0,"ingress":5701.5,"lance":317248.1,"fold":122.6,"total":342081.7,"cold_total":329964.5},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":18.4,"route":23944.6,"ingress":6911.1,"lance":84857.3,"fold":107.3,"total":115941.8,"cold_total":116385.7},"rows_scanned":101671,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":4,"us":{"where":0.0,"resolve":20.7,"route":23823.9,"ingress":6917.3,"lance":90044.3,"fold":1079.8,"total":124954.8,"cold_total":125136.6},"rows_scanned":170665,"rows_selected":101671,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10157.6,"resolve":37.4,"route":0.0,"ingress":0.0,"lance":913519.2,"fold":27464.2,"total":975971.5,"cold_total":2118593.4},"rows_scanned":10000000,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":10522.4,"resolve":29.1,"route":0.0,"ingress":5488.1,"lance":538217.8,"fold":620.4,"total":562442.4,"cold_total":583820.8},"rows_scanned":10101671,"rows_selected":101671,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":204586,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":29.1,"route":24899.8,"ingress":7176.3,"lance":318617.8,"fold":627.1,"total":350027.1,"cold_total":334809.5},"rows_scanned":101671,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":204586,"read":"Ranges/99792r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.01,"frac_actual":0.010167,"k":16,"us":{"where":0.0,"resolve":34.9,"route":32846.0,"ingress":8576.6,"lance":423930.0,"fold":3969.2,"total":469522.9,"cold_total":409701.4},"rows_scanned":170665,"rows_selected":101671,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":345360,"read":"Coalesced/93466r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":9319.8,"resolve":30.2,"route":0.0,"ingress":0.0,"lance":180275.6,"fold":451.3,"total":194100.4,"cold_total":202867.6},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":10591.2,"resolve":20.3,"route":0.0,"ingress":1901.0,"lance":245370.5,"fold":17.1,"total":264580.3,"cold_total":283884.7},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28191776,"bytes_vs_A_pct":69.2,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":6.5,"route":6682.1,"ingress":1.4,"lance":1813.5,"fold":10.3,"total":8561.0,"cold_total":8875.7},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":1,"us":{"where":0.0,"resolve":6.2,"route":6659.9,"ingress":1.4,"lance":1708.2,"fold":10.7,"total":8391.3,"cold_total":8425.6},"rows_scanned":100000,"rows_selected":100000,"bytes_read":128304,"bytes_vs_A_pct":0.3,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":8062.3,"resolve":22.8,"route":0.0,"ingress":0.0,"lance":283368.4,"fold":964.7,"total":304545.6,"cold_total":308744.7},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":7910.3,"resolve":15.8,"route":0.0,"ingress":1518.6,"lance":173218.1,"fold":136.0,"total":189203.6,"cold_total":187591.7},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":28576688,"bytes_vs_A_pct":36.3,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.3,"route":7186.4,"ingress":1.8,"lance":2461.8,"fold":89.1,"total":9526.1,"cold_total":10066.3},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":4,"us":{"where":0.0,"resolve":10.0,"route":6973.0,"ingress":1.5,"lance":2458.8,"fold":58.6,"total":9596.0,"cold_total":9174.0},"rows_scanned":100000,"rows_selected":100000,"bytes_read":513216,"bytes_vs_A_pct":0.7,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":8451.5,"resolve":34.4,"route":0.0,"ingress":0.0,"lance":994974.1,"fold":3642.2,"total":1038477.0,"cold_total":3061108.3},"rows_scanned":10000000,"rows_selected":100000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":8579.7,"resolve":24.8,"route":0.0,"ingress":1610.3,"lance":211895.4,"fold":755.9,"total":227616.4,"cold_total":212870.1},"rows_scanned":10100000,"rows_selected":100000,"bytes_read":30116336,"bytes_vs_A_pct":13.1,"row_addr_mask_serialized_bytes":16420,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":18.0,"route":7145.6,"ingress":1.9,"lance":6443.4,"fold":548.1,"total":14191.7,"cold_total":14274.1},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.01,"frac_actual":0.010000,"k":16,"us":{"where":0.0,"resolve":17.9,"route":9641.9,"ingress":1.4,"lance":7702.5,"fold":466.6,"total":19853.8,"cold_total":14118.4},"rows_scanned":100000,"rows_selected":100000,"bytes_read":2052864,"bytes_vs_A_pct":0.9,"row_addr_mask_serialized_bytes":37,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":10200.6,"resolve":25.3,"route":0.0,"ingress":0.0,"lance":181857.5,"fold":5846.3,"total":201475.6,"cold_total":208337.4},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":10188.0,"resolve":19.6,"route":0.0,"ingress":47448.2,"lance":506004.7,"fold":455.1,"total":573987.1,"cold_total":573097.7},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":21.1,"route":96759.8,"ingress":55868.0,"lance":290211.4,"fold":401.4,"total":445607.8,"cold_total":471680.5},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":1,"us":{"where":0.0,"resolve":22.2,"route":99236.3,"ingress":0.1,"lance":172709.2,"fold":31991.2,"total":310325.6,"cold_total":314312.2},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":9962.2,"resolve":27.1,"route":0.0,"ingress":0.0,"lance":290766.1,"fold":22345.6,"total":333068.1,"cold_total":347548.9},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":10067.1,"resolve":22.1,"route":0.0,"ingress":43823.4,"lance":965948.1,"fold":1993.6,"total":1033043.5,"cold_total":1006502.3},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":21.9,"route":96772.9,"ingress":57454.6,"lance":773128.5,"fold":2016.0,"total":931066.0,"cold_total":961729.7},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":4,"us":{"where":0.0,"resolve":28.0,"route":93806.6,"ingress":0.1,"lance":320104.9,"fold":47210.2,"total":474959.5,"cold_total":501543.4},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":10041.7,"resolve":37.4,"route":0.0,"ingress":0.0,"lance":885972.4,"fold":86031.1,"total":1006444.9,"cold_total":1602153.2},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":11203.5,"resolve":30.7,"route":0.0,"ingress":51659.5,"lance":2901665.8,"fold":7954.8,"total":2978742.5,"cold_total":3144643.5},"rows_scanned":11001669,"rows_selected":1001669,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254134,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":32.5,"route":98638.9,"ingress":55939.0,"lance":2814171.6,"fold":7828.8,"total":2980639.6,"cold_total":3012160.1},"rows_scanned":1001669,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1317366,"read":"Ranges/915296r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.1,"frac_actual":0.100167,"k":16,"us":{"where":0.0,"resolve":37.7,"route":94060.6,"ingress":0.1,"lance":985803.0,"fold":108035.7,"total":1228008.4,"cold_total":1930362.0},"rows_scanned":10000000,"rows_selected":1001669,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":8391.7,"resolve":19.8,"route":0.0,"ingress":0.0,"lance":142543.0,"fold":1328.5,"total":156192.7,"cold_total":152648.4},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":9161.5,"resolve":13.6,"route":0.0,"ingress":19281.5,"lance":182682.8,"fold":337.5,"total":217165.1,"cold_total":233894.1},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":29330960,"bytes_vs_A_pct":72.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":12.9,"route":72230.4,"ingress":9.5,"lance":7470.9,"fold":472.8,"total":80189.4,"cold_total":80914.2},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":1267488,"bytes_vs_A_pct":3.1,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":1,"us":{"where":0.0,"resolve":21.3,"route":72554.1,"ingress":0.1,"lance":173849.0,"fold":21846.0,"total":273543.2,"cold_total":268525.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7614.7,"resolve":24.9,"route":0.0,"ingress":0.0,"lance":284073.0,"fold":4877.6,"total":305462.9,"cold_total":324454.7},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":7988.2,"resolve":17.4,"route":0.0,"ingress":18783.3,"lance":197066.7,"fold":1852.8,"total":232786.8,"cold_total":224201.4},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":33133424,"bytes_vs_A_pct":42.1,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":15.9,"route":73993.0,"ingress":11.6,"lance":16347.6,"fold":2097.7,"total":93993.7,"cold_total":94322.7},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":5069952,"bytes_vs_A_pct":6.4,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":4,"us":{"where":0.0,"resolve":24.1,"route":71509.0,"ingress":0.1,"lance":319740.7,"fold":24473.1,"total":428882.7,"cold_total":442966.8},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7439.0,"resolve":34.1,"route":0.0,"ingress":0.0,"lance":968765.6,"fold":19311.3,"total":1035375.2,"cold_total":1664460.9},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":7966.1,"resolve":27.8,"route":0.0,"ingress":18953.0,"lance":261831.4,"fold":8471.5,"total":306443.8,"cold_total":350711.5},"rows_scanned":11000000,"rows_selected":1000000,"bytes_read":48343280,"bytes_vs_A_pct":21.0,"row_addr_mask_serialized_bytes":131220,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":28.7,"route":72748.3,"ingress":8.4,"lance":75057.2,"fold":8491.8,"total":163338.4,"cold_total":161749.9},"rows_scanned":1000000,"rows_selected":1000000,"bytes_read":20279808,"bytes_vs_A_pct":8.8,"row_addr_mask_serialized_bytes":242,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.1,"frac_actual":0.100000,"k":16,"us":{"where":0.0,"resolve":35.6,"route":74090.2,"ingress":0.1,"lance":1387515.3,"fold":37799.7,"total":1536086.9,"cold_total":1198206.1},"rows_scanned":10000000,"rows_selected":1000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10668.6,"resolve":21.2,"route":0.0,"ingress":0.0,"lance":189037.7,"fold":9149.6,"total":213585.1,"cold_total":258146.0},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10434.6,"resolve":19.9,"route":0.0,"ingress":157805.9,"lance":1275026.5,"fold":2548.4,"total":1457116.5,"cold_total":1463167.3},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":10283.5,"resolve":19.1,"route":0.0,"ingress":140457.9,"lance":1240161.8,"fold":2552.8,"total":1415310.3,"cold_total":1474978.6},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":37974096,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":18.8,"route":406068.0,"ingress":124905.0,"lance":1092283.9,"fold":2532.0,"total":1631658.8,"cold_total":1608919.8},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":1,"us":{"where":0.0,"resolve":22.4,"route":379897.5,"ingress":0.1,"lance":186972.1,"fold":38577.4,"total":613457.8,"cold_total":630698.5},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":12658032,"bytes_vs_A_pct":33.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10384.1,"resolve":25.9,"route":0.0,"ingress":0.0,"lance":293148.2,"fold":36312.9,"total":352529.1,"cold_total":333724.5},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":63290160,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":10826.2,"resolve":23.4,"route":0.0,"ingress":142835.3,"lance":3180954.6,"fold":10145.6,"total":3356482.7,"cold_total":3286083.6},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":11394.6,"resolve":23.2,"route":0.0,"ingress":148386.6,"lance":3154953.3,"fold":10177.0,"total":3340402.7,"cold_total":3232648.8},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":75948192,"bytes_vs_A_pct":120.0,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":24.1,"route":406862.6,"ingress":123402.1,"lance":3050814.1,"fold":10912.3,"total":3610219.4,"cold_total":3614986.4},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":4,"us":{"where":0.0,"resolve":26.0,"route":388160.2,"ingress":0.1,"lance":325318.4,"fold":64014.4,"total":788235.9,"cold_total":812171.8},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":50632128,"bytes_vs_A_pct":80.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":11192.6,"resolve":40.2,"route":0.0,"ingress":0.0,"lance":1029054.7,"fold":144726.5,"total":1217495.8,"cold_total":1512702.7},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":10930.9,"resolve":39.2,"route":0.0,"ingress":138706.3,"lance":10925501.3,"fold":41911.1,"total":11163480.5,"cold_total":11428639.2},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":11308.0,"resolve":38.7,"route":0.0,"ingress":141029.6,"lance":11331486.0,"fold":41719.8,"total":11556960.9,"cold_total":11619834.8},"rows_scanned":15006105,"rows_selected":5006105,"bytes_read":227844576,"bytes_vs_A_pct":112.5,"row_addr_mask_serialized_bytes":1254620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":39.8,"route":416594.8,"ingress":123161.5,"lance":11019171.5,"fold":42957.8,"total":11634425.9,"cold_total":12050582.7},"rows_scanned":5006105,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":4776680,"read":"Ranges/3262129r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"scattered","frac_target":0.5,"frac_actual":0.500610,"k":16,"us":{"where":0.0,"resolve":38.9,"route":382661.2,"ingress":0.1,"lance":1006921.9,"fold":168587.0,"total":1609495.9,"cold_total":1677890.9},"rows_scanned":10000000,"rows_selected":5006105,"bytes_read":202528512,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":8387.3,"resolve":18.8,"route":0.0,"ingress":0.0,"lance":136721.5,"fold":5402.7,"total":154159.6,"cold_total":158857.3},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":40721504,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":9107.5,"resolve":16.7,"route":0.0,"ingress":151043.8,"lance":225193.3,"fold":2751.2,"total":395866.5,"cold_total":409615.2},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":8008.2,"resolve":15.9,"route":0.0,"ingress":135983.5,"lance":223245.0,"fold":2396.1,"total":379046.1,"cold_total":384567.0},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":34393136,"bytes_vs_A_pct":84.5,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":16.5,"route":370158.4,"ingress":27.0,"lance":44490.1,"fold":2564.2,"total":418645.9,"cold_total":400381.3},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":6329664,"bytes_vs_A_pct":15.5,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":1,"us":{"where":0.0,"resolve":20.9,"route":370127.1,"ingress":0.1,"lance":180356.2,"fold":29641.7,"total":595103.3,"cold_total":591915.4},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":12658032,"bytes_vs_A_pct":31.1,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8362.4,"resolve":25.1,"route":0.0,"ingress":0.0,"lance":293660.3,"fold":21568.9,"total":336487.7,"cold_total":338396.4},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":78695600,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8477.4,"resolve":20.7,"route":0.0,"ingress":170297.9,"lance":327759.7,"fold":10651.7,"total":509993.8,"cold_total":492648.1},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":8336.3,"resolve":21.9,"route":0.0,"ingress":143129.6,"lance":326572.9,"fold":10206.6,"total":497622.7,"cold_total":524229.0},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":53382128,"bytes_vs_A_pct":67.8,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":21.2,"route":367890.6,"ingress":29.9,"lance":121113.9,"fold":10652.3,"total":512340.8,"cold_total":515621.6},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":25318656,"bytes_vs_A_pct":32.2,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":4,"us":{"where":0.0,"resolve":25.6,"route":379682.5,"ingress":0.1,"lance":338371.7,"fold":44741.3,"total":775945.2,"cold_total":743365.9},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":50632128,"bytes_vs_A_pct":64.3,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"A-full","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8249.7,"resolve":37.7,"route":0.0,"ingress":0.0,"lance":963492.5,"fold":80886.3,"total":1094708.6,"cold_total":1109860.0},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":230591984,"bytes_vs_A_pct":100.0,"row_addr_mask_serialized_bytes":0,"read":"full","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-allow","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":8063.8,"resolve":35.8,"route":0.0,"ingress":146843.8,"lance":692267.6,"fold":45293.4,"total":922238.3,"cold_total":855740.0},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":631420,"read":"allow","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"B-block","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":7926.6,"resolve":43.0,"route":0.0,"ingress":149100.6,"lance":670959.4,"fold":42537.0,"total":893615.2,"cold_total":899936.4},"rows_scanned":15000000,"rows_selected":5000000,"bytes_read":129338096,"bytes_vs_A_pct":56.1,"row_addr_mask_serialized_bytes":639620,"read":"block","gate":"FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-exact","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":38.5,"route":382213.7,"ingress":20.1,"lance":482903.0,"fold":45734.1,"total":930495.1,"cold_total":912487.5},"rows_scanned":5000000,"rows_selected":5000000,"bytes_read":101274624,"bytes_vs_A_pct":43.9,"row_addr_mask_serialized_bytes":1104,"read":"Ranges/1r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"}, - {"arm":"C-default","layout":"clustered","frac_target":0.5,"frac_actual":0.500000,"k":16,"us":{"where":0.0,"resolve":37.8,"route":382916.8,"ingress":0.1,"lance":1016705.9,"fold":105164.0,"total":1571810.3,"cold_total":1564201.7},"rows_scanned":10000000,"rows_selected":5000000,"bytes_read":202528512,"bytes_vs_A_pct":87.8,"row_addr_mask_serialized_bytes":0,"read":"Full/0r","gate":"FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported)"} - ] -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log deleted file mode 100644 index 4abaf0b6e..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/lance_arm.log +++ /dev/null @@ -1,163 +0,0 @@ -# where_lance_arm LAB, Lance-backed, n=10000000, warm reps=3, seed=0x9e3779b97f4a7c15 -# mask ingress COPIES addresses into RowAddrTreeMap (S-INGRESS open, not zero-copy) -BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / single authority open, #1788); arm C's ids are given directly; no DR ordinal is composed with _rowid - -== ClassView refusals (each with a paired success control) == - [ok ] control: resolve -> exactly the 2 demanded columns (schema has more) - [ok ] control: resolved names equal the fixture truth (not label, not ordinal) - [ok ] AbsentField refused, no column list - [ok ] AbsentField control: present position resolves - [ok ] Unauthorized refused, no column list - [ok ] Unauthorized control: permitted position resolves - [ok ] UnknownProperty refused, no column list - [ok ] UnknownProperty control: known position resolves - [ok ] AmbiguousProperty refused (2 columns), no column list - [ok ] AmbiguousProperty control: unambiguous position resolves - -== Mapping traps (the test would catch a positional or label mapping) == - ordinal mapping wrong on 16/16 positions; label mapping finds no column on 16/16 - [ok ] ordinal mapping gives a different answer (trap is live) - [ok ] label mapping finds no physical column - -== Staleness (dataset appended after resolution / attest) == - [ok ] control: schema resolution current before append - [ok ] control: lane fresh before append - [ok ] control: seek under the real witness runs - [ok ] StaleSchema refused after append - [ok ] stale lane refused after append - [ok ] other dataset refused - [ok ] forged (newer-version) witness refused by seek_from - -# attest (cold, once per version): 784159.9 us [COLD/IO, reported] - -== Measurements (us, median of 3 warm runs; cold = first run) == --- scattered target 0.1% actual 0.099% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10604.5 resolve 21.3 route 0.0 ingress 0.0 lance 195610.4 fold 910.1 total 218871.8 cold 248872.6 | scanned 10000000 sel 9858 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 12104.3 resolve 21.7 route 0.0 ingress 1653.7 lance 361305.1 fold 2.3 total 384464.6 cold 252931.3 | scanned 10009858 sel 9858 bytes 37968912 (100.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 11.1 route 4701.9 ingress 583.1 lance 10024.5 fold 2.0 total 15416.5 cold 18348.9 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 9.7 route 4608.5 ingress 577.2 lance 9944.5 fold 2.0 total 15567.4 cold 16479.7 | scanned 9858 sel 9858 bytes 12652848 ( 33.3% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- scattered target 0.1% actual 0.099% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10270.8 resolve 26.1 route 0.0 ingress 0.0 lance 307619.8 fold 3159.1 total 329560.2 cold 327486.8 | scanned 10000000 sel 9858 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10101.3 resolve 21.1 route 0.0 ingress 1115.0 lance 299279.6 fold 5.1 total 319075.8 cold 795736.7 | scanned 10009858 sel 9858 bytes 75927456 (120.0% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 14.8 route 4674.0 ingress 586.6 lance 32178.6 fold 5.4 total 37470.0 cold 38813.9 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 13.7 route 4638.8 ingress 605.6 lance 30510.4 fold 5.7 total 35784.4 cold 37041.0 | scanned 9858 sel 9858 bytes 50611392 ( 80.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- scattered target 0.1% actual 0.099% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=9858 dr_ids=9858 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10176.8 resolve 38.5 route 0.0 ingress 0.0 lance 1001637.3 fold 10647.2 total 1045618.6 cold 1564785.9 | scanned 10000000 sel 9858 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10119.1 resolve 31.7 route 0.0 ingress 1341.3 lance 381186.5 fold 35.2 total 402796.4 cold 426910.0 | scanned 10009858 sel 9858 bytes 227761632 (112.5% of A) row_addr_mask 20960B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 25.4 route 4720.8 ingress 560.4 lance 126263.9 fold 34.3 total 131587.9 cold 128649.1 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 25.0 route 4855.6 ingress 596.9 lance 118893.5 fold 40.5 total 124392.6 cold 150616.7 | scanned 9858 sel 9858 bytes 202445568 (100.0% of A) row_addr_mask 20960B read Ranges/9858r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- clustered target 0.1% actual 0.100% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7871.4 resolve 21.1 route 0.0 ingress 0.0 lance 133907.6 fold 291.0 total 145676.3 cold 135584.2 | scanned 10000000 sel 10000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 8167.7 resolve 15.2 route 0.0 ingress 557.5 lance 183495.7 fold 2.5 total 195631.0 cold 200661.6 | scanned 10010000 sel 10000 bytes 28077728 ( 69.0% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 10.4 route 757.9 ingress 1.3 lance 1196.4 fold 2.1 total 1982.0 cold 2389.8 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 7.8 route 767.2 ingress 1.1 lance 1061.2 fold 1.9 total 1835.1 cold 1793.5 | scanned 10000 sel 10000 bytes 14256 ( 0.0% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- clustered target 0.1% actual 0.100% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7753.2 resolve 24.7 route 0.0 ingress 0.0 lance 292504.0 fold 536.7 total 308708.8 cold 346033.9 | scanned 10000000 sel 10000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7832.2 resolve 15.8 route 0.0 ingress 457.3 lance 179587.6 fold 5.3 total 194055.6 cold 189390.8 | scanned 10010000 sel 10000 bytes 28120496 ( 35.7% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 7.6 route 694.6 ingress 1.2 lance 1147.0 fold 4.6 total 1863.2 cold 2077.7 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 8.0 route 696.0 ingress 1.0 lance 1171.6 fold 4.6 total 1885.1 cold 1853.5 | scanned 10000 sel 10000 bytes 57024 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- clustered target 0.1% actual 0.100% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=10000 dr_ids=10000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7796.2 resolve 43.0 route 0.0 ingress 0.0 lance 1279262.2 fold 2073.5 total 1311710.1 cold 1956666.8 | scanned 10000000 sel 10000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7610.1 resolve 23.8 route 0.0 ingress 563.9 lance 178640.5 fold 31.6 total 191638.1 cold 220112.0 | scanned 10010000 sel 10000 bytes 28291568 ( 12.3% of A) row_addr_mask 8220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 15.9 route 693.6 ingress 1.2 lance 2316.2 fold 26.4 total 3069.1 cold 3702.3 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 14.3 route 720.1 ingress 1.0 lance 1868.0 fold 18.7 total 2632.8 cold 2826.2 | scanned 10000 sel 10000 bytes 228096 ( 0.1% of A) row_addr_mask 27B read Ranges/1r | in-fold<1000us; lance/ingress/cold=COLD/IO(reported) --- scattered target 1.0% actual 1.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10180.7 resolve 20.4 route 0.0 ingress 0.0 lance 177444.2 fold 1802.7 total 193936.1 cold 196070.0 | scanned 10000000 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10618.7 resolve 17.1 route 0.0 ingress 8666.2 lance 271392.6 fold 11.2 total 303514.4 cold 271725.3 | scanned 10101671 sel 101671 bytes 37974096 (100.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 12.4 route 25682.7 ingress 9053.3 lance 30579.4 fold 11.8 total 65685.1 cold 66387.6 | scanned 101671 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 15.5 route 24078.2 ingress 6835.2 lance 40248.7 fold 663.6 total 73177.8 cold 66036.8 | scanned 170665 sel 101671 bytes 12658032 ( 33.3% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- scattered target 1.0% actual 1.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10172.4 resolve 28.2 route 0.0 ingress 0.0 lance 304089.4 fold 7061.2 total 328723.7 cold 340691.5 | scanned 10000000 sel 101671 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10183.8 resolve 19.5 route 0.0 ingress 5701.5 lance 317248.1 fold 122.6 total 342081.7 cold 329964.5 | scanned 10101671 sel 101671 bytes 75948192 (120.0% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 18.4 route 23944.6 ingress 6911.1 lance 84857.3 fold 107.3 total 115941.8 cold 116385.7 | scanned 101671 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 20.7 route 23823.9 ingress 6917.3 lance 90044.3 fold 1079.8 total 124954.8 cold 125136.6 | scanned 170665 sel 101671 bytes 50632128 ( 80.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 1.0% actual 1.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=101671 dr_ids=101671 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10157.6 resolve 37.4 route 0.0 ingress 0.0 lance 913519.2 fold 27464.2 total 975971.5 cold 2118593.4 | scanned 10000000 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10522.4 resolve 29.1 route 0.0 ingress 5488.1 lance 538217.8 fold 620.4 total 562442.4 cold 583820.8 | scanned 10101671 sel 101671 bytes 227844576 (112.5% of A) row_addr_mask 204586B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 29.1 route 24899.8 ingress 7176.3 lance 318617.8 fold 627.1 total 350027.1 cold 334809.5 | scanned 101671 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 204586B read Ranges/99792r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 34.9 route 32846.0 ingress 8576.6 lance 423930.0 fold 3969.2 total 469522.9 cold 409701.4 | scanned 170665 sel 101671 bytes 202528512 (100.0% of A) row_addr_mask 345360B read Coalesced/93466r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 1.0% actual 1.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 9319.8 resolve 30.2 route 0.0 ingress 0.0 lance 180275.6 fold 451.3 total 194100.4 cold 202867.6 | scanned 10000000 sel 100000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10591.2 resolve 20.3 route 0.0 ingress 1901.0 lance 245370.5 fold 17.1 total 264580.3 cold 283884.7 | scanned 10100000 sel 100000 bytes 28191776 ( 69.2% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 6.5 route 6682.1 ingress 1.4 lance 1813.5 fold 10.3 total 8561.0 cold 8875.7 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 6.2 route 6659.9 ingress 1.4 lance 1708.2 fold 10.7 total 8391.3 cold 8425.6 | scanned 100000 sel 100000 bytes 128304 ( 0.3% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- clustered target 1.0% actual 1.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8062.3 resolve 22.8 route 0.0 ingress 0.0 lance 283368.4 fold 964.7 total 304545.6 cold 308744.7 | scanned 10000000 sel 100000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7910.3 resolve 15.8 route 0.0 ingress 1518.6 lance 173218.1 fold 136.0 total 189203.6 cold 187591.7 | scanned 10100000 sel 100000 bytes 28576688 ( 36.3% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 10.3 route 7186.4 ingress 1.8 lance 2461.8 fold 89.1 total 9526.1 cold 10066.3 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 10.0 route 6973.0 ingress 1.5 lance 2458.8 fold 58.6 total 9596.0 cold 9174.0 | scanned 100000 sel 100000 bytes 513216 ( 0.7% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- clustered target 1.0% actual 1.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=100000 dr_ids=100000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8451.5 resolve 34.4 route 0.0 ingress 0.0 lance 994974.1 fold 3642.2 total 1038477.0 cold 3061108.3 | scanned 10000000 sel 100000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 8579.7 resolve 24.8 route 0.0 ingress 1610.3 lance 211895.4 fold 755.9 total 227616.4 cold 212870.1 | scanned 10100000 sel 100000 bytes 30116336 ( 13.1% of A) row_addr_mask 16420B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 18.0 route 7145.6 ingress 1.9 lance 6443.4 fold 548.1 total 14191.7 cold 14274.1 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 17.9 route 9641.9 ingress 1.4 lance 7702.5 fold 466.6 total 19853.8 cold 14118.4 | scanned 100000 sel 100000 bytes 2052864 ( 0.9% of A) row_addr_mask 37B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) --- scattered target 10.0% actual 10.017% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10200.6 resolve 25.3 route 0.0 ingress 0.0 lance 181857.5 fold 5846.3 total 201475.6 cold 208337.4 | scanned 10000000 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10188.0 resolve 19.6 route 0.0 ingress 47448.2 lance 506004.7 fold 455.1 total 573987.1 cold 573097.7 | scanned 11001669 sel 1001669 bytes 37974096 (100.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 21.1 route 96759.8 ingress 55868.0 lance 290211.4 fold 401.4 total 445607.8 cold 471680.5 | scanned 1001669 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 22.2 route 99236.3 ingress 0.1 lance 172709.2 fold 31991.2 total 310325.6 cold 314312.2 | scanned 10000000 sel 1001669 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 10.0% actual 10.017% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) - A-full Lance-backed | where 9962.2 resolve 27.1 route 0.0 ingress 0.0 lance 290766.1 fold 22345.6 total 333068.1 cold 347548.9 | scanned 10000000 sel 1001669 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10067.1 resolve 22.1 route 0.0 ingress 43823.4 lance 965948.1 fold 1993.6 total 1033043.5 cold 1006502.3 | scanned 11001669 sel 1001669 bytes 75948192 (120.0% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 21.9 route 96772.9 ingress 57454.6 lance 773128.5 fold 2016.0 total 931066.0 cold 961729.7 | scanned 1001669 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 28.0 route 93806.6 ingress 0.1 lance 320104.9 fold 47210.2 total 474959.5 cold 501543.4 | scanned 10000000 sel 1001669 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 10.0% actual 10.017% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1001669 dr_ids=1001669 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10041.7 resolve 37.4 route 0.0 ingress 0.0 lance 885972.4 fold 86031.1 total 1006444.9 cold 1602153.2 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 11203.5 resolve 30.7 route 0.0 ingress 51659.5 lance 2901665.8 fold 7954.8 total 2978742.5 cold 3144643.5 | scanned 11001669 sel 1001669 bytes 227844576 (112.5% of A) row_addr_mask 1254134B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 32.5 route 98638.9 ingress 55939.0 lance 2814171.6 fold 7828.8 total 2980639.6 cold 3012160.1 | scanned 1001669 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 1317366B read Ranges/915296r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 37.7 route 94060.6 ingress 0.1 lance 985803.0 fold 108035.7 total 1228008.4 cold 1930362.0 | scanned 10000000 sel 1001669 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 10.0% actual 10.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8391.7 resolve 19.8 route 0.0 ingress 0.0 lance 142543.0 fold 1328.5 total 156192.7 cold 152648.4 | scanned 10000000 sel 1000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 9161.5 resolve 13.6 route 0.0 ingress 19281.5 lance 182682.8 fold 337.5 total 217165.1 cold 233894.1 | scanned 11000000 sel 1000000 bytes 29330960 ( 72.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 12.9 route 72230.4 ingress 9.5 lance 7470.9 fold 472.8 total 80189.4 cold 80914.2 | scanned 1000000 sel 1000000 bytes 1267488 ( 3.1% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 21.3 route 72554.1 ingress 0.1 lance 173849.0 fold 21846.0 total 273543.2 cold 268525.9 | scanned 10000000 sel 1000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 10.0% actual 10.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7614.7 resolve 24.9 route 0.0 ingress 0.0 lance 284073.0 fold 4877.6 total 305462.9 cold 324454.7 | scanned 10000000 sel 1000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7988.2 resolve 17.4 route 0.0 ingress 18783.3 lance 197066.7 fold 1852.8 total 232786.8 cold 224201.4 | scanned 11000000 sel 1000000 bytes 33133424 ( 42.1% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 15.9 route 73993.0 ingress 11.6 lance 16347.6 fold 2097.7 total 93993.7 cold 94322.7 | scanned 1000000 sel 1000000 bytes 5069952 ( 6.4% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 24.1 route 71509.0 ingress 0.1 lance 319740.7 fold 24473.1 total 428882.7 cold 442966.8 | scanned 10000000 sel 1000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 10.0% actual 10.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=1000000 dr_ids=1000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 7439.0 resolve 34.1 route 0.0 ingress 0.0 lance 968765.6 fold 19311.3 total 1035375.2 cold 1664460.9 | scanned 10000000 sel 1000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 7966.1 resolve 27.8 route 0.0 ingress 18953.0 lance 261831.4 fold 8471.5 total 306443.8 cold 350711.5 | scanned 11000000 sel 1000000 bytes 48343280 ( 21.0% of A) row_addr_mask 131220B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 28.7 route 72748.3 ingress 8.4 lance 75057.2 fold 8491.8 total 163338.4 cold 161749.9 | scanned 1000000 sel 1000000 bytes 20279808 ( 8.8% of A) row_addr_mask 242B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 35.6 route 74090.2 ingress 0.1 lance 1387515.3 fold 37799.7 total 1536086.9 cold 1198206.1 | scanned 10000000 sel 1000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 50.0% actual 50.061% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10668.6 resolve 21.2 route 0.0 ingress 0.0 lance 189037.7 fold 9149.6 total 213585.1 cold 258146.0 | scanned 10000000 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10434.6 resolve 19.9 route 0.0 ingress 157805.9 lance 1275026.5 fold 2548.4 total 1457116.5 cold 1463167.3 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 10283.5 resolve 19.1 route 0.0 ingress 140457.9 lance 1240161.8 fold 2552.8 total 1415310.3 cold 1474978.6 | scanned 15006105 sel 5006105 bytes 37974096 (100.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 18.8 route 406068.0 ingress 124905.0 lance 1092283.9 fold 2532.0 total 1631658.8 cold 1608919.8 | scanned 5006105 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 22.4 route 379897.5 ingress 0.1 lance 186972.1 fold 38577.4 total 613457.8 cold 630698.5 | scanned 10000000 sel 5006105 bytes 12658032 ( 33.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 50.0% actual 50.061% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) - A-full Lance-backed | where 10384.1 resolve 25.9 route 0.0 ingress 0.0 lance 293148.2 fold 36312.9 total 352529.1 cold 333724.5 | scanned 10000000 sel 5006105 bytes 63290160 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10826.2 resolve 23.4 route 0.0 ingress 142835.3 lance 3180954.6 fold 10145.6 total 3356482.7 cold 3286083.6 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 11394.6 resolve 23.2 route 0.0 ingress 148386.6 lance 3154953.3 fold 10177.0 total 3340402.7 cold 3232648.8 | scanned 15006105 sel 5006105 bytes 75948192 (120.0% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 24.1 route 406862.6 ingress 123402.1 lance 3050814.1 fold 10912.3 total 3610219.4 cold 3614986.4 | scanned 5006105 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 26.0 route 388160.2 ingress 0.1 lance 325318.4 fold 64014.4 total 788235.9 cold 812171.8 | scanned 10000000 sel 5006105 bytes 50632128 ( 80.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- scattered target 50.0% actual 50.061% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=5006105 dr_ids=5006105 (ids given, BLOCKED_D4) - A-full Lance-backed | where 11192.6 resolve 40.2 route 0.0 ingress 0.0 lance 1029054.7 fold 144726.5 total 1217495.8 cold 1512702.7 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 10930.9 resolve 39.2 route 0.0 ingress 138706.3 lance 10925501.3 fold 41911.1 total 11163480.5 cold 11428639.2 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 11308.0 resolve 38.7 route 0.0 ingress 141029.6 lance 11331486.0 fold 41719.8 total 11556960.9 cold 11619834.8 | scanned 15006105 sel 5006105 bytes 227844576 (112.5% of A) row_addr_mask 1254620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 39.8 route 416594.8 ingress 123161.5 lance 11019171.5 fold 42957.8 total 11634425.9 cold 12050582.7 | scanned 5006105 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 4776680B read Ranges/3262129r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 38.9 route 382661.2 ingress 0.1 lance 1006921.9 fold 168587.0 total 1609495.9 cold 1677890.9 | scanned 10000000 sel 5006105 bytes 202528512 (100.0% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 50.0% actual 50.000% k=1 | demanded(WideFieldMask)=1 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8387.3 resolve 18.8 route 0.0 ingress 0.0 lance 136721.5 fold 5402.7 total 154159.6 cold 158857.3 | scanned 10000000 sel 5000000 bytes 40721504 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 9107.5 resolve 16.7 route 0.0 ingress 151043.8 lance 225193.3 fold 2751.2 total 395866.5 cold 409615.2 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 8008.2 resolve 15.9 route 0.0 ingress 135983.5 lance 223245.0 fold 2396.1 total 379046.1 cold 384567.0 | scanned 15000000 sel 5000000 bytes 34393136 ( 84.5% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 16.5 route 370158.4 ingress 27.0 lance 44490.1 fold 2564.2 total 418645.9 cold 400381.3 | scanned 5000000 sel 5000000 bytes 6329664 ( 15.5% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 20.9 route 370127.1 ingress 0.1 lance 180356.2 fold 29641.7 total 595103.3 cold 591915.4 | scanned 10000000 sel 5000000 bytes 12658032 ( 31.1% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 50.0% actual 50.000% k=4 | demanded(WideFieldMask)=4 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8362.4 resolve 25.1 route 0.0 ingress 0.0 lance 293660.3 fold 21568.9 total 336487.7 cold 338396.4 | scanned 10000000 sel 5000000 bytes 78695600 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 8477.4 resolve 20.7 route 0.0 ingress 170297.9 lance 327759.7 fold 10651.7 total 509993.8 cold 492648.1 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 8336.3 resolve 21.9 route 0.0 ingress 143129.6 lance 326572.9 fold 10206.6 total 497622.7 cold 524229.0 | scanned 15000000 sel 5000000 bytes 53382128 ( 67.8% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 21.2 route 367890.6 ingress 29.9 lance 121113.9 fold 10652.3 total 512340.8 cold 515621.6 | scanned 5000000 sel 5000000 bytes 25318656 ( 32.2% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 25.6 route 379682.5 ingress 0.1 lance 338371.7 fold 44741.3 total 775945.2 cold 743365.9 | scanned 10000000 sel 5000000 bytes 50632128 ( 64.3% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) --- clustered target 50.0% actual 50.000% k=16 | demanded(WideFieldMask)=16 where_bits(popcount)=5000000 dr_ids=5000000 (ids given, BLOCKED_D4) - A-full Lance-backed | where 8249.7 resolve 37.7 route 0.0 ingress 0.0 lance 963492.5 fold 80886.3 total 1094708.6 cold 1109860.0 | scanned 10000000 sel 5000000 bytes 230591984 (100.0% of A) row_addr_mask 0B read full | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-allow Lance-backed | where 8063.8 resolve 35.8 route 0.0 ingress 146843.8 lance 692267.6 fold 45293.4 total 922238.3 cold 855740.0 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 631420B read allow | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - B-block Lance-backed | where 7926.6 resolve 43.0 route 0.0 ingress 149100.6 lance 670959.4 fold 42537.0 total 893615.2 cold 899936.4 | scanned 15000000 sel 5000000 bytes 129338096 ( 56.1% of A) row_addr_mask 639620B read block | FAILED-GATE(reported):where,fold; lance/ingress/cold=COLD/IO(reported) - C-exact Lance-backed | where 0.0 resolve 38.5 route 382213.7 ingress 20.1 lance 482903.0 fold 45734.1 total 930495.1 cold 912487.5 | scanned 5000000 sel 5000000 bytes 101274624 ( 43.9% of A) row_addr_mask 1104B read Ranges/1r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - C-default Lance-backed | where 0.0 resolve 37.8 route 382916.8 ingress 0.1 lance 1016705.9 fold 105164.0 total 1571810.3 cold 1564201.7 | scanned 10000000 sel 5000000 bytes 202528512 ( 87.8% of A) row_addr_mask 0B read Full/0r | FAILED-GATE(reported):route,fold; lance/ingress/cold=COLD/IO(reported) - -# wrote /tmp/claude-0/-home-user/89dae588-85f2-539f-94b2-003b808f478e/scratchpad/lancearm/lance_arm/n10000000/lance_arm.json -# all oracle and refusal checks passed -rc=0 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log b/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log deleted file mode 100644 index a8842c6a8..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/lance_arm/n10000000/notcontiguous.log +++ /dev/null @@ -1,31 +0,0 @@ -# where_lance_arm LAB, Lance-backed, n=10000000, warm reps=3, seed=0x9e3779b97f4a7c15 -# mask ingress COPIES addresses into RowAddrTreeMap (S-INGRESS open, not zero-copy) -BLOCKED_D4: no witness binds a DR Frame to a Lance dataset version (S-INGRESS / single authority open, #1788); arm C's ids are given directly; no DR ordinal is composed with _rowid - -== ClassView refusals (each with a paired success control) == - [ok ] control: resolve -> exactly the 2 demanded columns (schema has more) - [ok ] control: resolved names equal the fixture truth (not label, not ordinal) - [ok ] AbsentField refused, no column list - [ok ] AbsentField control: present position resolves - [ok ] Unauthorized refused, no column list - [ok ] Unauthorized control: permitted position resolves - [ok ] UnknownProperty refused, no column list - [ok ] UnknownProperty control: known position resolves - [ok ] AmbiguousProperty refused (2 columns), no column list - [ok ] AmbiguousProperty control: unambiguous position resolves - -== Mapping traps (the test would catch a positional or label mapping) == - ordinal mapping wrong on 16/16 positions; label mapping finds no column on 16/16 - [ok ] ordinal mapping gives a different answer (trap is live) - [ok ] label mapping finds no physical column - -== Staleness (dataset appended after resolution / attest) == - [ok ] control: schema resolution current before append - [ok ] control: lane fresh before append - [ok ] control: seek under the real witness runs - [ok ] StaleSchema refused after append - [ok ] stale lane refused after append - [ok ] other dataset refused - [ok ] forged (newer-version) witness refused by seek_from -ERROR: NotContiguous: table is not one contiguous fragment -rc=1 diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json b/.claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json deleted file mode 100644 index 3849bea77..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/project/n1000000/project.json +++ /dev/null @@ -1,44 +0,0 @@ -{"n":1000000,"seed":11400714819323198485,"build_us_cold":{"U":708712.085,"P":218232.789,"S":30069.411},"storage_bytes":{"U":258000000,"P":128000000,"S":195280008},"s_compact_values":320002,"checks":[{"check":"R1","query":"p20 < 300","U":"1000000","P":"REFUSED(p20: constant 300 outside packed u8 range 0..=255)","S":"1000000","oracle":1000000},{"check":"R1","query":"p20 = -1","U":"0","P":"REFUSED(p20: constant -1 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p20 >= 256","U":"0","P":"REFUSED(p20: constant 256 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p50 < 70000","U":"19997","P":"REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534)","S":"19997","oracle":19997},{"check":"R2","presence":19997,"n":1000000},{"check":"R3","fired":2,"valid_encodes":true}],"records":[ -{"layout":"U","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":749742,"oracle":749742,"prep_us_cold":3.067,"warm_median_us":200.999,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.698,"warm_median_us":204.024,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.420,"warm_median_us":189.637,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":780635,"oracle":780635,"prep_us_cold":3.413,"warm_median_us":184.618,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":780635,"oracle":780635,"prep_us_cold":10.780,"warm_median_us":481.608,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, -{"layout":"S","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":780635,"oracle":780635,"prep_us_cold":2.934,"warm_median_us":184.112,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":20000,"oracle":20000,"prep_us_cold":5.277,"warm_median_us":229.977,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":0}, -{"layout":"P","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":20000,"oracle":20000,"prep_us_cold":7.816,"warm_median_us":492.571,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, -{"layout":"S","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":20000,"oracle":20000,"prep_us_cold":5.262,"warm_median_us":69.997,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, -{"layout":"U","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.993,"warm_median_us":186.297,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.845,"warm_median_us":192.984,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":749742,"oracle":749742,"prep_us_cold":2.248,"warm_median_us":204.189,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":140953,"oracle":140953,"prep_us_cold":12.412,"warm_median_us":1275.127,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":140953,"oracle":140953,"prep_us_cold":8.806,"warm_median_us":1241.241,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":140953,"oracle":140953,"prep_us_cold":8.484,"warm_median_us":1195.835,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":505593,"oracle":505593,"prep_us_cold":13.201,"warm_median_us":1294.002,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":505593,"oracle":505593,"prep_us_cold":169.947,"warm_median_us":1213.214,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":4,"ext_loops":4}, -{"layout":"S","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":505593,"oracle":505593,"prep_us_cold":7.702,"warm_median_us":792.080,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":10.667,"warm_median_us":654.411,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":0}, -{"layout":"P","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":116.560,"warm_median_us":1240.222,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":2,"planes":4,"ext_loops":4}, -{"layout":"S","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":64.697,"warm_median_us":267.079,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":4}, -{"layout":"U","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":5826,"oracle":5826,"prep_us_cold":9.697,"warm_median_us":722.136,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, -{"layout":"P","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":5826,"oracle":5826,"prep_us_cold":25.063,"warm_median_us":1033.517,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, -{"layout":"S","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":5826,"oracle":5826,"prep_us_cold":12.807,"warm_median_us":552.342,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, -{"layout":"U","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":169,"oracle":169,"prep_us_cold":11.265,"warm_median_us":2507.911,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":169,"oracle":169,"prep_us_cold":9.651,"warm_median_us":2517.671,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":169,"oracle":169,"prep_us_cold":9.468,"warm_median_us":2561.990,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":89163,"oracle":89163,"prep_us_cold":12.213,"warm_median_us":10100.523,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":89163,"oracle":89163,"prep_us_cold":731.121,"warm_median_us":4984.668,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":16,"ext_loops":16}, -{"layout":"S","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":89163,"oracle":89163,"prep_us_cold":9.004,"warm_median_us":5594.172,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":24.654,"warm_median_us":4284.825,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":0}, -{"layout":"P","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":667.201,"warm_median_us":7255.745,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":8,"planes":16,"ext_loops":16}, -{"layout":"S","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":488.822,"warm_median_us":1686.684,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":16}, -{"layout":"U","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":19.205,"warm_median_us":2476.898,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, -{"layout":"P","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":398.228,"warm_median_us":6819.180,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, -{"layout":"S","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":146.879,"warm_median_us":2488.938,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5}, -{"layout":"U","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":973024,"oracle":973024,"prep_us_cold":8.625,"warm_median_us":774.004,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, -{"layout":"P","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":973024,"oracle":973024,"prep_us_cold":31.168,"warm_median_us":1007.874,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, -{"layout":"S","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":973024,"oracle":973024,"prep_us_cold":13.316,"warm_median_us":606.898,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, -{"layout":"U","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":1000000,"oracle":1000000,"prep_us_cold":17.273,"warm_median_us":2939.017,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, -{"layout":"P","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":1000000,"oracle":1000000,"prep_us_cold":323.649,"warm_median_us":4174.437,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, -{"layout":"S","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":1000000,"oracle":1000000,"prep_us_cold":80.107,"warm_median_us":2322.568,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5} -]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json b/.claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json deleted file mode 100644 index 633a35270..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/project/n10000000/project.json +++ /dev/null @@ -1,44 +0,0 @@ -{"n":10000000,"seed":11400714819323198485,"build_us_cold":{"U":17748484.738,"P":5121691.427,"S":531017.234},"storage_bytes":{"U":2580000000,"P":1280000000,"S":1952800008},"s_compact_values":3200002,"checks":[{"check":"R1","query":"p20 < 300","U":"10000000","P":"REFUSED(p20: constant 300 outside packed u8 range 0..=255)","S":"10000000","oracle":10000000},{"check":"R1","query":"p20 = -1","U":"0","P":"REFUSED(p20: constant -1 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p20 >= 256","U":"0","P":"REFUSED(p20: constant 256 outside packed u8 range 0..=255)","S":"0","oracle":0},{"check":"R1","query":"p50 < 70000","U":"199997","P":"REFUSED(p50: constant 70000 outside packed u16 sparse range 0..=65534)","S":"199997","oracle":199997},{"check":"R2","presence":199997,"n":10000000},{"check":"R3","fired":2,"valid_encodes":true}],"records":[ -{"layout":"U","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":9.109,"warm_median_us":1721.395,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":5.055,"warm_median_us":1712.184,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k1_full_and","k":1,"mix":"full","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":4.449,"warm_median_us":1705.611,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":7813278,"oracle":7813278,"prep_us_cold":5.884,"warm_median_us":1706.479,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":7813278,"oracle":7813278,"prep_us_cold":118.603,"warm_median_us":3072.409,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, -{"layout":"S","case":"k1_packed_and","k":1,"mix":"packed","shape":"single","count":7813278,"oracle":7813278,"prep_us_cold":5.463,"warm_median_us":1909.799,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":200003,"oracle":200003,"prep_us_cold":7.813,"warm_median_us":1944.194,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":0}, -{"layout":"P","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":200003,"oracle":200003,"prep_us_cold":139.894,"warm_median_us":3058.096,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, -{"layout":"S","case":"k1_sparse_and","k":1,"mix":"sparse","shape":"single","count":200003,"oracle":200003,"prep_us_cold":32.123,"warm_median_us":500.823,"runs":31,"failed_gate":false,"alloc_bytes_eval":0,"lanes_touched":1,"planes":1,"ext_loops":1}, -{"layout":"U","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":6.773,"warm_median_us":1790.616,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":5.239,"warm_median_us":2110.791,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k1_mixed_and","k":1,"mix":"mixed","shape":"single","count":7499962,"oracle":7499962,"prep_us_cold":5.318,"warm_median_us":2188.509,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":1405719,"oracle":1405719,"prep_us_cold":13.668,"warm_median_us":27231.178,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":1405719,"oracle":1405719,"prep_us_cold":8.056,"warm_median_us":24755.324,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k4_full_and","k":4,"mix":"full","shape":"and","count":1405719,"oracle":1405719,"prep_us_cold":7.554,"warm_median_us":24269.387,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":5057028,"oracle":5057028,"prep_us_cold":10.043,"warm_median_us":24657.857,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":5057028,"oracle":5057028,"prep_us_cold":454.003,"warm_median_us":11958.183,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":1,"planes":4,"ext_loops":4}, -{"layout":"S","case":"k4_packed_and","k":4,"mix":"packed","shape":"and","count":5057028,"oracle":5057028,"prep_us_cold":7.501,"warm_median_us":24026.021,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":12.818,"warm_median_us":20467.683,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":0}, -{"layout":"P","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":246.545,"warm_median_us":25431.770,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":2,"planes":4,"ext_loops":4}, -{"layout":"S","case":"k4_sparse_and","k":4,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":188.491,"warm_median_us":3354.567,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":4,"ext_loops":4}, -{"layout":"U","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":58423,"oracle":58423,"prep_us_cold":11.662,"warm_median_us":21536.793,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, -{"layout":"P","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":58423,"oracle":58423,"prep_us_cold":122.013,"warm_median_us":27878.894,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, -{"layout":"S","case":"k4_mixed_and","k":4,"mix":"mixed","shape":"and","count":58423,"oracle":58423,"prep_us_cold":30.139,"warm_median_us":15334.404,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, -{"layout":"U","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":1732,"oracle":1732,"prep_us_cold":11.490,"warm_median_us":74776.617,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":1732,"oracle":1732,"prep_us_cold":10.302,"warm_median_us":76772.215,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"S","case":"k16_full_and","k":16,"mix":"full","shape":"and","count":1732,"oracle":1732,"prep_us_cold":10.665,"warm_median_us":88821.279,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":886838,"oracle":886838,"prep_us_cold":13.799,"warm_median_us":110142.424,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"P","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":886838,"oracle":886838,"prep_us_cold":1590.237,"warm_median_us":102580.153,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":16,"ext_loops":16}, -{"layout":"S","case":"k16_packed_and","k":16,"mix":"packed","shape":"and","count":886838,"oracle":886838,"prep_us_cold":11.967,"warm_median_us":105085.247,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":0,"ext_loops":0}, -{"layout":"U","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":20.727,"warm_median_us":80098.030,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":0}, -{"layout":"P","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":1532.697,"warm_median_us":116692.494,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":8,"planes":16,"ext_loops":16}, -{"layout":"S","case":"k16_sparse_and","k":16,"mix":"sparse","shape":"and","count":0,"oracle":0,"prep_us_cold":969.493,"warm_median_us":14440.314,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":16,"ext_loops":16}, -{"layout":"U","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":21.694,"warm_median_us":52875.021,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, -{"layout":"P","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":810.276,"warm_median_us":114941.038,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, -{"layout":"S","case":"k16_mixed_and","k":16,"mix":"mixed","shape":"and","count":0,"oracle":0,"prep_us_cold":290.331,"warm_median_us":60669.851,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5}, -{"layout":"U","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":9732172,"oracle":9732172,"prep_us_cold":11.205,"warm_median_us":21360.143,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":0}, -{"layout":"P","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":9732172,"oracle":9732172,"prep_us_cold":151.424,"warm_median_us":24842.332,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":2,"ext_loops":2}, -{"layout":"S","case":"k4_mixed_or","k":4,"mix":"mixed","shape":"or","count":9732172,"oracle":9732172,"prep_us_cold":27.597,"warm_median_us":15257.114,"runs":31,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":4,"planes":1,"ext_loops":1}, -{"layout":"U","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":10000000,"oracle":10000000,"prep_us_cold":20.800,"warm_median_us":84284.692,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":0}, -{"layout":"P","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":10000000,"oracle":10000000,"prep_us_cold":948.204,"warm_median_us":110218.818,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":11,"planes":10,"ext_loops":10}, -{"layout":"S","case":"k16_mixed_or","k":16,"mix":"mixed","shape":"or","count":10000000,"oracle":10000000,"prep_us_cold":304.303,"warm_median_us":68168.124,"runs":11,"failed_gate":true,"alloc_bytes_eval":0,"lanes_touched":16,"planes":5,"ext_loops":5} -]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json deleted file mode 100644 index 19d6f211f..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/cases.json +++ /dev/null @@ -1,56 +0,0 @@ -{"n":1000000,"seed":11400714819323198485,"cases":[ -{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"target":50,"achieved":1000,"target_met":false,"tree":{"op":"cmp","col":3,"cmpop":"lt","value":1}}, -{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"target":10000,"achieved":10000,"target_met":true,"tree":{"op":"cmp","col":5,"cmpop":"lt","value":10}}, -{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"target":500000,"achieved":500005,"target_met":true,"tree":{"op":"cmp","col":13,"cmpop":"lt","value":500}}, -{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":765,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":1,"cmpop":"lt","value":528},{"op":"cmp","col":5,"cmpop":"ge","value":472},{"op":"cmp","col":10,"cmpop":"lt","value":528}]}}, -{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":10139,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":6,"cmpop":"lt","value":207},{"op":"cmp","col":10,"cmpop":"ge","value":793},{"op":"cmp","col":2,"cmpop":"lt","value":207}]}}, -{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":499628,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":11,"cmpop":"lt","value":761},{"op":"cmp","col":13,"cmpop":"ge","value":239},{"op":"cmp","col":10,"cmpop":"lt","value":761}]}}, -{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":999,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":1},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0}]}}, -{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":10000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":4},{"op":"cmp","col":6,"cmpop":"ge","value":997},{"op":"cmp","col":7,"cmpop":"lt","value":3}]}}, -{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":500615,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":249},{"op":"cmp","col":9,"cmpop":"ge","value":751},{"op":"cmp","col":12,"cmpop":"lt","value":249}]}}, -{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":428,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":52},{"op":"cmp","col":7,"cmpop":"ge","value":948}]},{"op":"cmp","col":2,"cmpop":"lt","value":52}]}}, -{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":9819,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":159},{"op":"cmp","col":11,"cmpop":"ge","value":841}]},{"op":"cmp","col":2,"cmpop":"lt","value":159}]}}, -{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":499424,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":594},{"op":"cmp","col":0,"cmpop":"ge","value":406}]},{"op":"cmp","col":4,"cmpop":"lt","value":594}]}}, -{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":46,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":467},{"op":"cmp","col":10,"cmpop":"ge","value":533},{"op":"cmp","col":7,"cmpop":"lt","value":467},{"op":"cmp","col":0,"cmpop":"ge","value":533},{"op":"cmp","col":11,"cmpop":"lt","value":467},{"op":"cmp","col":6,"cmpop":"ge","value":533},{"op":"cmp","col":2,"cmpop":"lt","value":467},{"op":"cmp","col":1,"cmpop":"ge","value":533}]}}, -{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":10097,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":632},{"op":"cmp","col":6,"cmpop":"ge","value":368},{"op":"cmp","col":8,"cmpop":"lt","value":632},{"op":"cmp","col":11,"cmpop":"ge","value":368},{"op":"cmp","col":9,"cmpop":"lt","value":632},{"op":"cmp","col":0,"cmpop":"ge","value":368},{"op":"cmp","col":7,"cmpop":"lt","value":632},{"op":"cmp","col":2,"cmpop":"ge","value":368}]}}, -{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":498124,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":917},{"op":"cmp","col":7,"cmpop":"ge","value":83},{"op":"cmp","col":6,"cmpop":"lt","value":917},{"op":"cmp","col":3,"cmpop":"ge","value":83},{"op":"cmp","col":4,"cmpop":"lt","value":917},{"op":"cmp","col":10,"cmpop":"ge","value":83},{"op":"cmp","col":5,"cmpop":"lt","value":917},{"op":"cmp","col":9,"cmpop":"ge","value":83}]}}, -{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":999,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000}]}}, -{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":9997,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":2},{"op":"cmp","col":13,"cmpop":"ge","value":999},{"op":"cmp","col":14,"cmpop":"lt","value":1},{"op":"cmp","col":1,"cmpop":"ge","value":999},{"op":"cmp","col":7,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":12,"cmpop":"ge","value":999}]}}, -{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":498831,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":82},{"op":"cmp","col":4,"cmpop":"ge","value":918},{"op":"cmp","col":13,"cmpop":"lt","value":82},{"op":"cmp","col":10,"cmpop":"ge","value":918},{"op":"cmp","col":9,"cmpop":"lt","value":82},{"op":"cmp","col":14,"cmpop":"ge","value":918},{"op":"cmp","col":1,"cmpop":"lt","value":82},{"op":"cmp","col":7,"cmpop":"ge","value":918}]}}, -{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":91,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":92},{"op":"cmp","col":4,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":92},{"op":"cmp","col":10,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":92},{"op":"cmp","col":2,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":92},{"op":"cmp","col":12,"cmpop":"ge","value":908}]}]}}, -{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":9901,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":232},{"op":"cmp","col":9,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":232},{"op":"cmp","col":3,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":232},{"op":"cmp","col":5,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":232},{"op":"cmp","col":7,"cmpop":"ge","value":768}]}]}}, -{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":500157,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":585},{"op":"cmp","col":10,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":585},{"op":"cmp","col":12,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":585},{"op":"cmp","col":2,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":585},{"op":"cmp","col":0,"cmpop":"ge","value":415}]}]}}, -{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":45,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":9,"cmpop":"lt","value":768},{"op":"cmp","col":12,"cmpop":"ge","value":232},{"op":"cmp","col":5,"cmpop":"lt","value":768},{"op":"cmp","col":0,"cmpop":"ge","value":232},{"op":"cmp","col":3,"cmpop":"lt","value":768},{"op":"cmp","col":7,"cmpop":"ge","value":232},{"op":"cmp","col":10,"cmpop":"lt","value":768},{"op":"cmp","col":2,"cmpop":"ge","value":232},{"op":"cmp","col":11,"cmpop":"lt","value":768},{"op":"cmp","col":6,"cmpop":"ge","value":232},{"op":"cmp","col":13,"cmpop":"lt","value":768},{"op":"cmp","col":8,"cmpop":"ge","value":232},{"op":"cmp","col":1,"cmpop":"lt","value":768},{"op":"cmp","col":14,"cmpop":"ge","value":232},{"op":"cmp","col":4,"cmpop":"lt","value":768},{"op":"cmp","col":9,"cmpop":"ge","value":232},{"op":"cmp","col":12,"cmpop":"lt","value":768}]}}, -{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":9754,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":829},{"op":"cmp","col":4,"cmpop":"ge","value":172},{"op":"cmp","col":5,"cmpop":"lt","value":829},{"op":"cmp","col":1,"cmpop":"ge","value":171},{"op":"cmp","col":12,"cmpop":"lt","value":829},{"op":"cmp","col":7,"cmpop":"ge","value":171},{"op":"cmp","col":14,"cmpop":"lt","value":829},{"op":"cmp","col":13,"cmpop":"ge","value":171},{"op":"cmp","col":2,"cmpop":"lt","value":829},{"op":"cmp","col":9,"cmpop":"ge","value":171},{"op":"cmp","col":3,"cmpop":"lt","value":829},{"op":"cmp","col":0,"cmpop":"ge","value":171},{"op":"cmp","col":11,"cmpop":"lt","value":829},{"op":"cmp","col":6,"cmpop":"ge","value":171},{"op":"cmp","col":10,"cmpop":"lt","value":829},{"op":"cmp","col":8,"cmpop":"ge","value":171},{"op":"cmp","col":4,"cmpop":"lt","value":829}]}}, -{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":499819,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":955},{"op":"cmp","col":3,"cmpop":"ge","value":45},{"op":"cmp","col":1,"cmpop":"lt","value":955},{"op":"cmp","col":13,"cmpop":"ge","value":45},{"op":"cmp","col":6,"cmpop":"lt","value":955},{"op":"cmp","col":7,"cmpop":"ge","value":45},{"op":"cmp","col":2,"cmpop":"lt","value":955},{"op":"cmp","col":14,"cmpop":"ge","value":45},{"op":"cmp","col":4,"cmpop":"lt","value":955},{"op":"cmp","col":5,"cmpop":"ge","value":45},{"op":"cmp","col":10,"cmpop":"lt","value":955},{"op":"cmp","col":11,"cmpop":"ge","value":45},{"op":"cmp","col":12,"cmpop":"lt","value":955},{"op":"cmp","col":9,"cmpop":"ge","value":45},{"op":"cmp","col":8,"cmpop":"lt","value":955},{"op":"cmp","col":0,"cmpop":"ge","value":45},{"op":"cmp","col":3,"cmpop":"lt","value":955}]}}, -{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":1000,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":1},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0}]}}, -{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":10000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":9,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":10,"cmpop":"lt","value":1},{"op":"cmp","col":2,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":7,"cmpop":"ge","value":999},{"op":"cmp","col":5,"cmpop":"lt","value":1}]}}, -{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":505114,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":34},{"op":"cmp","col":11,"cmpop":"ge","value":966},{"op":"cmp","col":2,"cmpop":"lt","value":34},{"op":"cmp","col":14,"cmpop":"ge","value":966},{"op":"cmp","col":1,"cmpop":"lt","value":34},{"op":"cmp","col":4,"cmpop":"ge","value":966},{"op":"cmp","col":13,"cmpop":"lt","value":34},{"op":"cmp","col":5,"cmpop":"ge","value":966},{"op":"cmp","col":7,"cmpop":"lt","value":34},{"op":"cmp","col":12,"cmpop":"ge","value":966},{"op":"cmp","col":8,"cmpop":"lt","value":34},{"op":"cmp","col":0,"cmpop":"ge","value":966},{"op":"cmp","col":6,"cmpop":"lt","value":34},{"op":"cmp","col":9,"cmpop":"ge","value":966},{"op":"cmp","col":10,"cmpop":"lt","value":34},{"op":"cmp","col":3,"cmpop":"ge","value":966},{"op":"cmp","col":11,"cmpop":"lt","value":34}]}}, -{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":46,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":412},{"op":"cmp","col":12,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":412},{"op":"cmp","col":14,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":412},{"op":"cmp","col":8,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":412},{"op":"cmp","col":10,"cmpop":"ge","value":589}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":412},{"op":"cmp","col":2,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":412},{"op":"cmp","col":11,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":412},{"op":"cmp","col":7,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":412},{"op":"cmp","col":1,"cmpop":"ge","value":588}]},{"op":"cmp","col":12,"cmpop":"lt","value":412}]}}, -{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":10098,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":503},{"op":"cmp","col":1,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":503},{"op":"cmp","col":5,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":503},{"op":"cmp","col":10,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":503},{"op":"cmp","col":14,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":503},{"op":"cmp","col":11,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":503},{"op":"cmp","col":12,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":503},{"op":"cmp","col":9,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":503},{"op":"cmp","col":4,"cmpop":"ge","value":497}]},{"op":"cmp","col":1,"cmpop":"lt","value":503}]}}, -{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":498269,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":811},{"op":"cmp","col":13,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":811},{"op":"cmp","col":6,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":811},{"op":"cmp","col":8,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":811},{"op":"cmp","col":7,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":811},{"op":"cmp","col":3,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":811},{"op":"cmp","col":2,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":811},{"op":"cmp","col":14,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":811},{"op":"cmp","col":12,"cmpop":"ge","value":189}]},{"op":"cmp","col":13,"cmpop":"lt","value":811}]}}, -{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":50,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":819},{"op":"cmp","col":10,"cmpop":"ge","value":181},{"op":"cmp","col":7,"cmpop":"lt","value":819},{"op":"cmp","col":12,"cmpop":"ge","value":181},{"op":"cmp","col":11,"cmpop":"lt","value":819},{"op":"cmp","col":2,"cmpop":"ge","value":181},{"op":"cmp","col":0,"cmpop":"lt","value":819},{"op":"cmp","col":13,"cmpop":"ge","value":181},{"op":"cmp","col":9,"cmpop":"lt","value":819},{"op":"cmp","col":14,"cmpop":"ge","value":181},{"op":"cmp","col":1,"cmpop":"lt","value":819},{"op":"cmp","col":8,"cmpop":"ge","value":181},{"op":"cmp","col":6,"cmpop":"lt","value":819},{"op":"cmp","col":5,"cmpop":"ge","value":181},{"op":"cmp","col":4,"cmpop":"lt","value":819},{"op":"cmp","col":3,"cmpop":"ge","value":181},{"op":"cmp","col":10,"cmpop":"lt","value":819},{"op":"cmp","col":7,"cmpop":"ge","value":181},{"op":"cmp","col":12,"cmpop":"lt","value":819},{"op":"cmp","col":11,"cmpop":"ge","value":181},{"op":"cmp","col":2,"cmpop":"lt","value":819},{"op":"cmp","col":0,"cmpop":"ge","value":181},{"op":"cmp","col":13,"cmpop":"lt","value":819},{"op":"cmp","col":9,"cmpop":"ge","value":181}]}}, -{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":10000,"achieved":9900,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":918},{"op":"cmp","col":8,"cmpop":"ge","value":88},{"op":"cmp","col":11,"cmpop":"lt","value":912},{"op":"cmp","col":13,"cmpop":"ge","value":88},{"op":"cmp","col":12,"cmpop":"lt","value":912},{"op":"cmp","col":6,"cmpop":"ge","value":88},{"op":"cmp","col":14,"cmpop":"lt","value":912},{"op":"cmp","col":5,"cmpop":"ge","value":88},{"op":"cmp","col":2,"cmpop":"lt","value":912},{"op":"cmp","col":9,"cmpop":"ge","value":88},{"op":"cmp","col":0,"cmpop":"lt","value":912},{"op":"cmp","col":7,"cmpop":"ge","value":88},{"op":"cmp","col":10,"cmpop":"lt","value":912},{"op":"cmp","col":3,"cmpop":"ge","value":88},{"op":"cmp","col":1,"cmpop":"lt","value":912},{"op":"cmp","col":4,"cmpop":"ge","value":88},{"op":"cmp","col":8,"cmpop":"lt","value":912},{"op":"cmp","col":11,"cmpop":"ge","value":88},{"op":"cmp","col":13,"cmpop":"lt","value":912},{"op":"cmp","col":12,"cmpop":"ge","value":88},{"op":"cmp","col":6,"cmpop":"lt","value":912},{"op":"cmp","col":14,"cmpop":"ge","value":88},{"op":"cmp","col":5,"cmpop":"lt","value":912},{"op":"cmp","col":2,"cmpop":"ge","value":88}]}}, -{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":500000,"achieved":502071,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":12,"cmpop":"lt","value":976},{"op":"cmp","col":4,"cmpop":"ge","value":24},{"op":"cmp","col":10,"cmpop":"lt","value":976},{"op":"cmp","col":13,"cmpop":"ge","value":24},{"op":"cmp","col":2,"cmpop":"lt","value":976},{"op":"cmp","col":11,"cmpop":"ge","value":24},{"op":"cmp","col":9,"cmpop":"lt","value":976},{"op":"cmp","col":0,"cmpop":"ge","value":24},{"op":"cmp","col":7,"cmpop":"lt","value":976},{"op":"cmp","col":5,"cmpop":"ge","value":24},{"op":"cmp","col":14,"cmpop":"lt","value":976},{"op":"cmp","col":1,"cmpop":"ge","value":24},{"op":"cmp","col":6,"cmpop":"lt","value":976},{"op":"cmp","col":8,"cmpop":"ge","value":24},{"op":"cmp","col":3,"cmpop":"lt","value":976},{"op":"cmp","col":12,"cmpop":"ge","value":24},{"op":"cmp","col":4,"cmpop":"lt","value":976},{"op":"cmp","col":10,"cmpop":"ge","value":24},{"op":"cmp","col":13,"cmpop":"lt","value":976},{"op":"cmp","col":2,"cmpop":"ge","value":24},{"op":"cmp","col":11,"cmpop":"lt","value":976},{"op":"cmp","col":9,"cmpop":"ge","value":24},{"op":"cmp","col":0,"cmpop":"lt","value":976},{"op":"cmp","col":7,"cmpop":"ge","value":24}]}}, -{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":1001,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":1},{"op":"cmp","col":12,"cmpop":"ge","value":1000},{"op":"cmp","col":8,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":1,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":0,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":2,"cmpop":"lt","value":0},{"op":"cmp","col":14,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":13,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":10,"cmpop":"ge","value":1000}]}}, -{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":10000,"achieved":9995,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":3,"cmpop":"ge","value":999},{"op":"cmp","col":4,"cmpop":"lt","value":1},{"op":"cmp","col":5,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999}]}}, -{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":500000,"achieved":495651,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":25},{"op":"cmp","col":8,"cmpop":"ge","value":975},{"op":"cmp","col":4,"cmpop":"lt","value":25},{"op":"cmp","col":10,"cmpop":"ge","value":975},{"op":"cmp","col":12,"cmpop":"lt","value":25},{"op":"cmp","col":3,"cmpop":"ge","value":975},{"op":"cmp","col":0,"cmpop":"lt","value":25},{"op":"cmp","col":2,"cmpop":"ge","value":975},{"op":"cmp","col":1,"cmpop":"lt","value":25},{"op":"cmp","col":14,"cmpop":"ge","value":975},{"op":"cmp","col":7,"cmpop":"lt","value":25},{"op":"cmp","col":13,"cmpop":"ge","value":975},{"op":"cmp","col":5,"cmpop":"lt","value":25},{"op":"cmp","col":6,"cmpop":"ge","value":975},{"op":"cmp","col":11,"cmpop":"lt","value":25},{"op":"cmp","col":9,"cmpop":"ge","value":975},{"op":"cmp","col":8,"cmpop":"lt","value":25},{"op":"cmp","col":4,"cmpop":"ge","value":975},{"op":"cmp","col":10,"cmpop":"lt","value":25},{"op":"cmp","col":12,"cmpop":"ge","value":975},{"op":"cmp","col":3,"cmpop":"lt","value":25},{"op":"cmp","col":0,"cmpop":"ge","value":975},{"op":"cmp","col":2,"cmpop":"lt","value":25},{"op":"cmp","col":1,"cmpop":"ge","value":975}]}}, -{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":48,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":528},{"op":"cmp","col":4,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":528},{"op":"cmp","col":8,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":528},{"op":"cmp","col":13,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":528},{"op":"cmp","col":10,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":528},{"op":"cmp","col":9,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":528},{"op":"cmp","col":1,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":528},{"op":"cmp","col":2,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":528},{"op":"cmp","col":0,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":528},{"op":"cmp","col":7,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":528},{"op":"cmp","col":5,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":528},{"op":"cmp","col":11,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":528},{"op":"cmp","col":14,"cmpop":"ge","value":472}]}]}}, -{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":10000,"achieved":9953,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":555},{"op":"cmp","col":10,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":555},{"op":"cmp","col":1,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":555},{"op":"cmp","col":7,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":555},{"op":"cmp","col":5,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":555},{"op":"cmp","col":9,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":555},{"op":"cmp","col":4,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":555},{"op":"cmp","col":12,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":555},{"op":"cmp","col":0,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":555},{"op":"cmp","col":14,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":555},{"op":"cmp","col":13,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":555},{"op":"cmp","col":8,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":555},{"op":"cmp","col":6,"cmpop":"ge","value":445}]}]}}, -{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":500000,"achieved":500471,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":777},{"op":"cmp","col":12,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":777},{"op":"cmp","col":0,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":777},{"op":"cmp","col":6,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":777},{"op":"cmp","col":11,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":777},{"op":"cmp","col":13,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":777},{"op":"cmp","col":10,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":777},{"op":"cmp","col":8,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":777},{"op":"cmp","col":5,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":777},{"op":"cmp","col":2,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":777},{"op":"cmp","col":4,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":777},{"op":"cmp","col":14,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":777},{"op":"cmp","col":3,"cmpop":"ge","value":223}]}]}}, -{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":10000,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":10}]}}, -{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":1002,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":5,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900}]}}, -{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":1000000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":5}]}}, -{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":1000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"lt","value":1}]}}, -{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":827152,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":985},{"op":"cmp","col":1,"cmpop":"lt","value":986},{"op":"cmp","col":2,"cmpop":"lt","value":987},{"op":"cmp","col":3,"cmpop":"lt","value":988},{"op":"cmp","col":4,"cmpop":"lt","value":989},{"op":"cmp","col":5,"cmpop":"lt","value":985},{"op":"cmp","col":6,"cmpop":"lt","value":986},{"op":"cmp","col":7,"cmpop":"lt","value":987},{"op":"cmp","col":8,"cmpop":"lt","value":988},{"op":"cmp","col":9,"cmpop":"lt","value":989},{"op":"cmp","col":10,"cmpop":"lt","value":985},{"op":"cmp","col":11,"cmpop":"lt","value":986},{"op":"cmp","col":12,"cmpop":"lt","value":987},{"op":"cmp","col":13,"cmpop":"lt","value":988},{"op":"cmp","col":14,"cmpop":"lt","value":989},{"op":"cmp","col":0,"cmpop":"lt","value":985}]}}, -{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":46,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"eq","value":873},{"op":"cmp","col":1,"cmpop":"eq","value":877},{"op":"cmp","col":2,"cmpop":"eq","value":695},{"op":"cmp","col":3,"cmpop":"eq","value":106},{"op":"cmp","col":4,"cmpop":"eq","value":517},{"op":"cmp","col":5,"cmpop":"eq","value":928},{"op":"cmp","col":6,"cmpop":"eq","value":339},{"op":"cmp","col":7,"cmpop":"eq","value":750},{"op":"cmp","col":8,"cmpop":"eq","value":161},{"op":"cmp","col":9,"cmpop":"eq","value":572},{"op":"cmp","col":10,"cmpop":"eq","value":335},{"op":"cmp","col":11,"cmpop":"eq","value":746},{"op":"cmp","col":12,"cmpop":"eq","value":157},{"op":"cmp","col":13,"cmpop":"eq","value":568},{"op":"cmp","col":14,"cmpop":"eq","value":979},{"op":"cmp","col":0,"cmpop":"ge","value":873}]}}, -{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":500001,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":520}]}}, -{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":490001,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":510},{"op":"cmp","col":0,"cmpop":"lt","value":490},{"op":"cmp","col":1,"cmpop":"lt","value":530},{"op":"cmp","col":0,"cmpop":"lt","value":520}]}}, -{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900}]}}, -{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900},{"op":"cmp","col":2,"cmpop":"lt","value":900},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":4,"cmpop":"lt","value":900},{"op":"cmp","col":5,"cmpop":"lt","value":900},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900},{"op":"cmp","col":8,"cmpop":"lt","value":900},{"op":"cmp","col":9,"cmpop":"lt","value":900},{"op":"cmp","col":10,"cmpop":"lt","value":900},{"op":"cmp","col":11,"cmpop":"lt","value":900},{"op":"cmp","col":12,"cmpop":"lt","value":900},{"op":"cmp","col":13,"cmpop":"lt","value":900},{"op":"cmp","col":14,"cmpop":"lt","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900}]}}, -{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":99875,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}, -{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":450007,"target_met":true,"tree":{"op":"not","arg":{"op":"cmp","col":15,"cmpop":"lt","value":500}}}, -{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"target":0,"achieved":190006,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":15,"cmpop":"lt","value":100},{"op":"cmp","col":2,"cmpop":"lt","value":100}]}}, -{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":850017,"target_met":true,"tree":{"op":"not","arg":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}}, -{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":267454,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"ge","value":200},{"op":"cmp","col":0,"cmpop":"lt","value":700},{"op":"cmp","col":2,"cmpop":"lt","value":700},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":15,"cmpop":"lt","value":900}]}} -]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md deleted file mode 100644 index 6b990e3b7..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/compare_where.md +++ /dev/null @@ -1,168 +0,0 @@ -# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 1,000,000 - -Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). - -Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 1,000), k3_tiny_and (target 50, achieved 765), k3_tiny_or (target 50, achieved 999), k3_tiny_mixed (target 50, achieved 428), k8_tiny_or (target 50, achieved 999), k17_tiny_or (target 50, achieved 1,000), k24_tiny_or (target 50, achieved 1,001) - -DuckDB build + ANALYZE: threads 1: 433,303 us (build 432,942, analyze 362); threads 4: 408,392 us (build 407,967, analyze 425) - -### N = 1,000,000, DuckDB threads = 1 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1918.3 | 1981.6 | 589.4 | 13.64 | WIN | 14.09 | WIN | 4.13 | WIN | -| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1739.0 | 1799.0 | 852.7 | 12.55 | WIN | 12.98 | WIN | 6.18 | WIN | -| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 2580.9 | 2118.7 | 744.5 | 18.37 | WIN | 15.08 | WIN | 5.13 | WIN | -| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 4638.3 | 4933.6 | 842.4 | 8.17 | WIN | 8.69 | WIN | 1.48 | WIN | -| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 3490.4 | 4234.6 | 902.7 | 6.60 | WIN | 8.01 | WIN | 1.44 | WIN | -| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 3341.9 | 3411.8 | 874.7 | 6.29 | WIN | 6.42 | WIN | 1.67 | WIN | -| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 2403.1 | 2950.3 | 965.6 | 4.13 | WIN | 5.07 | WIN | 1.67 | WIN | -| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 6476.5 | 6880.9 | 691.1 | 11.61 | WIN | 12.34 | WIN | 1.26 | WIN | -| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 21854.9 | 20115.1 | 728.7 | 41.26 | WIN | 37.97 | WIN | 1.40 | WIN | -| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 3714.8 | 3736.2 | 730.0 | 6.79 | WIN | 6.83 | WIN | 1.34 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 4009.3 | 4073.9 | 721.6 | 7.47 | WIN | 7.59 | WIN | 1.36 | WIN | -| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 15868.0 | 14564.6 | 1095.7 | 30.74 | WIN | 28.22 | WIN | 2.15 | WIN | -| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 4496.9 | 4455.4 | 1017.4 | 4.69 | WIN | 4.64 | WIN | 1.05 | PARITY | -| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 6335.4 | 6355.1 | 881.7 | 4.65 | WIN | 4.66 | WIN | 0.65 | LOSS | -| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 7755.4 | 8069.1 | 881.5 | 5.41 | WIN | 5.63 | WIN | 0.62 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 3547.2 | 3593.4 | 870.5 | 2.48 | WIN | 2.51 | WIN | 0.61 | LOSS | -| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 16571.5 | 17463.0 | 954.4 | 10.83 | WIN | 11.41 | WIN | 0.64 | LOSS | -| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 30636.8 | 30176.8 | 946.6 | 21.62 | WIN | 21.29 | WIN | 0.67 | LOSS | -| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 14878.0 | 14745.0 | 1692.6 | 10.41 | WIN | 10.32 | WIN | 1.22 | WIN | -| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 27575.4 | 28051.8 | 1012.8 | 19.71 | WIN | 20.05 | WIN | 0.73 | LOSS | -| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 74454.8 | 75137.7 | 1078.1 | 49.87 | WIN | 50.33 | WIN | 0.71 | LOSS | -| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 15133.9 | 20282.9 | 2743.6 | 5.33 | WIN | 7.14 | WIN | 0.95 | PARITY | -| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 17023.7 | 15953.3 | 1162.3 | 5.85 | WIN | 5.48 | WIN | 0.40 | LOSS | -| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 20204.8 | 20222.8 | 1175.4 | 7.28 | WIN | 7.28 | WIN | 0.43 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 4772.1 | 5143.0 | 1062.8 | 1.68 | WIN | 1.81 | WIN | 0.37 | LOSS | -| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 22157.3 | 22382.8 | 1163.2 | 7.77 | WIN | 7.84 | WIN | 0.42 | LOSS | -| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 46298.8 | 55727.1 | 1836.9 | 16.54 | WIN | 19.91 | WIN | 0.66 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 14384.5 | 14225.7 | 2724.9 | 6.05 | WIN | 5.98 | WIN | 1.18 | WIN | -| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 32478.6 | 31778.7 | 1308.0 | 9.99 | WIN | 9.77 | WIN | 0.37 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 139929.3 | 137801.1 | 1552.6 | 49.30 | WIN | 48.55 | WIN | 0.53 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 14418.2 | 14223.2 | 1653.5 | 3.77 | WIN | 3.72 | WIN | 0.43 | LOSS | -| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 21674.5 | 26902.6 | 1422.5 | 5.45 | WIN | 6.76 | WIN | 0.38 | LOSS | -| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 25627.8 | 25957.0 | 1403.9 | 6.16 | WIN | 6.24 | WIN | 0.36 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 5061.8 | 5118.6 | 1249.9 | 1.36 | WIN | 1.37 | WIN | 0.33 | LOSS | -| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 23987.1 | 24625.8 | 1328.4 | 6.46 | WIN | 6.63 | WIN | 0.36 | LOSS | -| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 54222.9 | 81416.4 | 2195.6 | 14.46 | WIN | 21.72 | WIN | 0.58 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 77685.0 | 74593.2 | 1816.2 | 20.06 | WIN | 19.26 | WIN | 0.47 | LOSS | -| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 105626.4 | 102196.2 | 1680.8 | 28.30 | WIN | 27.38 | WIN | 0.44 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 210186.7 | 206403.2 | 2679.3 | 54.10 | WIN | 53.13 | WIN | 0.70 | LOSS | -| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1736.4 | 1791.5 | 629.8 | 6.10 | WIN | 6.29 | WIN | 2.13 | WIN | -| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 3253.2 | 3392.3 | 913.9 | 11.22 | WIN | 11.70 | WIN | 3.20 | WIN | -| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 568.5 | - | 635.3 | 1.70 | WIN | - | n/a | 2.02 | WIN | -| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 2203.6 | 2167.9 | 637.7 | 6.97 | WIN | 6.86 | WIN | 1.99 | WIN | -| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 21284.3 | 29563.1 | 1162.1 | 7.76 | WIN | 10.78 | WIN | 0.42 | LOSS | -| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 6147.6 | 6055.4 | 1327.0 | 6.41 | WIN | 6.32 | WIN | 1.37 | WIN | -| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 2401.5 | 2445.3 | 598.1 | 7.59 | WIN | 7.73 | WIN | 1.91 | WIN | -| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 2414.2 | 2579.0 | 652.2 | 3.94 | WIN | 4.21 | WIN | 1.03 | PARITY | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 349.8 | 492.8 | 464.3 | 1.29 | WIN | 1.81 | WIN | 1.74 | WIN | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 602.0 | 701.8 | 740.1 | 0.92 | PARITY | 1.07 | PARITY | 1.11 | WIN | -| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 2862.6 | 3037.3 | 679.7 | 8.26 | WIN | 8.77 | WIN | 2.00 | WIN | -| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 2190.0 | 2244.8 | 570.5 | 11.74 | WIN | 12.03 | WIN | 3.06 | WIN | -| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 9313.9 | 9174.3 | 662.5 | 26.97 | WIN | 26.57 | WIN | 1.86 | WIN | -| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 26557.3 | 27339.2 | 731.3 | 72.53 | WIN | 74.67 | WIN | 2.09 | WIN | -| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 4991.5 | 5394.2 | 802.3 | 5.36 | WIN | 5.79 | WIN | 0.86 | LOSS | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 1,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 692.0 | 9803.4 | 14.17 | WIN | 1997.3 | 28440.0 | 14.24 | WIN | 9.55 | -| count vs duck count, engine | 692.0 | 9860.8 | 14.25 | WIN | 1997.3 | 29328.2 | 14.68 | WIN | 9.89 | -| any vs duck exists, wall | 693.9 | 879.6 | 1.27 | WIN | 1995.5 | 1262.4 | 0.63 | LOSS | 0.83 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 139.9 | 2079.4 | 14.86 | WIN | 0.34 | -| 2-4 | 9 | 544.2 | 7310.8 | 13.43 | WIN | 0.46 | -| 5-16 | 9 | 1383.8 | 20694.6 | 14.96 | WIN | 0.14 | -| 17+ | 18 | 3340.2 | 47270.7 | 14.15 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. - -### N = 1,000,000, DuckDB threads = 4 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 1,000 | 0.10/0.11 | 140.6 (skip_fused) | 142.7 | 146.1 | 1139.3 | 1264.4 | 927.9 | 8.10 | WIN | 8.99 | WIN | 6.50 | WIN | -| 1 | k1_medium_single | medium | single | 10,000 | 0.10/0.11 | 138.6 (skip) | 137.9 | 145.3 | 1194.6 | 1195.2 | 875.1 | 8.62 | WIN | 8.63 | WIN | 6.35 | WIN | -| 1 | k1_large_single | large | single | 500,005 | 0.10/0.11 | 140.5 (plain) | 145.2 | 145.9 | 1018.2 | 1065.5 | 967.3 | 7.25 | WIN | 7.58 | WIN | 6.66 | WIN | -| 2-4 | k3_tiny_and | tiny | and | 765 | 0.28/0.51 | 567.8 (skip_fused) | 567.7 | 597.0 | 1775.7 | 1627.2 | 1010.9 | 3.13 | WIN | 2.87 | WIN | 1.78 | WIN | -| 2-4 | k3_medium_and | medium | and | 10,139 | 0.34/0.69 | 528.7 (skip_fused) | 625.5 | 610.0 | 1711.6 | 1854.9 | 1328.7 | 3.24 | WIN | 3.51 | WIN | 2.12 | WIN | -| 2-4 | k3_large_and | large | and | 499,628 | 0.40/0.85 | 531.4 (fused) | 524.5 | 563.7 | 1989.3 | 2067.8 | 1078.6 | 3.74 | WIN | 3.89 | WIN | 2.06 | WIN | -| 2-4 | k3_tiny_or | tiny | or | 999 | 0.28/0.57 | 582.3 (plain) | 577.6 | 585.8 | 1615.3 | 1660.1 | 1073.6 | 2.77 | WIN | 2.85 | WIN | 1.86 | WIN | -| 2-4 | k3_medium_or | medium | or | 10,000 | 0.28/0.56 | 557.8 (skip_fused) | 547.4 | 560.1 | 3302.2 | 3247.2 | 1109.5 | 5.92 | WIN | 5.82 | WIN | 2.03 | WIN | -| 2-4 | k3_large_or | large | or | 500,615 | 0.28/0.57 | 529.7 (skip) | 520.3 | 531.2 | 7746.1 | 7615.0 | 1427.3 | 14.62 | WIN | 14.38 | WIN | 2.74 | WIN | -| 2-4 | k3_tiny_mixed | tiny | mixed | 428 | 0.37/0.65 | 547.4 (skip_fused) | 546.1 | 552.2 | 2406.5 | 2385.2 | 1093.4 | 4.40 | WIN | 4.36 | WIN | 2.00 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 9,819 | 0.37/0.65 | 536.8 (skip_fused) | 529.3 | 542.7 | 2341.8 | 2395.3 | 1109.9 | 4.36 | WIN | 4.46 | WIN | 2.10 | WIN | -| 2-4 | k3_large_mixed | large | mixed | 499,424 | 0.36/0.65 | 516.1 (skip_fused) | 509.3 | 523.2 | 6041.2 | 6048.1 | 1085.5 | 11.70 | WIN | 11.72 | WIN | 2.13 | WIN | -| 5-16 | k8_tiny_and | tiny | and | 46 | 0.53/2.34 | 959.4 (plain) | 965.7 | 964.9 | 2556.5 | 2602.2 | 1608.9 | 2.66 | WIN | 2.71 | WIN | 1.67 | WIN | -| 5-16 | k8_medium_and | medium | and | 10,097 | 0.52/2.38 | 1362.3 (fused) | 1365.2 | 1378.7 | 3211.5 | 3379.6 | 1232.4 | 2.36 | WIN | 2.48 | WIN | 0.90 | PARITY | -| 5-16 | k8_large_and | large | and | 498,124 | 0.63/2.43 | 1433.0 (fused) | 1425.0 | 1498.7 | 3575.6 | 3563.6 | 1244.8 | 2.50 | WIN | 2.49 | WIN | 0.87 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 999 | 0.51/2.63 | 1430.3 (skip_fused) | 1422.4 | 1433.4 | 2206.0 | 2246.3 | 1314.8 | 1.54 | WIN | 1.57 | WIN | 0.92 | PARITY | -| 5-16 | k8_medium_or | medium | or | 9,997 | 0.76/4.19 | 1530.3 (fused) | 1484.5 | 1519.6 | 7392.8 | 6884.2 | 1253.4 | 4.83 | WIN | 4.50 | WIN | 0.84 | LOSS | -| 5-16 | k8_large_or | large | or | 498,831 | 0.51/2.61 | 1417.1 (fused) | 1408.1 | 1458.2 | 10587.5 | 10985.8 | 1334.6 | 7.47 | WIN | 7.75 | WIN | 0.95 | PARITY | -| 5-16 | k8_tiny_mixed | tiny | mixed | 91 | 0.87/2.65 | 1429.4 (skip) | 1385.6 | 1394.0 | 6487.3 | 4835.1 | 2416.9 | 4.54 | WIN | 3.38 | WIN | 1.74 | WIN | -| 5-16 | k8_medium_mixed | medium | mixed | 9,901 | 0.86/2.61 | 1399.0 (skip_fused) | 1390.1 | 1440.9 | 10984.4 | 11573.4 | 1398.7 | 7.85 | WIN | 8.27 | WIN | 1.01 | PARITY | -| 5-16 | k8_large_mixed | large | mixed | 500,157 | 0.85/2.62 | 1492.9 (skip_fused) | 1528.4 | 1475.3 | 26765.5 | 27626.3 | 1583.2 | 17.93 | WIN | 18.50 | WIN | 1.04 | PARITY | -| 17+ | k17_tiny_and | tiny | and | 45 | 1.07/7.44 | 2839.3 (skip_fused) | 2888.1 | 2961.9 | 5477.6 | 5055.0 | 2799.7 | 1.93 | WIN | 1.78 | WIN | 0.97 | PARITY | -| 17+ | k17_medium_and | medium | and | 9,754 | 1.06/7.98 | 2909.6 (skip_fused) | 2879.3 | 2873.7 | 7021.7 | 6300.4 | 1972.2 | 2.41 | WIN | 2.17 | WIN | 0.68 | LOSS | -| 17+ | k17_large_and | large | and | 499,819 | 1.06/7.44 | 2776.0 (skip_fused) | 2764.1 | 2786.9 | 9519.3 | 8798.6 | 2216.5 | 3.43 | WIN | 3.17 | WIN | 0.80 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 1,000 | 1.07/7.98 | 2835.1 (skip_fused) | 2854.0 | 2956.5 | 3657.2 | 3620.7 | 2005.9 | 1.29 | WIN | 1.28 | WIN | 0.70 | LOSS | -| 17+ | k17_medium_or | medium | or | 10,000 | 1.04/8.23 | 2853.3 (plain) | 2769.2 | 2996.4 | 9796.8 | 9902.8 | 1761.3 | 3.43 | WIN | 3.47 | WIN | 0.64 | LOSS | -| 17+ | k17_large_or | large | or | 505,114 | 1.06/8.19 | 2798.5 (skip) | 2772.4 | 2785.1 | 17303.5 | 17122.6 | 2216.9 | 6.18 | WIN | 6.12 | WIN | 0.80 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 46 | 1.91/6.99 | 2378.1 (skip) | 2308.0 | 1620.0 | 7023.1 | 6161.9 | 3655.1 | 2.95 | WIN | 2.59 | WIN | 1.58 | WIN | -| 17+ | k17_medium_mixed | medium | mixed | 10,098 | 2.92/10.53 | 3252.1 (fused) | 3559.2 | 3580.7 | 14138.3 | 14204.1 | 2318.8 | 4.35 | WIN | 4.37 | WIN | 0.65 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 498,269 | 1.91/6.99 | 2838.3 (fused) | 2916.9 | 2881.7 | 49926.1 | 50849.2 | 2620.3 | 17.59 | WIN | 17.92 | WIN | 0.90 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 50 | 1.48/15.64 | 3822.1 (skip_fused) | 3885.5 | 3864.8 | 5905.0 | 5666.5 | 2537.2 | 1.54 | WIN | 1.48 | WIN | 0.65 | LOSS | -| 17+ | k24_medium_and | medium | and | 9,900 | 1.44/15.57 | 3980.4 (skip_fused) | 3775.8 | 3769.6 | 7744.7 | 7598.1 | 2176.2 | 1.95 | WIN | 1.91 | WIN | 0.58 | LOSS | -| 17+ | k24_large_and | large | and | 502,071 | 1.42/15.70 | 4162.7 (skip_fused) | 3867.2 | 3806.4 | 9555.7 | 10058.7 | 1779.0 | 2.30 | WIN | 2.42 | WIN | 0.46 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 1,001 | 1.46/16.35 | 3725.8 (skip) | 3815.8 | 3741.7 | 2949.7 | 2996.9 | 1687.7 | 0.79 | LOSS | 0.80 | LOSS | 0.44 | LOSS | -| 17+ | k24_medium_or | medium | or | 9,995 | 2.18/24.74 | 3713.5 (skip_fused) | 3723.3 | 3736.2 | 9341.3 | 10687.1 | 2293.1 | 2.52 | WIN | 2.88 | WIN | 0.62 | LOSS | -| 17+ | k24_large_or | large | or | 495,651 | 1.44/16.39 | 3749.3 (plain) | 3784.1 | 3719.0 | 21958.3 | 18904.6 | 1900.8 | 5.86 | WIN | 5.04 | WIN | 0.50 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 48 | 2.62/11.04 | 3872.5 (skip_fused) | 3859.8 | 3999.1 | 26730.1 | 25867.3 | 7325.5 | 6.90 | WIN | 6.68 | WIN | 1.90 | WIN | -| 17+ | k24_medium_mixed | medium | mixed | 9,953 | 2.56/10.94 | 3732.2 (skip_fused) | 3833.5 | 4130.1 | 36972.9 | 38432.2 | 2156.4 | 9.91 | WIN | 10.30 | WIN | 0.56 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 500,471 | 2.56/10.79 | 3885.2 (fused) | 3820.9 | 3818.3 | 60307.6 | 66207.1 | 2320.7 | 15.52 | WIN | 17.04 | WIN | 0.61 | LOSS | -| 2-4 | adv_one_everything | medium | and | 10,000 | 0.21/0.37 | 284.8 (skip) | 295.7 | 301.6 | 1192.5 | 1300.1 | 994.1 | 4.19 | WIN | 4.56 | WIN | 3.36 | WIN | -| 2-4 | adv_one_nothing | medium | and | 1,002 | 0.29/0.50 | 290.0 (plain) | 285.5 | 288.5 | 1669.5 | 1835.7 | 1048.4 | 5.76 | WIN | 6.33 | WIN | 3.67 | WIN | -| 2-4 | adv_or_one_everything | large | or | 1,000,000 | 0.21/0.41 | 333.9 (skip_fused) | 314.0 | 328.3 | 714.9 | - | 802.7 | 2.14 | WIN | - | n/a | 2.56 | WIN | -| 2-4 | adv_or_one_nothing | medium | or | 1,000 | 0.21/0.40 | 316.1 (skip_fused) | 320.7 | 327.7 | 1582.3 | 1662.7 | 974.0 | 5.01 | WIN | 5.26 | WIN | 3.04 | WIN | -| 5-16 | adv_16_nonselective | large | and | 827,152 | 0.96/6.75 | 2742.0 (fused) | 2762.9 | 2774.1 | 7983.7 | 7986.8 | 1664.9 | 2.91 | WIN | 2.91 | WIN | 0.60 | LOSS | -| 5-16 | adv_16_collapse_one | tiny | and | 46 | 0.99/6.59 | 958.5 (skip) | 966.3 | 985.8 | 3516.8 | 3556.4 | 2077.6 | 3.67 | WIN | 3.71 | WIN | 2.15 | WIN | -| 2-4 | adv_correlated_2 | large | and | 500,001 | 0.22/0.38 | 316.3 (fused) | 312.5 | 321.9 | 1566.7 | 1488.7 | 986.1 | 4.95 | WIN | 4.71 | WIN | 3.16 | WIN | -| 5-16 | adv_correlated_5 | large | and | 490,001 | 0.39/1.16 | 612.3 (skip_fused) | 633.6 | 618.3 | 1658.9 | 1662.9 | 1049.8 | 2.71 | WIN | 2.72 | WIN | 1.66 | WIN | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.31/0.61 | 271.8 (fused) | 267.4 | 266.5 | 554.7 | 597.6 | 740.4 | 2.04 | WIN | 2.20 | WIN | 2.77 | WIN | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.04/7.62 | 657.5 (skip) | 665.4 | 697.2 | 1155.3 | 824.1 | 985.5 | 1.76 | WIN | 1.25 | WIN | 1.48 | WIN | -| 2-4 | null_and | large | and | 99,875 | 0.32/0.50 | 346.4 (skip_fused) | 339.5 | 347.6 | 1765.1 | 1708.6 | 963.5 | 5.10 | WIN | 4.93 | WIN | 2.84 | WIN | -| 1 | null_not | large | not | 450,007 | 0.24/0.45 | 186.5 (fused) | 186.3 | 185.5 | 1289.7 | 1252.5 | 845.3 | 6.91 | WIN | 6.71 | WIN | 4.54 | WIN | -| 2-4 | null_or | large | or | 190,006 | 0.36/0.53 | 345.3 (plain) | 356.0 | 352.2 | 3894.8 | 4046.3 | 1001.5 | 11.28 | WIN | 11.72 | WIN | 2.81 | WIN | -| 2-4 | null_not_and | large | not | 850,017 | 0.45/0.85 | 366.1 (skip_fused) | 349.9 | 365.7 | 9881.9 | 9599.8 | 1034.7 | 26.99 | WIN | 26.22 | WIN | 2.96 | WIN | -| 5-16 | null_and_5 | large | and | 267,454 | 0.61/1.50 | 931.4 (skip_fused) | 937.4 | 949.4 | 2810.4 | 2845.1 | 1117.8 | 3.02 | WIN | 3.05 | WIN | 1.19 | WIN | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 125,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 1,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 692.0 | 4023.8 | 5.81 | WIN | 1997.3 | 10548.1 | 5.28 | WIN | 4.30 | -| count vs duck count, engine | 692.0 | 4051.2 | 5.85 | WIN | 1997.3 | 10629.6 | 5.32 | WIN | 4.27 | -| any vs duck exists, wall | 693.9 | 1202.0 | 1.73 | WIN | 1995.5 | 1851.8 | 0.93 | PARITY | 1.19 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 139.9 | 1117.4 | 7.99 | WIN | 0.34 | -| 2-4 | 9 | 544.2 | 3214.4 | 5.91 | WIN | 0.46 | -| 5-16 | 9 | 1383.8 | 8196.3 | 5.92 | WIN | 0.14 | -| 17+ | 18 | 3340.2 | 16962.7 | 5.08 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 27 of 54 cases. - diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt deleted file mode 100644 index aeb108353..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k17_medium_and.txt +++ /dev/null @@ -1,143 +0,0 @@ --- k17_medium_and (K group 17+) --- WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829)) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 2.8e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.000058247999999999995, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": [ - "((c8 >= 171) AND (c8 < 829))", - "((c4 >= 172) AND (c4 < 829))", - "(c5 < 829)", - "(c1 >= 171)", - "(c12 < 829)", - "(c7 >= 171)", - "(c14 < 829)", - "(c13 >= 171)", - "(c2 < 829)", - "(c9 >= 171)", - "(c3 < 829)", - "(c0 >= 171)", - "(c11 < 829)", - "(c6 >= 171)", - "(c10 < 829)" - ], - "Estimated Cardinality": "200000" - }, - "intermediate_rows": 9754, - "intermediate_size_bytes": 585240, - "row_groups_scanned": 9, - "rows_scanned": 1000000, - "timing": 0.014411654000000005, - "total_row_groups_to_scan": 9, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.000005033, - "aggregate_reuse": 0.000002151, - "build_side_probe_side": 0.000001325, - "column_lifetime": 0.000001957, - "common_aggregate": 9.67e-7, - "common_subexpressions": 0.000001002, - "common_subplan": 0.000012661, - "cte_filter_pusher": 5.67e-7, - "cte_inlining": 5.31e-7, - "deliminator": 7.71e-7, - "duplicate_groups": 0.000001121, - "empty_result_pullup": 3.77e-7, - "expression_rewriter": 0.000119512, - "filter_pullup": 0.000001034, - "filter_pushdown": 0.000093589, - "grouping_sets": 4.17e-7, - "in_clause": 5.74e-7, - "join_elimination": 0.000001349, - "join_filter_pushdown": 3.74e-7, - "join_order": 0.000051331, - "late_materialization": 7.28e-7, - "limit_pushdown": 4.63e-7, - "outer_join_simplification": 0.000002255, - "partial_aggregate_pushdown": 0.00000132, - "partitioned_execution": 4.7e-7, - "projection_placement": 0.000001254, - "projection_pullup": 0.000001041, - "redundant_order_keys": 0.000002542, - "regex_range": 5.12e-7, - "reorder_filter": 4.8e-7, - "row_group_pruner": 3.45e-7, - "row_number_rewriter": 4.82e-7, - "sampling_pushdown": 3.87e-7, - "scalar_fn_pushdown": 2.81e-7, - "statistics_propagation": 0.000072785, - "top_n": 4.25e-7, - "top_n_window_elimination": 0.000002373, - "total_time": 0.00047628, - "type_pushdown": 3.55e-7, - "unnest_rewriter": 8.18e-7, - "unused_columns": 0.000036548, - "window_self_join": 5.54e-7 - }, - "physical_planner": { - "column_binding": 0.000001977, - "create_plan": 0.000020864, - "resolve_types": 2.71e-7, - "total_time": 0.000028071 - }, - "planner": { - "binding_time": 0.000201244, - "total_time": 0.000274912 - }, - "query": { - "cpu_time": 0.014470182000000005, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c8 < 829) AND (c4 >= 172) AND (c5 < 829) AND (c1 >= 171) AND (c12 < 829) AND (c7 >= 171) AND (c14 < 829) AND (c13 >= 171) AND (c2 < 829) AND (c9 >= 171) AND (c3 < 829) AND (c0 >= 171) AND (c11 < 829) AND (c6 >= 171) AND (c10 < 829) AND (c8 >= 171) AND (c4 < 829))", - "total_intermediate_rows": 9755, - "total_intermediate_size_bytes": 585248, - "total_row_groups_scanned": 9, - "total_row_groups_to_scan": 9, - "total_rows_scanned": 1000000, - "total_time": 0.016655088 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 82549032, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt deleted file mode 100644 index 510b084c9..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k1_medium_single.txt +++ /dev/null @@ -1,127 +0,0 @@ --- k1_medium_single (K group 1) --- WHERE (c5 < 10) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 3.4e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.00010689099999999999, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": "(c5 < 10)", - "Estimated Cardinality": "200000" - }, - "intermediate_rows": 10000, - "intermediate_size_bytes": 40000, - "row_groups_scanned": 9, - "rows_scanned": 1000000, - "timing": 0.001925262, - "total_row_groups_to_scan": 9, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.000007391, - "aggregate_reuse": 0.000002205, - "build_side_probe_side": 0.000001594, - "column_lifetime": 0.000002727, - "common_aggregate": 0.000001384, - "common_subexpressions": 0.000001219, - "common_subplan": 0.000027769, - "cte_filter_pusher": 6.34e-7, - "cte_inlining": 6.64e-7, - "deliminator": 8.44e-7, - "duplicate_groups": 0.000001424, - "empty_result_pullup": 4.7e-7, - "expression_rewriter": 0.000040484, - "filter_pullup": 0.000001148, - "filter_pushdown": 0.000024819, - "grouping_sets": 5.42e-7, - "in_clause": 6.53e-7, - "join_elimination": 0.000001663, - "join_filter_pushdown": 5.32e-7, - "join_order": 0.000033117, - "late_materialization": 0.000001021, - "limit_pushdown": 5.32e-7, - "outer_join_simplification": 0.000002598, - "partial_aggregate_pushdown": 0.000001582, - "partitioned_execution": 5.73e-7, - "projection_placement": 0.000001492, - "projection_pullup": 0.000001339, - "redundant_order_keys": 0.000001903, - "regex_range": 5.17e-7, - "reorder_filter": 6.6e-7, - "row_group_pruner": 4.49e-7, - "row_number_rewriter": 6.07e-7, - "sampling_pushdown": 4.52e-7, - "scalar_fn_pushdown": 3.16e-7, - "statistics_propagation": 0.000038084, - "top_n": 5.29e-7, - "top_n_window_elimination": 0.000002975, - "total_time": 0.000295786, - "type_pushdown": 4.79e-7, - "unnest_rewriter": 9.13e-7, - "unused_columns": 0.000012075, - "window_self_join": 0.000001396 - }, - "physical_planner": { - "column_binding": 0.000002275, - "create_plan": 0.00001432, - "resolve_types": 2.46e-7, - "total_time": 0.000022179 - }, - "planner": { - "binding_time": 0.000122667, - "total_time": 0.000198134 - }, - "query": { - "cpu_time": 0.0020324930000000002, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE (c5 < 10)", - "total_intermediate_rows": 10001, - "total_intermediate_size_bytes": 40008, - "total_row_groups_scanned": 9, - "total_row_groups_to_scan": 9, - "total_rows_scanned": 1000000, - "total_time": 0.00297264 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 82450728, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt deleted file mode 100644 index ac741b80e..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k3_medium_and.txt +++ /dev/null @@ -1,131 +0,0 @@ --- k3_medium_and (K group 2-4) --- WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207)) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 3.02e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.00004471000000000002, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": [ - "(c6 < 207)", - "(c10 >= 793)", - "(c2 < 207)" - ], - "Estimated Cardinality": "200000" - }, - "intermediate_rows": 10139, - "intermediate_size_bytes": 121668, - "row_groups_scanned": 9, - "rows_scanned": 1000000, - "timing": 0.0027193840000000013, - "total_row_groups_to_scan": 9, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.000005574, - "aggregate_reuse": 0.000001948, - "build_side_probe_side": 0.000001316, - "column_lifetime": 0.000002359, - "common_aggregate": 0.000001135, - "common_subexpressions": 0.00005113, - "common_subplan": 0.000013522, - "cte_filter_pusher": 5.81e-7, - "cte_inlining": 5.65e-7, - "deliminator": 6.23e-7, - "duplicate_groups": 0.000001064, - "empty_result_pullup": 3.31e-7, - "expression_rewriter": 0.000045855, - "filter_pullup": 0.000001043, - "filter_pushdown": 0.000043169, - "grouping_sets": 5.12e-7, - "in_clause": 6.91e-7, - "join_elimination": 0.000001337, - "join_filter_pushdown": 4.49e-7, - "join_order": 0.000030586, - "late_materialization": 8.63e-7, - "limit_pushdown": 4.26e-7, - "outer_join_simplification": 0.000002105, - "partial_aggregate_pushdown": 0.000001279, - "partitioned_execution": 4.67e-7, - "projection_placement": 0.000001189, - "projection_pullup": 0.000001248, - "redundant_order_keys": 0.00000157, - "regex_range": 4.71e-7, - "reorder_filter": 6.09e-7, - "row_group_pruner": 3.73e-7, - "row_number_rewriter": 4.58e-7, - "sampling_pushdown": 4.14e-7, - "scalar_fn_pushdown": 2.1e-7, - "statistics_propagation": 0.000037293, - "top_n": 3.91e-7, - "top_n_window_elimination": 0.000002551, - "total_time": 0.00032446, - "type_pushdown": 3.22e-7, - "unnest_rewriter": 8.29e-7, - "unused_columns": 0.000013264, - "window_self_join": 5.98e-7 - }, - "physical_planner": { - "column_binding": 0.000002066, - "create_plan": 0.000011922, - "resolve_types": 1.9e-7, - "total_time": 0.000024928 - }, - "planner": { - "binding_time": 0.000111012, - "total_time": 0.000167176 - }, - "query": { - "cpu_time": 0.0027643960000000014, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c6 < 207) AND (c10 >= 793) AND (c2 < 207))", - "total_intermediate_rows": 10140, - "total_intermediate_size_bytes": 121676, - "total_row_groups_scanned": 9, - "total_row_groups_to_scan": 9, - "total_rows_scanned": 1000000, - "total_time": 0.0038337 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 82450728, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt deleted file mode 100644 index a67328749..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/explain/k8_medium_and.txt +++ /dev/null @@ -1,136 +0,0 @@ --- k8_medium_and (K group 5-16) --- WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368)) -{ - "io": { - "total_bytes_read": 0, - "total_bytes_written": 0 - }, - "operator": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 0.0, - "type": "RESULT_COLLECTOR", - "children": [ - { - "extra_info": {}, - "intermediate_rows": 0, - "intermediate_size_bytes": 0, - "timing": 1.32e-7, - "type": "EXPLAIN_ANALYZE", - "children": [ - { - "extra_info": { - "Aggregates": "count_star()", - "Estimated Cardinality": "1" - }, - "intermediate_rows": 1, - "intermediate_size_bytes": 8, - "timing": 0.00005236500000000002, - "type": "UNGROUPED_AGGREGATE", - "children": [ - { - "extra_info": { - "Table": "memory.main.nodes", - "Type": "Sequential Scan", - "Projections": "", - "Filters": [ - "(c3 < 632)", - "(c6 >= 368)", - "(c8 < 632)", - "(c11 >= 368)", - "(c9 < 632)", - "(c0 >= 368)", - "(c7 < 632)", - "(c2 >= 368)" - ], - "Estimated Cardinality": "200000" - }, - "intermediate_rows": 10097, - "intermediate_size_bytes": 323104, - "row_groups_scanned": 9, - "rows_scanned": 1000000, - "timing": 0.006398797999999997, - "total_row_groups_to_scan": 9, - "type": "TABLE_SCAN" - } - ] - } - ] - } - ] - } - ], - "optimizer": { - "aggregate_function_rewriter": 0.000004997, - "aggregate_reuse": 0.00000192, - "build_side_probe_side": 0.000001258, - "column_lifetime": 0.000002384, - "common_aggregate": 0.000001172, - "common_subexpressions": 9.55e-7, - "common_subplan": 0.00001125, - "cte_filter_pusher": 5.83e-7, - "cte_inlining": 4.86e-7, - "deliminator": 5.95e-7, - "duplicate_groups": 0.000001103, - "empty_result_pullup": 3.75e-7, - "expression_rewriter": 0.000072562, - "filter_pullup": 0.000001044, - "filter_pushdown": 0.000052411, - "grouping_sets": 4.32e-7, - "in_clause": 6.03e-7, - "join_elimination": 0.000001221, - "join_filter_pushdown": 5.01e-7, - "join_order": 0.000039156, - "late_materialization": 8.57e-7, - "limit_pushdown": 4.3e-7, - "outer_join_simplification": 0.000002231, - "partial_aggregate_pushdown": 0.000001234, - "partitioned_execution": 5.72e-7, - "projection_placement": 0.000001408, - "projection_pullup": 0.000001097, - "redundant_order_keys": 0.000001971, - "regex_range": 4.49e-7, - "reorder_filter": 6.03e-7, - "row_group_pruner": 3.58e-7, - "row_number_rewriter": 4.65e-7, - "sampling_pushdown": 3.97e-7, - "scalar_fn_pushdown": 2.18e-7, - "statistics_propagation": 0.000083689, - "top_n": 4.08e-7, - "top_n_window_elimination": 0.000002377, - "total_time": 0.000369327, - "type_pushdown": 3.2e-7, - "unnest_rewriter": 8.09e-7, - "unused_columns": 0.000020245, - "window_self_join": 6.11e-7 - }, - "physical_planner": { - "column_binding": 0.000002204, - "create_plan": 0.000012314, - "resolve_types": 2.24e-7, - "total_time": 0.000019188 - }, - "planner": { - "binding_time": 0.000124404, - "total_time": 0.000197582 - }, - "query": { - "cpu_time": 0.0064512949999999975, - "sql": "EXPLAIN ANALYZE SELECT count(*) FROM nodes WHERE ((c3 < 632) AND (c6 >= 368) AND (c8 < 632) AND (c11 >= 368) AND (c9 < 632) AND (c0 >= 368) AND (c7 < 632) AND (c2 >= 368))", - "total_intermediate_rows": 10098, - "total_intermediate_size_bytes": 323112, - "total_row_groups_scanned": 9, - "total_row_groups_to_scan": 9, - "total_rows_scanned": 1000000, - "total_time": 0.007903188 - }, - "system": { - "blocked_thread_time": 0.0, - "peak_buffer_memory": 82516264, - "peak_streaming_buffer_size": 0, - "peak_temp_dir_size": 0, - "total_memory_allocated": 0 - } -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json deleted file mode 100644 index 8efb943c1..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_duckdb.json +++ /dev/null @@ -1,116 +0,0 @@ -{ -"n": 1000000, -"duckdb_version": "2.0.0", -"runs": 31, -"load": {"1": {"build_us": 432941.514, "analyze_us": 361.902, "load_us": 433303.416, "mem_bytes": 82446632}, "4": {"build_us": 407966.601, "analyze_us": 425.116, "load_us": 408391.717, "mem_bytes": 82446632}}, -"records": [ -{"id": "k1_tiny_single", "threads": 1, "count": 1000, "exists": true, "count_cold_us": 5621.02, "count_warm_med_us": 1918.268, "count_warm_p10_us": 1664.774, "count_warm_p90_us": 2485.728, "count_engine_med_us": 1981.609, "exists_cold_us": 1378.305, "exists_warm_med_us": 589.417, "exists_warm_p10_us": 510.031, "exists_warm_p90_us": 702.132, "exists_engine_med_us": 674.559, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k1_medium_single", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 2687.324, "count_warm_med_us": 1738.972, "count_warm_p10_us": 1630.374, "count_warm_p90_us": 2045.268, "count_engine_med_us": 1798.954, "exists_cold_us": 1908.953, "exists_warm_med_us": 852.655, "exists_warm_p10_us": 813.352, "exists_warm_p90_us": 926.575, "exists_engine_med_us": 898.931, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k1_large_single", "threads": 1, "count": 500005, "exists": true, "count_cold_us": 3934.294, "count_warm_med_us": 2580.879, "count_warm_p10_us": 1633.903, "count_warm_p90_us": 3405.558, "count_engine_med_us": 2118.66, "exists_cold_us": 1670.479, "exists_warm_med_us": 744.503, "exists_warm_p10_us": 690.84, "exists_warm_p90_us": 815.906, "exists_engine_med_us": 812.895, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_tiny_and", "threads": 1, "count": 765, "exists": true, "count_cold_us": 6869.788, "count_warm_med_us": 4638.318, "count_warm_p10_us": 3131.511, "count_warm_p90_us": 4788.883, "count_engine_med_us": 4933.59, "exists_cold_us": 1946.865, "exists_warm_med_us": 842.384, "exists_warm_p10_us": 725.3, "exists_warm_p90_us": 906.546, "exists_engine_med_us": 786.595, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_medium_and", "threads": 1, "count": 10139, "exists": true, "count_cold_us": 4540.33, "count_warm_med_us": 3490.399, "count_warm_p10_us": 2999.365, "count_warm_p90_us": 4342.667, "count_engine_med_us": 4234.648, "exists_cold_us": 2295.528, "exists_warm_med_us": 902.736, "exists_warm_p10_us": 693.118, "exists_warm_p90_us": 1075.683, "exists_engine_med_us": 1052.391, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_large_and", "threads": 1, "count": 499628, "exists": true, "count_cold_us": 7351.869, "count_warm_med_us": 3341.871, "count_warm_p10_us": 3212.788, "count_warm_p90_us": 3895.041, "count_engine_med_us": 3411.843, "exists_cold_us": 2005.698, "exists_warm_med_us": 874.733, "exists_warm_p10_us": 691.211, "exists_warm_p90_us": 920.28, "exists_engine_med_us": 962.231, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_tiny_or", "threads": 1, "count": 999, "exists": true, "count_cold_us": 4991.015, "count_warm_med_us": 2403.109, "count_warm_p10_us": 2231.592, "count_warm_p90_us": 3704.63, "count_engine_med_us": 2950.291, "exists_cold_us": 2220.248, "exists_warm_med_us": 965.596, "exists_warm_p10_us": 763.012, "exists_warm_p90_us": 1038.172, "exists_engine_med_us": 799.273, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_medium_or", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 8215.602, "count_warm_med_us": 6476.471, "count_warm_p10_us": 5925.722, "count_warm_p90_us": 8647.368, "count_engine_med_us": 6880.935, "exists_cold_us": 1558.995, "exists_warm_med_us": 691.077, "exists_warm_p10_us": 657.335, "exists_warm_p90_us": 804.854, "exists_engine_med_us": 816.07, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_large_or", "threads": 1, "count": 500615, "exists": true, "count_cold_us": 26836.568, "count_warm_med_us": 21854.879, "count_warm_p10_us": 19720.203, "count_warm_p90_us": 26873.995, "count_engine_med_us": 20115.064, "exists_cold_us": 2044.355, "exists_warm_med_us": 728.655, "exists_warm_p10_us": 667.007, "exists_warm_p90_us": 829.44, "exists_engine_med_us": 945.821, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_tiny_mixed", "threads": 1, "count": 428, "exists": true, "count_cold_us": 6459.539, "count_warm_med_us": 3714.813, "count_warm_p10_us": 3433.579, "count_warm_p90_us": 4239.921, "count_engine_med_us": 3736.24, "exists_cold_us": 1638.374, "exists_warm_med_us": 730.017, "exists_warm_p10_us": 681.321, "exists_warm_p90_us": 901.651, "exists_engine_med_us": 735.94, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_medium_mixed", "threads": 1, "count": 9819, "exists": true, "count_cold_us": 7609.299, "count_warm_med_us": 4009.266, "count_warm_p10_us": 3846.237, "count_warm_p90_us": 5154.643, "count_engine_med_us": 4073.93, "exists_cold_us": 1724.633, "exists_warm_med_us": 721.591, "exists_warm_p10_us": 670.985, "exists_warm_p90_us": 786.934, "exists_engine_med_us": 791.989, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k3_large_mixed", "threads": 1, "count": 499424, "exists": true, "count_cold_us": 16725.484, "count_warm_med_us": 15868.025, "count_warm_p10_us": 14599.471, "count_warm_p90_us": 19770.281, "count_engine_med_us": 14564.578, "exists_cold_us": 1721.867, "exists_warm_med_us": 1095.727, "exists_warm_p10_us": 1075.439, "exists_warm_p90_us": 1180.951, "exists_engine_med_us": 1149.461, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_tiny_and", "threads": 1, "count": 46, "exists": true, "count_cold_us": 9540.841, "count_warm_med_us": 4496.883, "count_warm_p10_us": 4310.876, "count_warm_p90_us": 5309.017, "count_engine_med_us": 4455.384, "exists_cold_us": 2254.435, "exists_warm_med_us": 1017.438, "exists_warm_p10_us": 969.966, "exists_warm_p90_us": 1208.107, "exists_engine_med_us": 1109.475, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_medium_and", "threads": 1, "count": 10097, "exists": true, "count_cold_us": 16134.646, "count_warm_med_us": 6335.387, "count_warm_p10_us": 5982.254, "count_warm_p90_us": 7914.624, "count_engine_med_us": 6355.062, "exists_cold_us": 2010.991, "exists_warm_med_us": 881.729, "exists_warm_p10_us": 828.76, "exists_warm_p90_us": 987.085, "exists_engine_med_us": 985.948, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_large_and", "threads": 1, "count": 498124, "exists": true, "count_cold_us": 11245.263, "count_warm_med_us": 7755.427, "count_warm_p10_us": 7474.505, "count_warm_p90_us": 9139.924, "count_engine_med_us": 8069.13, "exists_cold_us": 1984.443, "exists_warm_med_us": 881.543, "exists_warm_p10_us": 834.376, "exists_warm_p90_us": 966.274, "exists_engine_med_us": 1011.495, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_tiny_or", "threads": 1, "count": 999, "exists": true, "count_cold_us": 5411.93, "count_warm_med_us": 3547.239, "count_warm_p10_us": 3202.172, "count_warm_p90_us": 5062.949, "count_engine_med_us": 3593.424, "exists_cold_us": 2142.36, "exists_warm_med_us": 870.539, "exists_warm_p10_us": 771.103, "exists_warm_p90_us": 986.619, "exists_engine_med_us": 983.942, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_medium_or", "threads": 1, "count": 9997, "exists": true, "count_cold_us": 18002.665, "count_warm_med_us": 16571.528, "count_warm_p10_us": 16181.984, "count_warm_p90_us": 17253.63, "count_engine_med_us": 17463.041, "exists_cold_us": 2154.29, "exists_warm_med_us": 954.432, "exists_warm_p10_us": 872.336, "exists_warm_p90_us": 1249.496, "exists_engine_med_us": 1001.275, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_large_or", "threads": 1, "count": 498831, "exists": true, "count_cold_us": 34061.571, "count_warm_med_us": 30636.811, "count_warm_p10_us": 28571.636, "count_warm_p90_us": 36864.446, "count_engine_med_us": 30176.751, "exists_cold_us": 2333.781, "exists_warm_med_us": 946.629, "exists_warm_p10_us": 868.968, "exists_warm_p90_us": 1260.095, "exists_engine_med_us": 1033.414, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_tiny_mixed", "threads": 1, "count": 91, "exists": true, "count_cold_us": 16960.131, "count_warm_med_us": 14877.962, "count_warm_p10_us": 13790.313, "count_warm_p90_us": 15550.625, "count_engine_med_us": 14745.011, "exists_cold_us": 3406.78, "exists_warm_med_us": 1692.633, "exists_warm_p10_us": 1581.798, "exists_warm_p90_us": 1929.946, "exists_engine_med_us": 1733.869, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_medium_mixed", "threads": 1, "count": 9901, "exists": true, "count_cold_us": 27592.097, "count_warm_med_us": 27575.353, "count_warm_p10_us": 26171.446, "count_warm_p90_us": 29242.31, "count_engine_med_us": 28051.768, "exists_cold_us": 2416.416, "exists_warm_med_us": 1012.835, "exists_warm_p10_us": 960.249, "exists_warm_p90_us": 1305.44, "exists_engine_med_us": 1059.963, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k8_large_mixed", "threads": 1, "count": 500157, "exists": true, "count_cold_us": 68844.088, "count_warm_med_us": 74454.825, "count_warm_p10_us": 70365.371, "count_warm_p90_us": 97094.385, "count_engine_med_us": 75137.697, "exists_cold_us": 2708.76, "exists_warm_med_us": 1078.064, "exists_warm_p10_us": 1031.732, "exists_warm_p90_us": 1164.504, "exists_engine_med_us": 1167.654, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_tiny_and", "threads": 1, "count": 45, "exists": true, "count_cold_us": 16202.592, "count_warm_med_us": 15133.874, "count_warm_p10_us": 14374.722, "count_warm_p90_us": 19165.231, "count_engine_med_us": 20282.867, "exists_cold_us": 5610.741, "exists_warm_med_us": 2743.646, "exists_warm_p10_us": 2577.949, "exists_warm_p90_us": 2852.861, "exists_engine_med_us": 2885.269, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_medium_and", "threads": 1, "count": 9754, "exists": true, "count_cold_us": 25486.78, "count_warm_med_us": 17023.66, "count_warm_p10_us": 15979.292, "count_warm_p90_us": 23307.744, "count_engine_med_us": 15953.307, "exists_cold_us": 2747.474, "exists_warm_med_us": 1162.258, "exists_warm_p10_us": 1130.052, "exists_warm_p90_us": 1217.573, "exists_engine_med_us": 1256.687, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_large_and", "threads": 1, "count": 499819, "exists": true, "count_cold_us": 22168.435, "count_warm_med_us": 20204.788, "count_warm_p10_us": 19763.982, "count_warm_p90_us": 20634.618, "count_engine_med_us": 20222.754, "exists_cold_us": 2873.398, "exists_warm_med_us": 1175.414, "exists_warm_p10_us": 1135.837, "exists_warm_p90_us": 1229.116, "exists_engine_med_us": 1276.66, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_tiny_or", "threads": 1, "count": 1000, "exists": true, "count_cold_us": 7369.699, "count_warm_med_us": 4772.097, "count_warm_p10_us": 4656.188, "count_warm_p90_us": 5127.916, "count_engine_med_us": 5143.049, "exists_cold_us": 2540.492, "exists_warm_med_us": 1062.784, "exists_warm_p10_us": 1018.665, "exists_warm_p90_us": 1117.372, "exists_engine_med_us": 1092.258, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_medium_or", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 23230.197, "count_warm_med_us": 22157.313, "count_warm_p10_us": 21868.098, "count_warm_p90_us": 22501.192, "count_engine_med_us": 22382.752, "exists_cold_us": 3032.605, "exists_warm_med_us": 1163.192, "exists_warm_p10_us": 1131.756, "exists_warm_p90_us": 1234.55, "exists_engine_med_us": 1303.469, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_large_or", "threads": 1, "count": 505114, "exists": true, "count_cold_us": 47711.883, "count_warm_med_us": 46298.771, "count_warm_p10_us": 45491.27, "count_warm_p90_us": 51725.46, "count_engine_med_us": 55727.066, "exists_cold_us": 4926.418, "exists_warm_med_us": 1836.948, "exists_warm_p10_us": 1671.241, "exists_warm_p90_us": 1981.891, "exists_engine_med_us": 1954.071, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_tiny_mixed", "threads": 1, "count": 46, "exists": true, "count_cold_us": 24675.944, "count_warm_med_us": 14384.487, "count_warm_p10_us": 13272.878, "count_warm_p90_us": 16296.74, "count_engine_med_us": 14225.721, "exists_cold_us": 3785.414, "exists_warm_med_us": 2724.867, "exists_warm_p10_us": 2040.199, "exists_warm_p90_us": 2854.447, "exists_engine_med_us": 2929.972, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_medium_mixed", "threads": 1, "count": 10098, "exists": true, "count_cold_us": 39410.82, "count_warm_med_us": 32478.567, "count_warm_p10_us": 29958.474, "count_warm_p90_us": 53496.706, "count_engine_med_us": 31778.696, "exists_cold_us": 3258.594, "exists_warm_med_us": 1307.972, "exists_warm_p10_us": 1239.962, "exists_warm_p90_us": 1407.918, "exists_engine_med_us": 1441.465, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k17_large_mixed", "threads": 1, "count": 498269, "exists": true, "count_cold_us": 142454.265, "count_warm_med_us": 139929.269, "count_warm_p10_us": 134117.766, "count_warm_p90_us": 158886.723, "count_engine_med_us": 137801.093, "exists_cold_us": 3647.101, "exists_warm_med_us": 1552.611, "exists_warm_p10_us": 1489.89, "exists_warm_p90_us": 1769.508, "exists_engine_med_us": 1686.952, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_tiny_and", "threads": 1, "count": 50, "exists": true, "count_cold_us": 17641.321, "count_warm_med_us": 14418.189, "count_warm_p10_us": 13936.973, "count_warm_p90_us": 18710.458, "count_engine_med_us": 14223.188, "exists_cold_us": 3650.751, "exists_warm_med_us": 1653.497, "exists_warm_p10_us": 1543.602, "exists_warm_p90_us": 1767.134, "exists_engine_med_us": 1790.24, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_medium_and", "threads": 1, "count": 9900, "exists": true, "count_cold_us": 21216.388, "count_warm_med_us": 21674.499, "count_warm_p10_us": 19298.841, "count_warm_p90_us": 27764.023, "count_engine_med_us": 26902.611, "exists_cold_us": 5445.38, "exists_warm_med_us": 1422.526, "exists_warm_p10_us": 1325.954, "exists_warm_p90_us": 1700.82, "exists_engine_med_us": 1493.422, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_large_and", "threads": 1, "count": 502071, "exists": true, "count_cold_us": 25831.832, "count_warm_med_us": 25627.766, "count_warm_p10_us": 24582.431, "count_warm_p90_us": 28365.457, "count_engine_med_us": 25956.963, "exists_cold_us": 3650.659, "exists_warm_med_us": 1403.908, "exists_warm_p10_us": 1346.015, "exists_warm_p90_us": 1530.948, "exists_engine_med_us": 1557.699, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_tiny_or", "threads": 1, "count": 1001, "exists": true, "count_cold_us": 8322.418, "count_warm_med_us": 5061.799, "count_warm_p10_us": 4852.95, "count_warm_p90_us": 5657.831, "count_engine_med_us": 5118.637, "exists_cold_us": 2915.999, "exists_warm_med_us": 1249.935, "exists_warm_p10_us": 1183.317, "exists_warm_p90_us": 1430.973, "exists_engine_med_us": 1279.631, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_medium_or", "threads": 1, "count": 9995, "exists": true, "count_cold_us": 25718.424, "count_warm_med_us": 23987.106, "count_warm_p10_us": 23126.553, "count_warm_p90_us": 25852.548, "count_engine_med_us": 24625.849, "exists_cold_us": 3275.745, "exists_warm_med_us": 1328.44, "exists_warm_p10_us": 1267.951, "exists_warm_p90_us": 1438.991, "exists_engine_med_us": 1471.951, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_large_or", "threads": 1, "count": 495651, "exists": true, "count_cold_us": 54881.129, "count_warm_med_us": 54222.904, "count_warm_p10_us": 53622.71, "count_warm_p90_us": 55982.012, "count_engine_med_us": 81416.402, "exists_cold_us": 6229.084, "exists_warm_med_us": 2195.592, "exists_warm_p10_us": 2084.728, "exists_warm_p90_us": 2528.694, "exists_engine_med_us": 2425.142, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_tiny_mixed", "threads": 1, "count": 48, "exists": true, "count_cold_us": 123521.158, "count_warm_med_us": 77685.022, "count_warm_p10_us": 72891.08, "count_warm_p90_us": 102411.137, "count_engine_med_us": 74593.209, "exists_cold_us": 4258.935, "exists_warm_med_us": 1816.249, "exists_warm_p10_us": 1717.845, "exists_warm_p90_us": 2018.048, "exists_engine_med_us": 2741.898, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_medium_mixed", "threads": 1, "count": 9953, "exists": true, "count_cold_us": 131059.566, "count_warm_med_us": 105626.418, "count_warm_p10_us": 99976.015, "count_warm_p90_us": 116641.335, "count_engine_med_us": 102196.236, "exists_cold_us": 4111.142, "exists_warm_med_us": 1680.779, "exists_warm_p10_us": 1596.774, "exists_warm_p90_us": 1792.727, "exists_engine_med_us": 1730.832, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k24_large_mixed", "threads": 1, "count": 500471, "exists": true, "count_cold_us": 209853.379, "count_warm_med_us": 210186.662, "count_warm_p10_us": 197581.16, "count_warm_p90_us": 234217.23, "count_engine_med_us": 206403.2, "exists_cold_us": 4406.125, "exists_warm_med_us": 2679.321, "exists_warm_p10_us": 1943.773, "exists_warm_p90_us": 3062.055, "exists_engine_med_us": 2770.185, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_one_everything", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 3034.182, "count_warm_med_us": 1736.448, "count_warm_p10_us": 1659.073, "count_warm_p90_us": 1935.356, "count_engine_med_us": 1791.541, "exists_cold_us": 1478.856, "exists_warm_med_us": 629.836, "exists_warm_p10_us": 566.683, "exists_warm_p90_us": 701.735, "exists_engine_med_us": 748.566, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_one_nothing", "threads": 1, "count": 1002, "exists": true, "count_cold_us": 3788.993, "count_warm_med_us": 3253.244, "count_warm_p10_us": 2534.098, "count_warm_p90_us": 3774.961, "count_engine_med_us": 3392.335, "exists_cold_us": 2286.797, "exists_warm_med_us": 913.852, "exists_warm_p10_us": 865.013, "exists_warm_p90_us": 1002.148, "exists_engine_med_us": 820.601, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_or_one_everything", "threads": 1, "count": 1000000, "exists": true, "count_cold_us": 1262.123, "count_warm_med_us": 568.531, "count_warm_p10_us": 498.743, "count_warm_p90_us": 719.076, "count_engine_med_us": null, "exists_cold_us": 1937.927, "exists_warm_med_us": 635.29, "exists_warm_p10_us": 558.798, "exists_warm_p90_us": 775.435, "exists_engine_med_us": 963.684, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_or_one_nothing", "threads": 1, "count": 1000, "exists": true, "count_cold_us": 4059.881, "count_warm_med_us": 2203.604, "count_warm_p10_us": 2115.246, "count_warm_p90_us": 2545.933, "count_engine_med_us": 2167.889, "exists_cold_us": 1465.336, "exists_warm_med_us": 637.66, "exists_warm_p10_us": 597.412, "exists_warm_p90_us": 740.77, "exists_engine_med_us": 741.717, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_16_nonselective", "threads": 1, "count": 827152, "exists": true, "count_cold_us": 23302.189, "count_warm_med_us": 21284.303, "count_warm_p10_us": 20601.012, "count_warm_p90_us": 24906.072, "count_engine_med_us": 29563.096, "exists_cold_us": 4501.747, "exists_warm_med_us": 1162.091, "exists_warm_p10_us": 1108.71, "exists_warm_p90_us": 1373.85, "exists_engine_med_us": 1254.943, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_16_collapse_one", "threads": 1, "count": 46, "exists": true, "count_cold_us": 9459.374, "count_warm_med_us": 6147.6, "count_warm_p10_us": 5905.801, "count_warm_p90_us": 6747.282, "count_engine_med_us": 6055.354, "exists_cold_us": 2764.82, "exists_warm_med_us": 1327.042, "exists_warm_p10_us": 1272.855, "exists_warm_p90_us": 1419.722, "exists_engine_med_us": 1441.89, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_correlated_2", "threads": 1, "count": 500001, "exists": true, "count_cold_us": 3911.092, "count_warm_med_us": 2401.495, "count_warm_p10_us": 2310.692, "count_warm_p90_us": 3189.221, "count_engine_med_us": 2445.337, "exists_cold_us": 1500.974, "exists_warm_med_us": 598.06, "exists_warm_p10_us": 555.788, "exists_warm_p90_us": 652.864, "exists_engine_med_us": 681.895, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_correlated_5", "threads": 1, "count": 490001, "exists": true, "count_cold_us": 3959.837, "count_warm_med_us": 2414.168, "count_warm_p10_us": 2346.142, "count_warm_p90_us": 2572.887, "count_engine_med_us": 2578.969, "exists_cold_us": 1650.402, "exists_warm_med_us": 652.238, "exists_warm_p10_us": 606.425, "exists_warm_p90_us": 728.564, "exists_engine_med_us": 765.972, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_contradictory_2", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1072.203, "count_warm_med_us": 349.842, "count_warm_p10_us": 303.266, "count_warm_p90_us": 407.16, "count_engine_med_us": 492.805, "exists_cold_us": 1251.658, "exists_warm_med_us": 464.347, "exists_warm_p10_us": 404.765, "exists_warm_p90_us": 564.221, "exists_engine_med_us": 568.654, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "adv_contradictory_17", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2091.671, "count_warm_med_us": 602.046, "count_warm_p10_us": 548.46, "count_warm_p90_us": 718.82, "count_engine_med_us": 701.824, "exists_cold_us": 2023.746, "exists_warm_med_us": 740.08, "exists_warm_p10_us": 689.568, "exists_warm_p90_us": 869.389, "exists_engine_med_us": 828.795, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "null_and", "threads": 1, "count": 99875, "exists": true, "count_cold_us": 5474.963, "count_warm_med_us": 2862.637, "count_warm_p10_us": 2786.077, "count_warm_p90_us": 3162.635, "count_engine_med_us": 3037.276, "exists_cold_us": 1588.523, "exists_warm_med_us": 679.676, "exists_warm_p10_us": 596.754, "exists_warm_p90_us": 811.967, "exists_engine_med_us": 714.659, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "null_not", "threads": 1, "count": 450007, "exists": true, "count_cold_us": 3099.19, "count_warm_med_us": 2189.983, "count_warm_p10_us": 2113.491, "count_warm_p90_us": 2367.238, "count_engine_med_us": 2244.78, "exists_cold_us": 1335.75, "exists_warm_med_us": 570.477, "exists_warm_p10_us": 530.092, "exists_warm_p90_us": 655.469, "exists_engine_med_us": 673.707, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "null_or", "threads": 1, "count": 190006, "exists": true, "count_cold_us": 10721.345, "count_warm_med_us": 9313.864, "count_warm_p10_us": 8953.027, "count_warm_p90_us": 10159.407, "count_engine_med_us": 9174.331, "exists_cold_us": 1482.311, "exists_warm_med_us": 662.509, "exists_warm_p10_us": 604.777, "exists_warm_p90_us": 718.458, "exists_engine_med_us": 736.322, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "null_not_and", "threads": 1, "count": 850017, "exists": true, "count_cold_us": 26742.237, "count_warm_med_us": 26557.319, "count_warm_p10_us": 26172.274, "count_warm_p90_us": 27141.901, "count_engine_med_us": 27339.153, "exists_cold_us": 1781.198, "exists_warm_med_us": 731.315, "exists_warm_p10_us": 706.061, "exists_warm_p90_us": 812.344, "exists_engine_med_us": 798.048, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "null_and_5", "threads": 1, "count": 267454, "exists": true, "count_cold_us": 7590.344, "count_warm_med_us": 4991.545, "count_warm_p10_us": 4890.714, "count_warm_p90_us": 5216.832, "count_engine_med_us": 5394.244, "exists_cold_us": 1811.56, "exists_warm_med_us": 802.284, "exists_warm_p10_us": 729.042, "exists_warm_p90_us": 907.866, "exists_engine_med_us": 838.597, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 105.69}, -{"id": "k1_tiny_single", "threads": 4, "count": 1000, "exists": true, "count_cold_us": 2051.446, "count_warm_med_us": 1139.302, "count_warm_p10_us": 1047.484, "count_warm_p90_us": 1222.874, "count_engine_med_us": 1264.418, "exists_cold_us": 1814.257, "exists_warm_med_us": 927.862, "exists_warm_p10_us": 828.252, "exists_warm_p90_us": 1064.624, "exists_engine_med_us": 1001.866, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k1_medium_single", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 2089.718, "count_warm_med_us": 1194.581, "count_warm_p10_us": 1085.681, "count_warm_p90_us": 1294.614, "count_engine_med_us": 1195.199, "exists_cold_us": 1760.333, "exists_warm_med_us": 875.089, "exists_warm_p10_us": 807.288, "exists_warm_p90_us": 940.238, "exists_engine_med_us": 979.626, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k1_large_single", "threads": 4, "count": 500005, "exists": true, "count_cold_us": 2235.404, "count_warm_med_us": 1018.219, "count_warm_p10_us": 936.083, "count_warm_p90_us": 1232.827, "count_engine_med_us": 1065.453, "exists_cold_us": 1620.918, "exists_warm_med_us": 967.318, "exists_warm_p10_us": 877.973, "exists_warm_p90_us": 1057.094, "exists_engine_med_us": 1040.404, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_tiny_and", "threads": 4, "count": 765, "exists": true, "count_cold_us": 3195.431, "count_warm_med_us": 1775.709, "count_warm_p10_us": 1688.38, "count_warm_p90_us": 1957.75, "count_engine_med_us": 1627.183, "exists_cold_us": 1957.465, "exists_warm_med_us": 1010.927, "exists_warm_p10_us": 954.17, "exists_warm_p90_us": 1130.881, "exists_engine_med_us": 1094.858, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_medium_and", "threads": 4, "count": 10139, "exists": true, "count_cold_us": 2807.626, "count_warm_med_us": 1711.584, "count_warm_p10_us": 1520.262, "count_warm_p90_us": 1892.006, "count_engine_med_us": 1854.879, "exists_cold_us": 2689.931, "exists_warm_med_us": 1328.67, "exists_warm_p10_us": 1220.539, "exists_warm_p90_us": 1416.199, "exists_engine_med_us": 1095.426, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_large_and", "threads": 4, "count": 499628, "exists": true, "count_cold_us": 3105.366, "count_warm_med_us": 1989.321, "count_warm_p10_us": 1543.828, "count_warm_p90_us": 2190.608, "count_engine_med_us": 2067.779, "exists_cold_us": 2237.78, "exists_warm_med_us": 1078.591, "exists_warm_p10_us": 1008.038, "exists_warm_p90_us": 1144.278, "exists_engine_med_us": 1187.228, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_tiny_or", "threads": 4, "count": 999, "exists": true, "count_cold_us": 2730.076, "count_warm_med_us": 1615.276, "count_warm_p10_us": 1494.063, "count_warm_p90_us": 1791.116, "count_engine_med_us": 1660.12, "exists_cold_us": 2107.772, "exists_warm_med_us": 1073.628, "exists_warm_p10_us": 1030.014, "exists_warm_p90_us": 1144.556, "exists_engine_med_us": 1271.973, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_medium_or", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 4434.174, "count_warm_med_us": 3302.192, "count_warm_p10_us": 3153.088, "count_warm_p90_us": 3696.75, "count_engine_med_us": 3247.238, "exists_cold_us": 2101.432, "exists_warm_med_us": 1109.456, "exists_warm_p10_us": 1001.397, "exists_warm_p90_us": 1383.876, "exists_engine_med_us": 1547.226, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_large_or", "threads": 4, "count": 500615, "exists": true, "count_cold_us": 8795.092, "count_warm_med_us": 7746.15, "count_warm_p10_us": 7482.265, "count_warm_p90_us": 7968.991, "count_engine_med_us": 7614.983, "exists_cold_us": 2801.644, "exists_warm_med_us": 1427.287, "exists_warm_p10_us": 1344.996, "exists_warm_p90_us": 1544.828, "exists_engine_med_us": 1516.904, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_tiny_mixed", "threads": 4, "count": 428, "exists": true, "count_cold_us": 3923.748, "count_warm_med_us": 2406.544, "count_warm_p10_us": 2317.715, "count_warm_p90_us": 2574.692, "count_engine_med_us": 2385.183, "exists_cold_us": 2072.512, "exists_warm_med_us": 1093.364, "exists_warm_p10_us": 1040.778, "exists_warm_p90_us": 1166.52, "exists_engine_med_us": 1321.461, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_medium_mixed", "threads": 4, "count": 9819, "exists": true, "count_cold_us": 3839.905, "count_warm_med_us": 2341.783, "count_warm_p10_us": 2229.363, "count_warm_p90_us": 2506.224, "count_engine_med_us": 2395.295, "exists_cold_us": 2333.16, "exists_warm_med_us": 1109.859, "exists_warm_p10_us": 1026.468, "exists_warm_p90_us": 1245.635, "exists_engine_med_us": 1182.935, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k3_large_mixed", "threads": 4, "count": 499424, "exists": true, "count_cold_us": 7204.736, "count_warm_med_us": 6041.18, "count_warm_p10_us": 4763.863, "count_warm_p90_us": 6222.741, "count_engine_med_us": 6048.111, "exists_cold_us": 2104.018, "exists_warm_med_us": 1085.521, "exists_warm_p10_us": 1008.872, "exists_warm_p90_us": 1141.359, "exists_engine_med_us": 1212.161, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_tiny_and", "threads": 4, "count": 46, "exists": true, "count_cold_us": 4280.941, "count_warm_med_us": 2556.513, "count_warm_p10_us": 2399.973, "count_warm_p90_us": 2675.363, "count_engine_med_us": 2602.181, "exists_cold_us": 2645.51, "exists_warm_med_us": 1608.903, "exists_warm_p10_us": 1484.047, "exists_warm_p90_us": 1853.389, "exists_engine_med_us": 1672.461, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_medium_and", "threads": 4, "count": 10097, "exists": true, "count_cold_us": 5027.646, "count_warm_med_us": 3211.493, "count_warm_p10_us": 2994.026, "count_warm_p90_us": 3527.366, "count_engine_med_us": 3379.622, "exists_cold_us": 2473.372, "exists_warm_med_us": 1232.362, "exists_warm_p10_us": 1131.308, "exists_warm_p90_us": 1443.902, "exists_engine_med_us": 1378.106, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_large_and", "threads": 4, "count": 498124, "exists": true, "count_cold_us": 5572.477, "count_warm_med_us": 3575.619, "count_warm_p10_us": 2844.698, "count_warm_p90_us": 4011.171, "count_engine_med_us": 3563.639, "exists_cold_us": 2888.924, "exists_warm_med_us": 1244.84, "exists_warm_p10_us": 1157.03, "exists_warm_p90_us": 1343.834, "exists_engine_med_us": 1392.66, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_tiny_or", "threads": 4, "count": 999, "exists": true, "count_cold_us": 4309.99, "count_warm_med_us": 2206.007, "count_warm_p10_us": 2022.095, "count_warm_p90_us": 2511.203, "count_engine_med_us": 2246.272, "exists_cold_us": 2421.226, "exists_warm_med_us": 1314.814, "exists_warm_p10_us": 1155.73, "exists_warm_p90_us": 1529.093, "exists_engine_med_us": 1563.59, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_medium_or", "threads": 4, "count": 9997, "exists": true, "count_cold_us": 9644.462, "count_warm_med_us": 7392.779, "count_warm_p10_us": 6823.181, "count_warm_p90_us": 7643.443, "count_engine_med_us": 6884.187, "exists_cold_us": 2606.072, "exists_warm_med_us": 1253.41, "exists_warm_p10_us": 1134.624, "exists_warm_p90_us": 1444.511, "exists_engine_med_us": 1388.4, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_large_or", "threads": 4, "count": 498831, "exists": true, "count_cold_us": 12006.155, "count_warm_med_us": 10587.485, "count_warm_p10_us": 8223.412, "count_warm_p90_us": 11633.76, "count_engine_med_us": 10985.822, "exists_cold_us": 2504.608, "exists_warm_med_us": 1334.602, "exists_warm_p10_us": 1267.497, "exists_warm_p90_us": 1488.594, "exists_engine_med_us": 1473.929, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_tiny_mixed", "threads": 4, "count": 91, "exists": true, "count_cold_us": 7968.694, "count_warm_med_us": 6487.266, "count_warm_p10_us": 4581.427, "count_warm_p90_us": 6857.16, "count_engine_med_us": 4835.117, "exists_cold_us": 6122.52, "exists_warm_med_us": 2416.905, "exists_warm_p10_us": 2224.268, "exists_warm_p90_us": 2900.962, "exists_engine_med_us": 3100.147, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_medium_mixed", "threads": 4, "count": 9901, "exists": true, "count_cold_us": 14334.661, "count_warm_med_us": 10984.387, "count_warm_p10_us": 9385.988, "count_warm_p90_us": 11914.26, "count_engine_med_us": 11573.364, "exists_cold_us": 2824.801, "exists_warm_med_us": 1398.743, "exists_warm_p10_us": 1286.367, "exists_warm_p90_us": 1768.929, "exists_engine_med_us": 1399.969, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k8_large_mixed", "threads": 4, "count": 500157, "exists": true, "count_cold_us": 21671.676, "count_warm_med_us": 26765.531, "count_warm_p10_us": 21639.71, "count_warm_p90_us": 27992.222, "count_engine_med_us": 27626.252, "exists_cold_us": 3364.576, "exists_warm_med_us": 1583.201, "exists_warm_p10_us": 1433.349, "exists_warm_p90_us": 1908.026, "exists_engine_med_us": 1809.757, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_tiny_and", "threads": 4, "count": 45, "exists": true, "count_cold_us": 8819.918, "count_warm_med_us": 5477.55, "count_warm_p10_us": 4989.976, "count_warm_p90_us": 7065.617, "count_engine_med_us": 5054.952, "exists_cold_us": 4590.027, "exists_warm_med_us": 2799.713, "exists_warm_p10_us": 2592.24, "exists_warm_p90_us": 3296.993, "exists_engine_med_us": 3688.541, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_medium_and", "threads": 4, "count": 9754, "exists": true, "count_cold_us": 9762.722, "count_warm_med_us": 7021.685, "count_warm_p10_us": 6561.543, "count_warm_p90_us": 8643.787, "count_engine_med_us": 6300.369, "exists_cold_us": 3214.666, "exists_warm_med_us": 1972.197, "exists_warm_p10_us": 1566.449, "exists_warm_p90_us": 2584.399, "exists_engine_med_us": 2577.064, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_large_and", "threads": 4, "count": 499819, "exists": true, "count_cold_us": 12377.317, "count_warm_med_us": 9519.303, "count_warm_p10_us": 8655.784, "count_warm_p90_us": 10377.119, "count_engine_med_us": 8798.607, "exists_cold_us": 4590.415, "exists_warm_med_us": 2216.522, "exists_warm_p10_us": 2098.891, "exists_warm_p90_us": 2523.831, "exists_engine_med_us": 2597.633, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_tiny_or", "threads": 4, "count": 1000, "exists": true, "count_cold_us": 6267.727, "count_warm_med_us": 3657.177, "count_warm_p10_us": 3421.061, "count_warm_p90_us": 4938.33, "count_engine_med_us": 3620.673, "exists_cold_us": 5632.256, "exists_warm_med_us": 2005.934, "exists_warm_p10_us": 1937.813, "exists_warm_p90_us": 2287.978, "exists_engine_med_us": 2058.107, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_medium_or", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 12281.654, "count_warm_med_us": 9796.78, "count_warm_p10_us": 8676.409, "count_warm_p90_us": 10790.623, "count_engine_med_us": 9902.796, "exists_cold_us": 3459.617, "exists_warm_med_us": 1761.301, "exists_warm_p10_us": 1623.266, "exists_warm_p90_us": 1932.543, "exists_engine_med_us": 1806.484, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_large_or", "threads": 4, "count": 505114, "exists": true, "count_cold_us": 21666.706, "count_warm_med_us": 17303.52, "count_warm_p10_us": 16878.824, "count_warm_p90_us": 18495.066, "count_engine_med_us": 17122.599, "exists_cold_us": 4903.486, "exists_warm_med_us": 2216.949, "exists_warm_p10_us": 1622.52, "exists_warm_p90_us": 2419.524, "exists_engine_med_us": 2124.395, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_tiny_mixed", "threads": 4, "count": 46, "exists": true, "count_cold_us": 9872.719, "count_warm_med_us": 7023.065, "count_warm_p10_us": 6287.103, "count_warm_p90_us": 8149.885, "count_engine_med_us": 6161.872, "exists_cold_us": 5047.583, "exists_warm_med_us": 3655.084, "exists_warm_p10_us": 3433.44, "exists_warm_p90_us": 3915.402, "exists_engine_med_us": 3950.334, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_medium_mixed", "threads": 4, "count": 10098, "exists": true, "count_cold_us": 18719.016, "count_warm_med_us": 14138.304, "count_warm_p10_us": 13829.172, "count_warm_p90_us": 14914.045, "count_engine_med_us": 14204.142, "exists_cold_us": 4937.422, "exists_warm_med_us": 2318.785, "exists_warm_p10_us": 2198.599, "exists_warm_p90_us": 2533.356, "exists_engine_med_us": 2621.008, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k17_large_mixed", "threads": 4, "count": 498269, "exists": true, "count_cold_us": 51542.012, "count_warm_med_us": 49926.059, "count_warm_p10_us": 48174.95, "count_warm_p90_us": 56547.522, "count_engine_med_us": 50849.168, "exists_cold_us": 5690.108, "exists_warm_med_us": 2620.329, "exists_warm_p10_us": 2475.016, "exists_warm_p90_us": 2921.692, "exists_engine_med_us": 3027.899, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_tiny_and", "threads": 4, "count": 50, "exists": true, "count_cold_us": 9855.396, "count_warm_med_us": 5905.005, "count_warm_p10_us": 5375.902, "count_warm_p90_us": 10158.997, "count_engine_med_us": 5666.52, "exists_cold_us": 4366.262, "exists_warm_med_us": 2537.192, "exists_warm_p10_us": 2319.647, "exists_warm_p90_us": 3188.604, "exists_engine_med_us": 3246.641, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_medium_and", "threads": 4, "count": 9900, "exists": true, "count_cold_us": 10986.547, "count_warm_med_us": 7744.652, "count_warm_p10_us": 7393.937, "count_warm_p90_us": 8614.399, "count_engine_med_us": 7598.147, "exists_cold_us": 5072.367, "exists_warm_med_us": 2176.174, "exists_warm_p10_us": 1812.541, "exists_warm_p90_us": 2311.61, "exists_engine_med_us": 2481.376, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_large_and", "threads": 4, "count": 502071, "exists": true, "count_cold_us": 14038.655, "count_warm_med_us": 9555.74, "count_warm_p10_us": 7193.646, "count_warm_p90_us": 10101.339, "count_engine_med_us": 10058.713, "exists_cold_us": 5566.84, "exists_warm_med_us": 1778.967, "exists_warm_p10_us": 1693.291, "exists_warm_p90_us": 1917.273, "exists_engine_med_us": 2206.866, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_tiny_or", "threads": 4, "count": 1001, "exists": true, "count_cold_us": 5672.704, "count_warm_med_us": 2949.728, "count_warm_p10_us": 2604.039, "count_warm_p90_us": 3274.655, "count_engine_med_us": 2996.862, "exists_cold_us": 3642.819, "exists_warm_med_us": 1687.655, "exists_warm_p10_us": 1521.063, "exists_warm_p90_us": 2193.047, "exists_engine_med_us": 1761.785, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_medium_or", "threads": 4, "count": 9995, "exists": true, "count_cold_us": 9039.662, "count_warm_med_us": 9341.259, "count_warm_p10_us": 7106.886, "count_warm_p90_us": 10163.595, "count_engine_med_us": 10687.128, "exists_cold_us": 4468.585, "exists_warm_med_us": 2293.076, "exists_warm_p10_us": 1936.69, "exists_warm_p90_us": 2550.824, "exists_engine_med_us": 2755.063, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_large_or", "threads": 4, "count": 495651, "exists": true, "count_cold_us": 26899.539, "count_warm_med_us": 21958.256, "count_warm_p10_us": 20359.569, "count_warm_p90_us": 22650.281, "count_engine_med_us": 18904.639, "exists_cold_us": 3763.181, "exists_warm_med_us": 1900.782, "exists_warm_p10_us": 1747.663, "exists_warm_p90_us": 2181.572, "exists_engine_med_us": 2090.671, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_tiny_mixed", "threads": 4, "count": 48, "exists": true, "count_cold_us": 29599.811, "count_warm_med_us": 26730.067, "count_warm_p10_us": 21494.266, "count_warm_p90_us": 28035.429, "count_engine_med_us": 25867.293, "exists_cold_us": 9944.342, "exists_warm_med_us": 7325.527, "exists_warm_p10_us": 6987.066, "exists_warm_p90_us": 8121.114, "exists_engine_med_us": 7301.483, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_medium_mixed", "threads": 4, "count": 9953, "exists": true, "count_cold_us": 34308.71, "count_warm_med_us": 36972.941, "count_warm_p10_us": 30342.041, "count_warm_p90_us": 43247.439, "count_engine_med_us": 38432.194, "exists_cold_us": 4593.083, "exists_warm_med_us": 2156.431, "exists_warm_p10_us": 2023.361, "exists_warm_p90_us": 2294.316, "exists_engine_med_us": 2390.522, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "k24_large_mixed", "threads": 4, "count": 500471, "exists": true, "count_cold_us": 57369.452, "count_warm_med_us": 60307.553, "count_warm_p10_us": 53321.716, "count_warm_p90_us": 70663.219, "count_engine_med_us": 66207.072, "exists_cold_us": 5078.141, "exists_warm_med_us": 2320.693, "exists_warm_p10_us": 2161.587, "exists_warm_p90_us": 2651.245, "exists_engine_med_us": 2277.31, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_one_everything", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 2194.826, "count_warm_med_us": 1192.516, "count_warm_p10_us": 1102.167, "count_warm_p90_us": 1310.747, "count_engine_med_us": 1300.108, "exists_cold_us": 1881.187, "exists_warm_med_us": 994.064, "exists_warm_p10_us": 941.687, "exists_warm_p90_us": 1114.521, "exists_engine_med_us": 1060.978, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_one_nothing", "threads": 4, "count": 1002, "exists": true, "count_cold_us": 3063.021, "count_warm_med_us": 1669.456, "count_warm_p10_us": 1571.144, "count_warm_p90_us": 1822.994, "count_engine_med_us": 1835.651, "exists_cold_us": 1923.263, "exists_warm_med_us": 1048.372, "exists_warm_p10_us": 921.967, "exists_warm_p90_us": 1378.58, "exists_engine_med_us": 1363.327, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_or_one_everything", "threads": 4, "count": 1000000, "exists": true, "count_cold_us": 2127.866, "count_warm_med_us": 714.926, "count_warm_p10_us": 583.568, "count_warm_p90_us": 1277.241, "count_engine_med_us": null, "exists_cold_us": 2717.184, "exists_warm_med_us": 802.745, "exists_warm_p10_us": 737.677, "exists_warm_p90_us": 963.016, "exists_engine_med_us": 996.882, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_or_one_nothing", "threads": 4, "count": 1000, "exists": true, "count_cold_us": 2637.15, "count_warm_med_us": 1582.298, "count_warm_p10_us": 1375.38, "count_warm_p90_us": 1687.622, "count_engine_med_us": 1662.749, "exists_cold_us": 1912.519, "exists_warm_med_us": 973.994, "exists_warm_p10_us": 877.207, "exists_warm_p90_us": 1100.177, "exists_engine_med_us": 1118.753, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_16_nonselective", "threads": 4, "count": 827152, "exists": true, "count_cold_us": 10327.381, "count_warm_med_us": 7983.685, "count_warm_p10_us": 7487.063, "count_warm_p90_us": 8781.882, "count_engine_med_us": 7986.808, "exists_cold_us": 3597.36, "exists_warm_med_us": 1664.948, "exists_warm_p10_us": 1568.237, "exists_warm_p90_us": 1878.976, "exists_engine_med_us": 1793.336, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_16_collapse_one", "threads": 4, "count": 46, "exists": true, "count_cold_us": 5901.165, "count_warm_med_us": 3516.848, "count_warm_p10_us": 3371.847, "count_warm_p90_us": 3765.41, "count_engine_med_us": 3556.431, "exists_cold_us": 3679.681, "exists_warm_med_us": 2077.584, "exists_warm_p10_us": 1928.684, "exists_warm_p90_us": 2220.755, "exists_engine_med_us": 2180.09, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_correlated_2", "threads": 4, "count": 500001, "exists": true, "count_cold_us": 2564.117, "count_warm_med_us": 1566.666, "count_warm_p10_us": 1392.653, "count_warm_p90_us": 1758.922, "count_engine_med_us": 1488.697, "exists_cold_us": 1840.03, "exists_warm_med_us": 986.09, "exists_warm_p10_us": 919.789, "exists_warm_p90_us": 1061.513, "exists_engine_med_us": 1180.559, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_correlated_5", "threads": 4, "count": 490001, "exists": true, "count_cold_us": 2698.497, "count_warm_med_us": 1658.935, "count_warm_p10_us": 1528.551, "count_warm_p90_us": 1775.477, "count_engine_med_us": 1662.861, "exists_cold_us": 2737.458, "exists_warm_med_us": 1049.784, "exists_warm_p10_us": 960.2, "exists_warm_p90_us": 1207.568, "exists_engine_med_us": 1156.534, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_contradictory_2", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1487.956, "count_warm_med_us": 554.68, "count_warm_p10_us": 480.254, "count_warm_p90_us": 638.74, "count_engine_med_us": 597.595, "exists_cold_us": 1690.194, "exists_warm_med_us": 740.431, "exists_warm_p10_us": 664.818, "exists_warm_p90_us": 808.991, "exists_engine_med_us": 863.718, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "adv_contradictory_17", "threads": 4, "count": 0, "exists": false, "count_cold_us": 3085.611, "count_warm_med_us": 1155.277, "count_warm_p10_us": 743.344, "count_warm_p90_us": 1307.314, "count_engine_med_us": 824.096, "exists_cold_us": 2420.91, "exists_warm_med_us": 985.468, "exists_warm_p10_us": 923.801, "exists_warm_p90_us": 1106.023, "exists_engine_med_us": 989.059, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "null_and", "threads": 4, "count": 99875, "exists": true, "count_cold_us": 2924.824, "count_warm_med_us": 1765.143, "count_warm_p10_us": 1457.853, "count_warm_p90_us": 1955.162, "count_engine_med_us": 1708.561, "exists_cold_us": 1877.747, "exists_warm_med_us": 963.489, "exists_warm_p10_us": 896.82, "exists_warm_p90_us": 1028.814, "exists_engine_med_us": 1062.065, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "null_not", "threads": 4, "count": 450007, "exists": true, "count_cold_us": 2426.254, "count_warm_med_us": 1289.668, "count_warm_p10_us": 1180.428, "count_warm_p90_us": 1423.775, "count_engine_med_us": 1252.45, "exists_cold_us": 1708.295, "exists_warm_med_us": 845.252, "exists_warm_p10_us": 786.49, "exists_warm_p90_us": 930.016, "exists_engine_med_us": 995.635, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "null_or", "threads": 4, "count": 190006, "exists": true, "count_cold_us": 4111.105, "count_warm_med_us": 3894.793, "count_warm_p10_us": 3769.778, "count_warm_p90_us": 4155.265, "count_engine_med_us": 4046.264, "exists_cold_us": 1775.483, "exists_warm_med_us": 1001.545, "exists_warm_p10_us": 915.337, "exists_warm_p90_us": 1077.929, "exists_engine_med_us": 1120.374, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "null_not_and", "threads": 4, "count": 850017, "exists": true, "count_cold_us": 10708.737, "count_warm_med_us": 9881.909, "count_warm_p10_us": 9574.747, "count_warm_p90_us": 10409.391, "count_engine_med_us": 9599.839, "exists_cold_us": 2200.933, "exists_warm_med_us": 1034.653, "exists_warm_p10_us": 963.539, "exists_warm_p90_us": 1181.843, "exists_engine_med_us": 1166.928, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498}, -{"id": "null_and_5", "threads": 4, "count": 267454, "exists": true, "count_cold_us": 3978.5, "count_warm_med_us": 2810.408, "count_warm_p10_us": 2653.619, "count_warm_p90_us": 3018.925, "count_engine_med_us": 2845.055, "exists_cold_us": 2300.549, "exists_warm_med_us": 1117.777, "exists_warm_p10_us": 1049.73, "exists_warm_p90_us": 1300.315, "exists_engine_med_us": 1182.867, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 191.498} -] -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json deleted file mode 100644 index d6fd76904..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n1000000/where_ours.json +++ /dev/null @@ -1,56 +0,0 @@ -{"n":1000000,"records":[ -{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"achieved":1000,"lower_us_plain":0.096,"lower_us_fused":0.109,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":142.475,"any_us":149.164,"rows_us":151.978,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":144.432,"any_us":142.656,"rows_us":146.447,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":146.229,"any_us":145.917,"rows_us":146.104,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":140.593,"any_us":153.005,"rows_us":153.249,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"achieved":10000,"lower_us_plain":0.103,"lower_us_fused":0.108,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":142.396,"any_us":143.408,"rows_us":162.058,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":179.819,"any_us":140.362,"rows_us":146.233,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":138.573,"any_us":141.532,"rows_us":147.403,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":139.694,"any_us":137.906,"rows_us":145.261,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"achieved":500005,"lower_us_plain":0.095,"lower_us_fused":0.108,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":140.492,"any_us":145.239,"rows_us":145.863,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":146.527,"any_us":155.785,"rows_us":152.553,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":146.214,"any_us":161.885,"rows_us":147.989,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":168.114,"any_us":146.048,"rows_us":151.843,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":765,"lower_us_plain":0.284,"lower_us_fused":0.509,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":620.723,"any_us":679.359,"rows_us":674.619,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":590.236,"any_us":597.231,"rows_us":606.841,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":669.758,"any_us":683.152,"rows_us":680.793,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":567.788,"any_us":567.691,"rows_us":597.024,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":10139,"lower_us_plain":0.339,"lower_us_fused":0.694,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":860.912,"any_us":860.814,"rows_us":886.312,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":670.661,"any_us":670.494,"rows_us":649.826,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":597.849,"any_us":625.484,"rows_us":610.020,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":528.709,"any_us":654.537,"rows_us":664.410,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":499628,"lower_us_plain":0.399,"lower_us_fused":0.853,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":842.309,"any_us":803.434,"rows_us":830.350,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":531.396,"any_us":524.514,"rows_us":563.661,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":855.854,"any_us":842.334,"rows_us":872.530,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":716.157,"any_us":595.877,"rows_us":581.802,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":999,"lower_us_plain":0.278,"lower_us_fused":0.568,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":582.334,"any_us":578.220,"rows_us":585.751,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":593.696,"any_us":577.631,"rows_us":587.853,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":583.376,"any_us":580.502,"rows_us":586.415,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":594.552,"any_us":589.445,"rows_us":608.470,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":10000,"lower_us_plain":0.279,"lower_us_fused":0.563,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":596.390,"any_us":587.190,"rows_us":596.106,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":603.649,"any_us":587.263,"rows_us":560.062,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":582.448,"any_us":562.277,"rows_us":572.333,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":557.816,"any_us":547.371,"rows_us":594.254,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":500615,"lower_us_plain":0.281,"lower_us_fused":0.566,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":614.905,"any_us":613.306,"rows_us":541.773,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":629.744,"any_us":625.168,"rows_us":531.240,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":529.721,"any_us":520.304,"rows_us":617.977,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":574.551,"any_us":586.453,"rows_us":574.227,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":428,"lower_us_plain":0.368,"lower_us_fused":0.652,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":603.913,"any_us":594.623,"rows_us":623.011,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":591.360,"any_us":568.131,"rows_us":558.275,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":659.884,"any_us":645.580,"rows_us":643.380,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":547.407,"any_us":546.060,"rows_us":552.248,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":9819,"lower_us_plain":0.367,"lower_us_fused":0.651,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":597.557,"any_us":592.790,"rows_us":584.750,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":571.371,"any_us":533.636,"rows_us":542.679,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":632.577,"any_us":621.595,"rows_us":627.327,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":536.751,"any_us":529.260,"rows_us":543.352,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":499424,"lower_us_plain":0.362,"lower_us_fused":0.645,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":590.558,"any_us":585.155,"rows_us":590.047,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":534.972,"any_us":536.230,"rows_us":535.083,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":623.291,"any_us":627.141,"rows_us":612.182,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":516.121,"any_us":509.302,"rows_us":523.167,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":46,"lower_us_plain":0.526,"lower_us_fused":2.341,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":959.376,"any_us":1384.298,"rows_us":1372.373,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1390.353,"any_us":1382.604,"rows_us":1411.962,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":963.128,"any_us":965.698,"rows_us":964.934,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1368.366,"any_us":1374.458,"rows_us":1372.140,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":10097,"lower_us_plain":0.517,"lower_us_fused":2.376,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1584.021,"any_us":1607.650,"rows_us":1617.724,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1362.289,"any_us":1365.215,"rows_us":1378.747,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1636.350,"any_us":1651.495,"rows_us":1872.024,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1544.685,"any_us":1517.247,"rows_us":1529.974,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":498124,"lower_us_plain":0.629,"lower_us_fused":2.427,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1822.390,"any_us":1794.225,"rows_us":1776.414,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1433.025,"any_us":1425.007,"rows_us":1725.696,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2446.814,"any_us":2478.223,"rows_us":2441.665,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1830.905,"any_us":1790.050,"rows_us":1498.650,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":999,"lower_us_plain":0.506,"lower_us_fused":2.628,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1510.895,"any_us":1573.703,"rows_us":1628.159,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1559.460,"any_us":1604.933,"rows_us":1501.866,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1458.952,"any_us":1422.356,"rows_us":1433.440,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1430.307,"any_us":1473.226,"rows_us":1473.029,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":9997,"lower_us_plain":0.760,"lower_us_fused":4.193,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1540.896,"any_us":1505.955,"rows_us":1519.615,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1530.313,"any_us":1484.508,"rows_us":1521.208,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1567.264,"any_us":1595.718,"rows_us":1633.149,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1600.531,"any_us":1613.604,"rows_us":1574.750,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":498831,"lower_us_plain":0.505,"lower_us_fused":2.610,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1487.066,"any_us":1822.190,"rows_us":1798.728,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1417.108,"any_us":1408.078,"rows_us":1701.435,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1698.579,"any_us":1748.937,"rows_us":1622.290,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1599.135,"any_us":1815.911,"rows_us":1458.234,"runs":[31,31,31],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":91,"lower_us_plain":0.872,"lower_us_fused":2.649,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1570.723,"any_us":1511.079,"rows_us":1778.105,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1763.663,"any_us":1773.472,"rows_us":1816.793,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1429.383,"any_us":1385.647,"rows_us":1394.000,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1459.275,"any_us":1468.665,"rows_us":1705.582,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":9901,"lower_us_plain":0.858,"lower_us_fused":2.608,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1664.232,"any_us":1707.340,"rows_us":1701.358,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1432.976,"any_us":1418.629,"rows_us":1440.935,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1709.108,"any_us":1779.515,"rows_us":1694.657,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1399.038,"any_us":1390.101,"rows_us":1463.298,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":500157,"lower_us_plain":0.850,"lower_us_fused":2.615,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1755.912,"any_us":1854.597,"rows_us":2424.499,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1635.510,"any_us":1631.251,"rows_us":1633.352,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2546.627,"any_us":1836.684,"rows_us":1796.235,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1492.946,"any_us":1528.412,"rows_us":1475.281,"runs":[31,31,31],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":45,"lower_us_plain":1.074,"lower_us_fused":7.439,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4127.696,"any_us":3837.776,"rows_us":3745.547,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3236.443,"any_us":3232.434,"rows_us":3230.910,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3813.248,"any_us":3831.137,"rows_us":3728.591,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2839.273,"any_us":2888.058,"rows_us":2961.885,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":9754,"lower_us_plain":1.063,"lower_us_fused":7.979,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3794.450,"any_us":3840.521,"rows_us":3888.276,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":2956.660,"any_us":2891.104,"rows_us":2873.687,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3522.994,"any_us":3610.258,"rows_us":3576.345,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2909.577,"any_us":2879.278,"rows_us":2909.736,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":499819,"lower_us_plain":1.059,"lower_us_fused":7.438,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3764.521,"any_us":3778.409,"rows_us":3738.392,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3039.213,"any_us":3308.698,"rows_us":3171.592,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3679.477,"any_us":3597.463,"rows_us":3544.959,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2776.039,"any_us":2764.064,"rows_us":2786.876,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":1000,"lower_us_plain":1.071,"lower_us_fused":7.978,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3323.049,"any_us":3222.699,"rows_us":3258.555,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3195.986,"any_us":3233.431,"rows_us":3222.458,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3199.281,"any_us":3167.722,"rows_us":3170.037,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2835.072,"any_us":2854.027,"rows_us":2956.503,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":10000,"lower_us_plain":1.038,"lower_us_fused":8.229,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":2853.331,"any_us":2892.709,"rows_us":3218.762,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3091.521,"any_us":2844.678,"rows_us":3123.432,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2946.995,"any_us":2769.168,"rows_us":2996.422,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2987.697,"any_us":3266.989,"rows_us":3200.848,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":505114,"lower_us_plain":1.061,"lower_us_fused":8.185,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3234.470,"any_us":3188.692,"rows_us":3158.599,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3025.263,"any_us":2772.364,"rows_us":2785.101,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2798.451,"any_us":2780.778,"rows_us":2816.897,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2833.335,"any_us":2827.542,"rows_us":2877.329,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":46,"lower_us_plain":1.914,"lower_us_fused":6.994,"skip_same_as_plain":false,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3332.465,"any_us":3331.924,"rows_us":3537.380,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3081.248,"any_us":3415.090,"rows_us":3565.752,"runs":[31,31,31],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2378.083,"any_us":2307.966,"rows_us":1619.994,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3068.885,"any_us":3350.740,"rows_us":4055.554,"runs":[31,31,31],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":10098,"lower_us_plain":2.921,"lower_us_fused":10.529,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4986.762,"any_us":3701.789,"rows_us":4047.449,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3252.112,"any_us":3559.199,"rows_us":3580.657,"runs":[31,31,31],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3864.944,"any_us":4146.157,"rows_us":5311.931,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3878.457,"any_us":3867.489,"rows_us":3708.359,"runs":[31,31,31],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":498269,"lower_us_plain":1.907,"lower_us_fused":6.987,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3938.437,"any_us":3896.942,"rows_us":3879.811,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":2838.336,"any_us":3284.237,"rows_us":3294.030,"runs":[31,31,31],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3865.802,"any_us":3823.729,"rows_us":5791.963,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3032.171,"any_us":2916.907,"rows_us":2881.670,"runs":[31,31,31],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":50,"lower_us_plain":1.475,"lower_us_fused":15.644,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3972.321,"any_us":4062.246,"rows_us":4053.750,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3951.510,"any_us":3962.887,"rows_us":3960.535,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4081.317,"any_us":4207.168,"rows_us":4061.176,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3822.068,"any_us":3885.473,"rows_us":3864.779,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":9900,"lower_us_plain":1.442,"lower_us_fused":15.568,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5267.840,"any_us":5445.247,"rows_us":5098.506,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":4082.952,"any_us":4095.977,"rows_us":4105.966,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5393.823,"any_us":8121.496,"rows_us":5029.174,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3980.373,"any_us":3775.848,"rows_us":3769.577,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":502071,"lower_us_plain":1.419,"lower_us_fused":15.699,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5248.160,"any_us":5420.086,"rows_us":7114.055,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5288.583,"any_us":4908.248,"rows_us":4145.765,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4814.322,"any_us":7140.273,"rows_us":5021.333,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4162.739,"any_us":3867.157,"rows_us":3806.425,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":1001,"lower_us_plain":1.459,"lower_us_fused":16.353,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3800.601,"any_us":3815.772,"rows_us":4073.990,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3821.975,"any_us":3834.875,"rows_us":3741.711,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3725.775,"any_us":3887.162,"rows_us":3984.340,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3865.035,"any_us":4067.137,"rows_us":4364.597,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":9995,"lower_us_plain":2.180,"lower_us_fused":24.738,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4178.455,"any_us":3952.406,"rows_us":3907.375,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3754.593,"any_us":3878.133,"rows_us":4369.642,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5078.853,"any_us":5107.775,"rows_us":3736.248,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3713.455,"any_us":3723.288,"rows_us":3757.493,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":495651,"lower_us_plain":1.437,"lower_us_fused":16.395,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":3749.296,"any_us":3784.050,"rows_us":3718.956,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":4348.811,"any_us":4014.548,"rows_us":4310.147,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4078.136,"any_us":3964.909,"rows_us":4041.398,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3864.839,"any_us":3997.563,"rows_us":4185.634,"runs":[31,31,31],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":48,"lower_us_plain":2.623,"lower_us_fused":11.035,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5111.468,"any_us":5521.552,"rows_us":7437.377,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3932.400,"any_us":3859.786,"rows_us":3999.103,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":7088.207,"any_us":6828.031,"rows_us":5817.329,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3872.480,"any_us":4014.010,"rows_us":4749.698,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":9953,"lower_us_plain":2.563,"lower_us_fused":10.944,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5119.711,"any_us":5373.588,"rows_us":6574.301,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3859.172,"any_us":4081.931,"rows_us":4333.112,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4947.806,"any_us":5032.257,"rows_us":5298.947,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3732.167,"any_us":3833.540,"rows_us":4130.117,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":500471,"lower_us_plain":2.565,"lower_us_fused":10.787,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":5032.479,"any_us":4900.727,"rows_us":5513.006,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3885.189,"any_us":3820.880,"rows_us":3818.308,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5226.394,"any_us":4865.360,"rows_us":5037.175,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4379.823,"any_us":4235.640,"rows_us":3867.332,"runs":[31,31,31],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":10000,"lower_us_plain":0.215,"lower_us_fused":0.374,"skip_same_as_plain":false,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":356.069,"any_us":352.038,"rows_us":371.235,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":339.495,"any_us":318.078,"rows_us":318.462,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":284.838,"any_us":295.738,"rows_us":301.558,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":307.350,"any_us":323.259,"rows_us":320.430,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":1002,"lower_us_plain":0.292,"lower_us_fused":0.504,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":290.043,"any_us":285.464,"rows_us":288.545,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":535.465,"any_us":531.683,"rows_us":527.799,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":294.409,"any_us":315.780,"rows_us":297.670,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":520.488,"any_us":532.107,"rows_us":532.154,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":1000000,"lower_us_plain":0.212,"lower_us_fused":0.405,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":337.783,"any_us":314.009,"rows_us":348.893,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":334.150,"any_us":346.706,"rows_us":354.006,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":370.696,"any_us":332.331,"rows_us":346.836,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":333.898,"any_us":346.779,"rows_us":328.260,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":1000,"lower_us_plain":0.211,"lower_us_fused":0.404,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":319.747,"any_us":320.721,"rows_us":349.316,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":330.235,"any_us":348.347,"rows_us":329.141,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":336.115,"any_us":323.527,"rows_us":327.657,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":316.065,"any_us":330.235,"rows_us":372.413,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":827152,"lower_us_plain":0.963,"lower_us_fused":6.746,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":4511.813,"any_us":3776.100,"rows_us":4160.117,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":2741.989,"any_us":2762.868,"rows_us":2774.128,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3620.071,"any_us":3492.910,"rows_us":3567.153,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3047.976,"any_us":3003.388,"rows_us":2992.985,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":46,"lower_us_plain":0.987,"lower_us_fused":6.589,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":999.007,"any_us":1030.529,"rows_us":1002.991,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3023.998,"any_us":3055.936,"rows_us":2881.214,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":958.508,"any_us":966.315,"rows_us":985.817,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2886.586,"any_us":2867.308,"rows_us":2849.946,"runs":[31,31,31],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":500001,"lower_us_plain":0.216,"lower_us_fused":0.375,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":360.527,"any_us":358.295,"rows_us":365.779,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":316.285,"any_us":312.508,"rows_us":339.881,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":345.988,"any_us":350.827,"rows_us":354.320,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":321.180,"any_us":333.969,"rows_us":321.942,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":490001,"lower_us_plain":0.389,"lower_us_fused":1.164,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":829.850,"any_us":827.052,"rows_us":871.274,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":642.441,"any_us":633.619,"rows_us":650.844,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":882.030,"any_us":874.818,"rows_us":880.212,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":612.303,"any_us":655.331,"rows_us":618.297,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":0.308,"lower_us_fused":0.607,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":303.419,"any_us":301.439,"rows_us":311.398,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":271.819,"any_us":267.400,"rows_us":266.542,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":302.698,"any_us":325.364,"rows_us":311.991,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":279.818,"any_us":286.324,"rows_us":292.316,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":1.041,"lower_us_fused":7.625,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":668.361,"any_us":733.545,"rows_us":715.692,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3689.528,"any_us":3483.764,"rows_us":2992.795,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":657.514,"any_us":665.430,"rows_us":697.157,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2964.937,"any_us":2934.052,"rows_us":2857.138,"runs":[31,31,31],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":99875,"lower_us_plain":0.322,"lower_us_fused":0.503,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":418.703,"any_us":418.459,"rows_us":430.274,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":364.288,"any_us":354.711,"rows_us":347.614,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":390.969,"any_us":402.492,"rows_us":417.323,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":346.412,"any_us":339.477,"rows_us":358.873,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":450007,"lower_us_plain":0.240,"lower_us_fused":0.452,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":193.334,"any_us":188.374,"rows_us":186.067,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":186.523,"any_us":189.728,"rows_us":185.465,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":186.554,"any_us":186.269,"rows_us":199.860,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":191.654,"any_us":190.299,"rows_us":190.526,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"achieved":190006,"lower_us_plain":0.357,"lower_us_fused":0.532,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":345.285,"any_us":391.327,"rows_us":363.811,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":354.548,"any_us":356.009,"rows_us":381.172,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":352.331,"any_us":369.518,"rows_us":352.172,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":352.636,"any_us":358.374,"rows_us":359.741,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":850017,"lower_us_plain":0.447,"lower_us_fused":0.846,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":377.711,"any_us":360.390,"rows_us":369.793,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":368.473,"any_us":362.756,"rows_us":366.815,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":372.400,"any_us":362.164,"rows_us":376.830,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":366.143,"any_us":349.910,"rows_us":365.681,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":267454,"lower_us_plain":0.612,"lower_us_fused":1.500,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":125000,"variants":{"plain":{"count_us":1082.387,"any_us":1078.419,"rows_us":1123.835,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":989.039,"any_us":1015.852,"rows_us":979.936,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1048.697,"any_us":1094.240,"rows_us":1060.270,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":931.386,"any_us":937.415,"rows_us":949.434,"runs":[31,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}} -]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json deleted file mode 100644 index 13fe5bbcc..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/cases.json +++ /dev/null @@ -1,56 +0,0 @@ -{"n":10000000,"seed":11400714819323198485,"cases":[ -{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"cmp","col":3,"cmpop":"lt","value":0}}, -{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"target":100000,"achieved":100002,"target_met":true,"tree":{"op":"cmp","col":5,"cmpop":"lt","value":10}}, -{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"target":5000000,"achieved":5000008,"target_met":true,"tree":{"op":"cmp","col":13,"cmpop":"lt","value":500}}, -{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":1,"cmpop":"lt","value":527},{"op":"cmp","col":5,"cmpop":"ge","value":473},{"op":"cmp","col":10,"cmpop":"lt","value":527}]}}, -{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":101386,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":6,"cmpop":"lt","value":207},{"op":"cmp","col":10,"cmpop":"ge","value":793},{"op":"cmp","col":2,"cmpop":"lt","value":207}]}}, -{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":4996187,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":11,"cmpop":"lt","value":761},{"op":"cmp","col":13,"cmpop":"ge","value":239},{"op":"cmp","col":10,"cmpop":"lt","value":761}]}}, -{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0}]}}, -{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":100001,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":4},{"op":"cmp","col":6,"cmpop":"ge","value":997},{"op":"cmp","col":7,"cmpop":"lt","value":3}]}}, -{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":5006214,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":249},{"op":"cmp","col":9,"cmpop":"ge","value":751},{"op":"cmp","col":12,"cmpop":"lt","value":249}]}}, -{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":51},{"op":"cmp","col":7,"cmpop":"ge","value":949}]},{"op":"cmp","col":2,"cmpop":"lt","value":51}]}}, -{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":98184,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":159},{"op":"cmp","col":11,"cmpop":"ge","value":841}]},{"op":"cmp","col":2,"cmpop":"lt","value":159}]}}, -{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":4994319,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":594},{"op":"cmp","col":0,"cmpop":"ge","value":406}]},{"op":"cmp","col":4,"cmpop":"lt","value":594}]}}, -{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":470,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":467},{"op":"cmp","col":10,"cmpop":"ge","value":533},{"op":"cmp","col":7,"cmpop":"lt","value":467},{"op":"cmp","col":0,"cmpop":"ge","value":533},{"op":"cmp","col":11,"cmpop":"lt","value":467},{"op":"cmp","col":6,"cmpop":"ge","value":533},{"op":"cmp","col":2,"cmpop":"lt","value":467},{"op":"cmp","col":1,"cmpop":"ge","value":533}]}}, -{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":100924,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":632},{"op":"cmp","col":6,"cmpop":"ge","value":368},{"op":"cmp","col":8,"cmpop":"lt","value":632},{"op":"cmp","col":11,"cmpop":"ge","value":368},{"op":"cmp","col":9,"cmpop":"lt","value":632},{"op":"cmp","col":0,"cmpop":"ge","value":368},{"op":"cmp","col":7,"cmpop":"lt","value":632},{"op":"cmp","col":2,"cmpop":"ge","value":368}]}}, -{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":4981051,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":917},{"op":"cmp","col":7,"cmpop":"ge","value":83},{"op":"cmp","col":6,"cmpop":"lt","value":917},{"op":"cmp","col":3,"cmpop":"ge","value":83},{"op":"cmp","col":4,"cmpop":"lt","value":917},{"op":"cmp","col":10,"cmpop":"ge","value":83},{"op":"cmp","col":5,"cmpop":"lt","value":917},{"op":"cmp","col":9,"cmpop":"ge","value":83}]}}, -{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000}]}}, -{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":99996,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":2},{"op":"cmp","col":13,"cmpop":"ge","value":999},{"op":"cmp","col":14,"cmpop":"lt","value":1},{"op":"cmp","col":1,"cmpop":"ge","value":999},{"op":"cmp","col":7,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":12,"cmpop":"ge","value":999}]}}, -{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":4988280,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":82},{"op":"cmp","col":4,"cmpop":"ge","value":918},{"op":"cmp","col":13,"cmpop":"lt","value":82},{"op":"cmp","col":10,"cmpop":"ge","value":918},{"op":"cmp","col":9,"cmpop":"lt","value":82},{"op":"cmp","col":14,"cmpop":"ge","value":918},{"op":"cmp","col":1,"cmpop":"lt","value":82},{"op":"cmp","col":7,"cmpop":"ge","value":918}]}}, -{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":935,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":92},{"op":"cmp","col":4,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":92},{"op":"cmp","col":10,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":92},{"op":"cmp","col":2,"cmpop":"ge","value":908}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":92},{"op":"cmp","col":12,"cmpop":"ge","value":908}]}]}}, -{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":99047,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":232},{"op":"cmp","col":9,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":232},{"op":"cmp","col":3,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":232},{"op":"cmp","col":5,"cmpop":"ge","value":768}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":232},{"op":"cmp","col":7,"cmpop":"ge","value":768}]}]}}, -{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":5001665,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":585},{"op":"cmp","col":10,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":585},{"op":"cmp","col":12,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":585},{"op":"cmp","col":2,"cmpop":"ge","value":415}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":585},{"op":"cmp","col":0,"cmpop":"ge","value":415}]}]}}, -{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":467,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":9,"cmpop":"lt","value":768},{"op":"cmp","col":12,"cmpop":"ge","value":232},{"op":"cmp","col":5,"cmpop":"lt","value":768},{"op":"cmp","col":0,"cmpop":"ge","value":232},{"op":"cmp","col":3,"cmpop":"lt","value":768},{"op":"cmp","col":7,"cmpop":"ge","value":232},{"op":"cmp","col":10,"cmpop":"lt","value":768},{"op":"cmp","col":2,"cmpop":"ge","value":232},{"op":"cmp","col":11,"cmpop":"lt","value":768},{"op":"cmp","col":6,"cmpop":"ge","value":232},{"op":"cmp","col":13,"cmpop":"lt","value":768},{"op":"cmp","col":8,"cmpop":"ge","value":232},{"op":"cmp","col":1,"cmpop":"lt","value":768},{"op":"cmp","col":14,"cmpop":"ge","value":232},{"op":"cmp","col":4,"cmpop":"lt","value":768},{"op":"cmp","col":9,"cmpop":"ge","value":232},{"op":"cmp","col":12,"cmpop":"lt","value":768}]}}, -{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":97561,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":8,"cmpop":"lt","value":829},{"op":"cmp","col":4,"cmpop":"ge","value":172},{"op":"cmp","col":5,"cmpop":"lt","value":829},{"op":"cmp","col":1,"cmpop":"ge","value":171},{"op":"cmp","col":12,"cmpop":"lt","value":829},{"op":"cmp","col":7,"cmpop":"ge","value":171},{"op":"cmp","col":14,"cmpop":"lt","value":829},{"op":"cmp","col":13,"cmpop":"ge","value":171},{"op":"cmp","col":2,"cmpop":"lt","value":829},{"op":"cmp","col":9,"cmpop":"ge","value":171},{"op":"cmp","col":3,"cmpop":"lt","value":829},{"op":"cmp","col":0,"cmpop":"ge","value":171},{"op":"cmp","col":11,"cmpop":"lt","value":829},{"op":"cmp","col":6,"cmpop":"ge","value":171},{"op":"cmp","col":10,"cmpop":"lt","value":829},{"op":"cmp","col":8,"cmpop":"ge","value":171},{"op":"cmp","col":4,"cmpop":"lt","value":829}]}}, -{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":4998174,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":955},{"op":"cmp","col":3,"cmpop":"ge","value":45},{"op":"cmp","col":1,"cmpop":"lt","value":955},{"op":"cmp","col":13,"cmpop":"ge","value":45},{"op":"cmp","col":6,"cmpop":"lt","value":955},{"op":"cmp","col":7,"cmpop":"ge","value":45},{"op":"cmp","col":2,"cmpop":"lt","value":955},{"op":"cmp","col":14,"cmpop":"ge","value":45},{"op":"cmp","col":4,"cmpop":"lt","value":955},{"op":"cmp","col":5,"cmpop":"ge","value":45},{"op":"cmp","col":10,"cmpop":"lt","value":955},{"op":"cmp","col":11,"cmpop":"ge","value":45},{"op":"cmp","col":12,"cmpop":"lt","value":955},{"op":"cmp","col":9,"cmpop":"ge","value":45},{"op":"cmp","col":8,"cmpop":"lt","value":955},{"op":"cmp","col":0,"cmpop":"ge","value":45},{"op":"cmp","col":3,"cmpop":"lt","value":955}]}}, -{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0}]}}, -{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":100002,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":0},{"op":"cmp","col":5,"cmpop":"ge","value":1000},{"op":"cmp","col":4,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":9,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":10,"cmpop":"lt","value":1},{"op":"cmp","col":2,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":7,"cmpop":"ge","value":999},{"op":"cmp","col":5,"cmpop":"lt","value":1}]}}, -{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":5051202,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":34},{"op":"cmp","col":11,"cmpop":"ge","value":966},{"op":"cmp","col":2,"cmpop":"lt","value":34},{"op":"cmp","col":14,"cmpop":"ge","value":966},{"op":"cmp","col":1,"cmpop":"lt","value":34},{"op":"cmp","col":4,"cmpop":"ge","value":966},{"op":"cmp","col":13,"cmpop":"lt","value":34},{"op":"cmp","col":5,"cmpop":"ge","value":966},{"op":"cmp","col":7,"cmpop":"lt","value":34},{"op":"cmp","col":12,"cmpop":"ge","value":966},{"op":"cmp","col":8,"cmpop":"lt","value":34},{"op":"cmp","col":0,"cmpop":"ge","value":966},{"op":"cmp","col":6,"cmpop":"lt","value":34},{"op":"cmp","col":9,"cmpop":"ge","value":966},{"op":"cmp","col":10,"cmpop":"lt","value":34},{"op":"cmp","col":3,"cmpop":"ge","value":966},{"op":"cmp","col":11,"cmpop":"lt","value":34}]}}, -{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":467,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":412},{"op":"cmp","col":12,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":412},{"op":"cmp","col":14,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":412},{"op":"cmp","col":8,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":412},{"op":"cmp","col":10,"cmpop":"ge","value":589}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":412},{"op":"cmp","col":2,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":412},{"op":"cmp","col":11,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":412},{"op":"cmp","col":7,"cmpop":"ge","value":588}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":412},{"op":"cmp","col":1,"cmpop":"ge","value":588}]},{"op":"cmp","col":12,"cmpop":"lt","value":412}]}}, -{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":100925,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":503},{"op":"cmp","col":1,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":503},{"op":"cmp","col":5,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":503},{"op":"cmp","col":10,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":503},{"op":"cmp","col":14,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":503},{"op":"cmp","col":11,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":503},{"op":"cmp","col":12,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":503},{"op":"cmp","col":9,"cmpop":"ge","value":497}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":503},{"op":"cmp","col":4,"cmpop":"ge","value":497}]},{"op":"cmp","col":1,"cmpop":"lt","value":503}]}}, -{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":4982809,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":811},{"op":"cmp","col":13,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":811},{"op":"cmp","col":6,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":811},{"op":"cmp","col":8,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":811},{"op":"cmp","col":7,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":811},{"op":"cmp","col":3,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":811},{"op":"cmp","col":2,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":811},{"op":"cmp","col":14,"cmpop":"ge","value":189}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":811},{"op":"cmp","col":12,"cmpop":"ge","value":189}]},{"op":"cmp","col":13,"cmpop":"lt","value":811}]}}, -{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"target":50,"achieved":472,"target_met":false,"tree":{"op":"and","args":[{"op":"cmp","col":3,"cmpop":"lt","value":819},{"op":"cmp","col":10,"cmpop":"ge","value":181},{"op":"cmp","col":7,"cmpop":"lt","value":819},{"op":"cmp","col":12,"cmpop":"ge","value":181},{"op":"cmp","col":11,"cmpop":"lt","value":819},{"op":"cmp","col":2,"cmpop":"ge","value":181},{"op":"cmp","col":0,"cmpop":"lt","value":819},{"op":"cmp","col":13,"cmpop":"ge","value":181},{"op":"cmp","col":9,"cmpop":"lt","value":819},{"op":"cmp","col":14,"cmpop":"ge","value":181},{"op":"cmp","col":1,"cmpop":"lt","value":819},{"op":"cmp","col":8,"cmpop":"ge","value":181},{"op":"cmp","col":6,"cmpop":"lt","value":819},{"op":"cmp","col":5,"cmpop":"ge","value":181},{"op":"cmp","col":4,"cmpop":"lt","value":819},{"op":"cmp","col":3,"cmpop":"ge","value":181},{"op":"cmp","col":10,"cmpop":"lt","value":819},{"op":"cmp","col":7,"cmpop":"ge","value":181},{"op":"cmp","col":12,"cmpop":"lt","value":819},{"op":"cmp","col":11,"cmpop":"ge","value":181},{"op":"cmp","col":2,"cmpop":"lt","value":819},{"op":"cmp","col":0,"cmpop":"ge","value":181},{"op":"cmp","col":13,"cmpop":"lt","value":819},{"op":"cmp","col":9,"cmpop":"ge","value":181}]}}, -{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"target":100000,"achieved":99057,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":918},{"op":"cmp","col":8,"cmpop":"ge","value":88},{"op":"cmp","col":11,"cmpop":"lt","value":912},{"op":"cmp","col":13,"cmpop":"ge","value":88},{"op":"cmp","col":12,"cmpop":"lt","value":912},{"op":"cmp","col":6,"cmpop":"ge","value":88},{"op":"cmp","col":14,"cmpop":"lt","value":912},{"op":"cmp","col":5,"cmpop":"ge","value":88},{"op":"cmp","col":2,"cmpop":"lt","value":912},{"op":"cmp","col":9,"cmpop":"ge","value":88},{"op":"cmp","col":0,"cmpop":"lt","value":912},{"op":"cmp","col":7,"cmpop":"ge","value":88},{"op":"cmp","col":10,"cmpop":"lt","value":912},{"op":"cmp","col":3,"cmpop":"ge","value":88},{"op":"cmp","col":1,"cmpop":"lt","value":912},{"op":"cmp","col":4,"cmpop":"ge","value":88},{"op":"cmp","col":8,"cmpop":"lt","value":912},{"op":"cmp","col":11,"cmpop":"ge","value":88},{"op":"cmp","col":13,"cmpop":"lt","value":912},{"op":"cmp","col":12,"cmpop":"ge","value":88},{"op":"cmp","col":6,"cmpop":"lt","value":912},{"op":"cmp","col":14,"cmpop":"ge","value":88},{"op":"cmp","col":5,"cmpop":"lt","value":912},{"op":"cmp","col":2,"cmpop":"ge","value":88}]}}, -{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"target":5000000,"achieved":5020727,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":12,"cmpop":"lt","value":976},{"op":"cmp","col":4,"cmpop":"ge","value":24},{"op":"cmp","col":10,"cmpop":"lt","value":976},{"op":"cmp","col":13,"cmpop":"ge","value":24},{"op":"cmp","col":2,"cmpop":"lt","value":976},{"op":"cmp","col":11,"cmpop":"ge","value":24},{"op":"cmp","col":9,"cmpop":"lt","value":976},{"op":"cmp","col":0,"cmpop":"ge","value":24},{"op":"cmp","col":7,"cmpop":"lt","value":976},{"op":"cmp","col":5,"cmpop":"ge","value":24},{"op":"cmp","col":14,"cmpop":"lt","value":976},{"op":"cmp","col":1,"cmpop":"ge","value":24},{"op":"cmp","col":6,"cmpop":"lt","value":976},{"op":"cmp","col":8,"cmpop":"ge","value":24},{"op":"cmp","col":3,"cmpop":"lt","value":976},{"op":"cmp","col":12,"cmpop":"ge","value":24},{"op":"cmp","col":4,"cmpop":"lt","value":976},{"op":"cmp","col":10,"cmpop":"ge","value":24},{"op":"cmp","col":13,"cmpop":"lt","value":976},{"op":"cmp","col":2,"cmpop":"ge","value":24},{"op":"cmp","col":11,"cmpop":"lt","value":976},{"op":"cmp","col":9,"cmpop":"ge","value":24},{"op":"cmp","col":0,"cmpop":"lt","value":976},{"op":"cmp","col":7,"cmpop":"ge","value":24}]}}, -{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"target":50,"achieved":0,"target_met":false,"tree":{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":12,"cmpop":"ge","value":1000},{"op":"cmp","col":8,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":3,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":1,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"ge","value":1000},{"op":"cmp","col":0,"cmpop":"lt","value":0},{"op":"cmp","col":11,"cmpop":"ge","value":1000},{"op":"cmp","col":12,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":2,"cmpop":"lt","value":0},{"op":"cmp","col":14,"cmpop":"ge","value":1000},{"op":"cmp","col":9,"cmpop":"lt","value":0},{"op":"cmp","col":13,"cmpop":"ge","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":10,"cmpop":"ge","value":1000}]}}, -{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"target":100000,"achieved":99996,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":0},{"op":"cmp","col":4,"cmpop":"ge","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":8,"cmpop":"ge","value":1000},{"op":"cmp","col":10,"cmpop":"lt","value":0},{"op":"cmp","col":1,"cmpop":"ge","value":1000},{"op":"cmp","col":6,"cmpop":"lt","value":0},{"op":"cmp","col":2,"cmpop":"ge","value":1000},{"op":"cmp","col":14,"cmpop":"lt","value":0},{"op":"cmp","col":7,"cmpop":"ge","value":1000},{"op":"cmp","col":11,"cmpop":"lt","value":0},{"op":"cmp","col":9,"cmpop":"ge","value":1000},{"op":"cmp","col":13,"cmpop":"lt","value":0},{"op":"cmp","col":0,"cmpop":"ge","value":999},{"op":"cmp","col":12,"cmpop":"lt","value":1},{"op":"cmp","col":3,"cmpop":"ge","value":999},{"op":"cmp","col":4,"cmpop":"lt","value":1},{"op":"cmp","col":5,"cmpop":"ge","value":999},{"op":"cmp","col":8,"cmpop":"lt","value":1},{"op":"cmp","col":10,"cmpop":"ge","value":999},{"op":"cmp","col":1,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"ge","value":999},{"op":"cmp","col":2,"cmpop":"lt","value":1},{"op":"cmp","col":14,"cmpop":"ge","value":999}]}}, -{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"target":5000000,"achieved":4956413,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":25},{"op":"cmp","col":8,"cmpop":"ge","value":975},{"op":"cmp","col":4,"cmpop":"lt","value":25},{"op":"cmp","col":10,"cmpop":"ge","value":975},{"op":"cmp","col":12,"cmpop":"lt","value":25},{"op":"cmp","col":3,"cmpop":"ge","value":975},{"op":"cmp","col":0,"cmpop":"lt","value":25},{"op":"cmp","col":2,"cmpop":"ge","value":975},{"op":"cmp","col":1,"cmpop":"lt","value":25},{"op":"cmp","col":14,"cmpop":"ge","value":975},{"op":"cmp","col":7,"cmpop":"lt","value":25},{"op":"cmp","col":13,"cmpop":"ge","value":975},{"op":"cmp","col":5,"cmpop":"lt","value":25},{"op":"cmp","col":6,"cmpop":"ge","value":975},{"op":"cmp","col":11,"cmpop":"lt","value":25},{"op":"cmp","col":9,"cmpop":"ge","value":975},{"op":"cmp","col":8,"cmpop":"lt","value":25},{"op":"cmp","col":4,"cmpop":"ge","value":975},{"op":"cmp","col":10,"cmpop":"lt","value":25},{"op":"cmp","col":12,"cmpop":"ge","value":975},{"op":"cmp","col":3,"cmpop":"lt","value":25},{"op":"cmp","col":0,"cmpop":"ge","value":975},{"op":"cmp","col":2,"cmpop":"lt","value":25},{"op":"cmp","col":1,"cmpop":"ge","value":975}]}}, -{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"target":50,"achieved":470,"target_met":false,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":528},{"op":"cmp","col":4,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":528},{"op":"cmp","col":8,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":528},{"op":"cmp","col":13,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":528},{"op":"cmp","col":10,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":528},{"op":"cmp","col":9,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":528},{"op":"cmp","col":1,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":528},{"op":"cmp","col":2,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":528},{"op":"cmp","col":0,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":528},{"op":"cmp","col":7,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":528},{"op":"cmp","col":5,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":528},{"op":"cmp","col":11,"cmpop":"ge","value":472}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":528},{"op":"cmp","col":14,"cmpop":"ge","value":472}]}]}}, -{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"target":100000,"achieved":99512,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":555},{"op":"cmp","col":10,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":555},{"op":"cmp","col":1,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":13,"cmpop":"lt","value":555},{"op":"cmp","col":7,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":8,"cmpop":"lt","value":555},{"op":"cmp","col":5,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":555},{"op":"cmp","col":9,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":555},{"op":"cmp","col":4,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":555},{"op":"cmp","col":12,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":555},{"op":"cmp","col":0,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":10,"cmpop":"lt","value":555},{"op":"cmp","col":14,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":555},{"op":"cmp","col":13,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":555},{"op":"cmp","col":8,"cmpop":"ge","value":445}]},{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":555},{"op":"cmp","col":6,"cmpop":"ge","value":445}]}]}}, -{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"target":5000000,"achieved":5004671,"target_met":true,"tree":{"op":"and","args":[{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":777},{"op":"cmp","col":12,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":2,"cmpop":"lt","value":777},{"op":"cmp","col":0,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":4,"cmpop":"lt","value":777},{"op":"cmp","col":6,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":14,"cmpop":"lt","value":777},{"op":"cmp","col":11,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":3,"cmpop":"lt","value":777},{"op":"cmp","col":13,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":1,"cmpop":"lt","value":777},{"op":"cmp","col":10,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":9,"cmpop":"lt","value":777},{"op":"cmp","col":8,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":7,"cmpop":"lt","value":777},{"op":"cmp","col":5,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":12,"cmpop":"lt","value":777},{"op":"cmp","col":2,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":777},{"op":"cmp","col":4,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":6,"cmpop":"lt","value":777},{"op":"cmp","col":14,"cmpop":"ge","value":223}]},{"op":"or","args":[{"op":"cmp","col":11,"cmpop":"lt","value":777},{"op":"cmp","col":3,"cmpop":"ge","value":223}]}]}}, -{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":100002,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":4,"cmpop":"lt","value":1000},{"op":"cmp","col":5,"cmpop":"lt","value":10}]}}, -{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":10002,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":5,"cmpop":"lt","value":1},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900}]}}, -{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":10000000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":0,"cmpop":"lt","value":1000},{"op":"cmp","col":3,"cmpop":"lt","value":5}]}}, -{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"target":0,"achieved":10000,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":5,"cmpop":"lt","value":0},{"op":"cmp","col":6,"cmpop":"lt","value":1}]}}, -{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":8271472,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":985},{"op":"cmp","col":1,"cmpop":"lt","value":986},{"op":"cmp","col":2,"cmpop":"lt","value":987},{"op":"cmp","col":3,"cmpop":"lt","value":988},{"op":"cmp","col":4,"cmpop":"lt","value":989},{"op":"cmp","col":5,"cmpop":"lt","value":985},{"op":"cmp","col":6,"cmpop":"lt","value":986},{"op":"cmp","col":7,"cmpop":"lt","value":987},{"op":"cmp","col":8,"cmpop":"lt","value":988},{"op":"cmp","col":9,"cmpop":"lt","value":989},{"op":"cmp","col":10,"cmpop":"lt","value":985},{"op":"cmp","col":11,"cmpop":"lt","value":986},{"op":"cmp","col":12,"cmpop":"lt","value":987},{"op":"cmp","col":13,"cmpop":"lt","value":988},{"op":"cmp","col":14,"cmpop":"lt","value":989},{"op":"cmp","col":0,"cmpop":"lt","value":985}]}}, -{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":472,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"eq","value":241},{"op":"cmp","col":1,"cmpop":"eq","value":253},{"op":"cmp","col":2,"cmpop":"eq","value":63},{"op":"cmp","col":3,"cmpop":"eq","value":474},{"op":"cmp","col":4,"cmpop":"eq","value":885},{"op":"cmp","col":5,"cmpop":"eq","value":296},{"op":"cmp","col":6,"cmpop":"eq","value":707},{"op":"cmp","col":7,"cmpop":"eq","value":118},{"op":"cmp","col":8,"cmpop":"eq","value":881},{"op":"cmp","col":9,"cmpop":"eq","value":292},{"op":"cmp","col":10,"cmpop":"eq","value":703},{"op":"cmp","col":11,"cmpop":"eq","value":114},{"op":"cmp","col":12,"cmpop":"eq","value":525},{"op":"cmp","col":13,"cmpop":"eq","value":936},{"op":"cmp","col":14,"cmpop":"eq","value":347},{"op":"cmp","col":0,"cmpop":"ge","value":241}]}}, -{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":5000004,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":520}]}}, -{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":4900007,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":500},{"op":"cmp","col":1,"cmpop":"lt","value":510},{"op":"cmp","col":0,"cmpop":"lt","value":490},{"op":"cmp","col":1,"cmpop":"lt","value":530},{"op":"cmp","col":0,"cmpop":"lt","value":520}]}}, -{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900}]}}, -{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"target":0,"achieved":0,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":0,"cmpop":"lt","value":100},{"op":"cmp","col":0,"cmpop":"ge","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900},{"op":"cmp","col":2,"cmpop":"lt","value":900},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":4,"cmpop":"lt","value":900},{"op":"cmp","col":5,"cmpop":"lt","value":900},{"op":"cmp","col":6,"cmpop":"lt","value":900},{"op":"cmp","col":7,"cmpop":"lt","value":900},{"op":"cmp","col":8,"cmpop":"lt","value":900},{"op":"cmp","col":9,"cmpop":"lt","value":900},{"op":"cmp","col":10,"cmpop":"lt","value":900},{"op":"cmp","col":11,"cmpop":"lt","value":900},{"op":"cmp","col":12,"cmpop":"lt","value":900},{"op":"cmp","col":13,"cmpop":"lt","value":900},{"op":"cmp","col":14,"cmpop":"lt","value":900},{"op":"cmp","col":1,"cmpop":"lt","value":900}]}}, -{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":999196,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}, -{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":4499990,"target_met":true,"tree":{"op":"not","arg":{"op":"cmp","col":15,"cmpop":"lt","value":500}}}, -{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"target":0,"achieved":1900011,"target_met":true,"tree":{"op":"or","args":[{"op":"cmp","col":15,"cmpop":"lt","value":100},{"op":"cmp","col":2,"cmpop":"lt","value":100}]}}, -{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"target":0,"achieved":8500703,"target_met":true,"tree":{"op":"not","arg":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"lt","value":500},{"op":"cmp","col":0,"cmpop":"lt","value":500}]}}}, -{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"target":0,"achieved":2674492,"target_met":true,"tree":{"op":"and","args":[{"op":"cmp","col":15,"cmpop":"ge","value":200},{"op":"cmp","col":0,"cmpop":"lt","value":700},{"op":"cmp","col":2,"cmpop":"lt","value":700},{"op":"cmp","col":3,"cmpop":"lt","value":900},{"op":"cmp","col":15,"cmpop":"lt","value":900}]}} -]} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md deleted file mode 100644 index 76b05d426..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/compare_where.md +++ /dev/null @@ -1,168 +0,0 @@ -# D-GLOBAL-WHERE P2 Part 5: criteria-aware WHERE, N = 10,000,000 - -Every DuckDB count and EXISTS answer equals the scalar oracle in cases.json (checked before this file was written). - -Population targets NOT met by the generator (achieved is what is measured; never assumed from K): k1_tiny_single (target 50, achieved 0), k3_tiny_and (target 50, achieved 0), k3_tiny_or (target 50, achieved 0), k3_tiny_mixed (target 50, achieved 0), k8_tiny_and (target 50, achieved 470), k8_tiny_or (target 50, achieved 0), k8_tiny_mixed (target 50, achieved 935), k17_tiny_and (target 50, achieved 467), k17_tiny_or (target 50, achieved 0), k17_tiny_mixed (target 50, achieved 467), k24_tiny_and (target 50, achieved 472), k24_tiny_or (target 50, achieved 0), k24_tiny_mixed (target 50, achieved 470) - -DuckDB build + ANALYZE: threads 1: 5,654,699 us (build 5,653,755, analyze 943); threads 4: 4,333,441 us (build 4,332,828, analyze 613) - -### N = 10,000,000, DuckDB threads = 1 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 477.0 | 592.1 | 591.0 | 0.28 | LOSS | 0.35 | LOSS | 0.36 | LOSS | -| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 16065.5 | 22896.0 | 920.9 | 9.54 | WIN | 13.59 | WIN | 0.54 | LOSS | -| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 14682.0 | 16553.4 | 627.6 | 8.40 | WIN | 9.47 | WIN | 0.36 | LOSS | -| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 36607.8 | 37059.9 | 40659.1 | 7.07 | WIN | 7.16 | WIN | 7.63 | WIN | -| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 34347.9 | 36076.6 | 699.2 | 6.34 | WIN | 6.66 | WIN | 0.13 | LOSS | -| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 41119.5 | 41982.1 | 713.7 | 7.83 | WIN | 8.00 | WIN | 0.13 | LOSS | -| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 539.0 | 582.3 | 606.5 | 0.10 | LOSS | 0.11 | LOSS | 0.11 | LOSS | -| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 66221.3 | 65374.4 | 1148.4 | 13.13 | WIN | 12.96 | WIN | 0.23 | LOSS | -| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 192171.0 | 191457.4 | 813.0 | 37.57 | WIN | 37.43 | WIN | 0.16 | LOSS | -| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 40150.0 | 55077.6 | 52672.7 | 7.39 | WIN | 10.14 | WIN | 9.31 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 47956.4 | 52098.6 | 791.7 | 8.08 | WIN | 8.78 | WIN | 0.14 | LOSS | -| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 145146.5 | 147578.6 | 816.5 | 25.93 | WIN | 26.36 | WIN | 0.15 | LOSS | -| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 54096.7 | 60818.1 | 1617.4 | 2.25 | WIN | 2.53 | WIN | 0.07 | LOSS | -| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 83866.3 | 82393.0 | 958.7 | 2.30 | WIN | 2.26 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 108897.6 | 106359.7 | 946.6 | 2.95 | WIN | 2.89 | WIN | 0.03 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 702.6 | 944.2 | 1262.4 | 0.02 | LOSS | 0.03 | LOSS | 0.03 | LOSS | -| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 173318.7 | 171537.3 | 957.7 | 4.75 | WIN | 4.70 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 310465.8 | 300716.6 | 995.7 | 8.66 | WIN | 8.39 | WIN | 0.03 | LOSS | -| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 150918.1 | 146203.9 | 1770.6 | 4.14 | WIN | 4.01 | WIN | 0.05 | LOSS | -| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 263585.0 | 291324.8 | 1106.1 | 7.17 | WIN | 7.93 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 717301.7 | 687487.8 | 1228.8 | 15.43 | WIN | 14.79 | WIN | 0.03 | LOSS | -| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 142113.7 | 145205.5 | 2076.0 | 1.91 | WIN | 1.96 | WIN | 0.03 | LOSS | -| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 159095.2 | 169152.2 | 1784.8 | 2.16 | WIN | 2.30 | WIN | 0.02 | LOSS | -| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 212825.2 | 222076.1 | 1341.8 | 2.84 | WIN | 2.96 | WIN | 0.02 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1041.1 | 932.3 | 1473.9 | 0.01 | LOSS | 0.01 | LOSS | 0.02 | LOSS | -| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 225787.9 | 239839.7 | 1347.3 | 3.06 | WIN | 3.25 | WIN | 0.02 | LOSS | -| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 478393.1 | 542011.3 | 1349.0 | 6.62 | WIN | 7.50 | WIN | 0.02 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 136162.5 | 132247.9 | 2176.5 | 3.26 | WIN | 3.16 | WIN | 0.04 | LOSS | -| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 293818.0 | 298033.9 | 1420.6 | 4.00 | WIN | 4.06 | WIN | 0.02 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 1382934.4 | 1401588.6 | 2389.6 | 18.53 | WIN | 18.78 | WIN | 0.03 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 147036.4 | 137556.3 | 1684.9 | 1.57 | WIN | 1.47 | WIN | 0.02 | LOSS | -| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 188568.6 | 187580.2 | 1508.9 | 2.11 | WIN | 2.10 | WIN | 0.02 | LOSS | -| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 248329.8 | 243513.3 | 1504.5 | 2.89 | WIN | 2.83 | WIN | 0.02 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1002.4 | 1046.2 | 1129.8 | 0.01 | LOSS | 0.01 | LOSS | 0.01 | LOSS | -| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 227149.9 | 239568.3 | 1463.5 | 2.51 | WIN | 2.65 | WIN | 0.02 | LOSS | -| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 572694.7 | 558926.0 | 1600.6 | 6.41 | WIN | 6.26 | WIN | 0.02 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 657116.1 | 567573.7 | 1916.5 | 7.24 | WIN | 6.25 | WIN | 0.02 | LOSS | -| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 932183.2 | 981755.7 | 1784.2 | 10.40 | WIN | 10.95 | WIN | 0.02 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 2090124.5 | 1985161.1 | 2006.5 | 24.37 | WIN | 23.15 | WIN | 0.02 | LOSS | -| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 14886.8 | 24485.8 | 972.8 | 4.09 | WIN | 6.72 | WIN | 0.28 | LOSS | -| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 25638.5 | 29261.4 | 1090.4 | 9.14 | WIN | 10.44 | WIN | 0.27 | LOSS | -| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 847.4 | - | 922.9 | 0.24 | LOSS | - | n/a | 0.27 | LOSS | -| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 22805.1 | 23057.3 | 713.4 | 6.65 | WIN | 6.72 | WIN | 0.21 | LOSS | -| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 217536.6 | 234985.9 | 1441.2 | 3.00 | WIN | 3.24 | WIN | 0.02 | LOSS | -| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 64305.0 | 64808.0 | 1413.1 | 3.23 | WIN | 3.26 | WIN | 0.07 | LOSS | -| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 28390.5 | 30240.1 | 668.0 | 8.04 | WIN | 8.56 | WIN | 0.19 | LOSS | -| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 31018.7 | 32148.3 | 782.3 | 2.53 | WIN | 2.62 | WIN | 0.06 | LOSS | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 727.8 | 683.2 | 856.1 | 0.25 | LOSS | 0.23 | LOSS | 0.29 | LOSS | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 711.0 | 789.9 | 821.3 | 0.09 | LOSS | 0.11 | LOSS | 0.10 | LOSS | -| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 36063.3 | 36621.3 | 1035.5 | 7.72 | WIN | 7.84 | WIN | 0.18 | LOSS | -| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 20619.5 | 20156.2 | 775.5 | 9.46 | WIN | 9.25 | WIN | 0.36 | LOSS | -| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 99873.4 | 132234.7 | 1117.0 | 21.32 | WIN | 28.23 | WIN | 0.28 | LOSS | -| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 268063.0 | 316992.9 | 787.3 | 67.76 | WIN | 80.13 | WIN | 0.20 | LOSS | -| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 70334.6 | 73451.0 | 814.6 | 3.21 | WIN | 3.35 | WIN | 0.04 | LOSS | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 10,000,000, threads = 1 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 12904.5 | 90393.4 | 7.00 | WIN | 46547.9 | 271667.0 | 5.84 | WIN | 3.06 | -| count vs duck count, engine | 12904.5 | 92188.6 | 7.14 | WIN | 46547.9 | 270997.0 | 5.82 | WIN | 3.19 | -| any vs duck exists, wall | 12913.8 | 5567.0 | 0.43 | LOSS | 46604.5 | 3637.5 | 0.08 | LOSS | 0.06 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 1707.2 | 10408.2 | 6.10 | WIN | 0.34 | -| 2-4 | 9 | 5367.4 | 67139.9 | 12.51 | WIN | 0.46 | -| 5-16 | 9 | 36199.5 | 207017.0 | 5.72 | WIN | 0.14 | -| 17+ | 18 | 79785.8 | 449798.7 | 5.64 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. - -### N = 10,000,000, DuckDB threads = 4 - -| K group | case | pop | shape | achieved | lower plain/fused us | ours count us (order) | ours any us | ours rows us | duck count wall us | duck count engine us | duck exists wall us | count wall ratio | count wall | count engine ratio | count engine | any ratio | any | -|---|---|---|---|---:|---|---|---:|---:|---:|---:|---:|---:|---|---:|---|---:|---| -| 1 | k1_tiny_single | tiny | single | 0 | 0.10/0.11 | 1688.3 (plain) | 1664.0 | 1707.7 | 749.2 | 608.7 | 740.3 | 0.44 | LOSS | 0.36 | LOSS | 0.44 | LOSS | -| 1 | k1_medium_single | medium | single | 100,002 | 0.10/0.11 | 1684.3 (plain) | 1700.3 | 1751.8 | 4115.6 | 4174.6 | 878.1 | 2.44 | WIN | 2.48 | WIN | 0.52 | LOSS | -| 1 | k1_large_single | large | single | 5,000,008 | 0.09/0.10 | 1748.9 (skip) | 1747.3 | 1759.2 | 4483.3 | 4355.8 | 913.8 | 2.56 | WIN | 2.49 | WIN | 0.52 | LOSS | -| 2-4 | k3_tiny_and | tiny | and | 0 | 0.28/0.50 | 5178.7 (skip_fused) | 5326.2 | 5270.8 | 10953.8 | 10635.1 | 10197.0 | 2.12 | WIN | 2.05 | WIN | 1.91 | WIN | -| 2-4 | k3_medium_and | medium | and | 101,386 | 0.28/0.50 | 5419.4 (fused) | 5422.3 | 5255.3 | 9979.6 | 10728.6 | 1034.5 | 1.84 | WIN | 1.98 | WIN | 0.19 | LOSS | -| 2-4 | k3_large_and | large | and | 4,996,187 | 0.29/0.50 | 5251.0 (skip_fused) | 5352.5 | 5727.1 | 12053.1 | 12181.6 | 1018.2 | 2.30 | WIN | 2.32 | WIN | 0.19 | LOSS | -| 2-4 | k3_tiny_or | tiny | or | 0 | 0.28/0.59 | 5334.0 (skip_fused) | 5499.0 | 5215.8 | 648.2 | 678.1 | 750.1 | 0.12 | LOSS | 0.13 | LOSS | 0.14 | LOSS | -| 2-4 | k3_medium_or | medium | or | 100,001 | 0.28/0.57 | 5042.6 (fused) | 5064.9 | 5126.4 | 18505.3 | 18795.1 | 1011.7 | 3.67 | WIN | 3.73 | WIN | 0.20 | LOSS | -| 2-4 | k3_large_or | large | or | 5,006,214 | 0.28/0.57 | 5115.4 (skip) | 5159.8 | 5582.6 | 50145.2 | 54685.3 | 1035.6 | 9.80 | WIN | 10.69 | WIN | 0.20 | LOSS | -| 2-4 | k3_tiny_mixed | tiny | mixed | 0 | 0.37/0.66 | 5430.3 (skip_fused) | 5656.4 | 5525.2 | 10858.1 | 10898.2 | 11380.8 | 2.00 | WIN | 2.01 | WIN | 2.01 | WIN | -| 2-4 | k3_medium_mixed | medium | mixed | 98,184 | 0.36/0.63 | 5937.1 (skip_fused) | 5703.2 | 5487.3 | 13830.3 | 12542.5 | 976.2 | 2.33 | WIN | 2.11 | WIN | 0.17 | LOSS | -| 2-4 | k3_large_mixed | large | mixed | 4,994,319 | 0.37/0.66 | 5598.2 (plain) | 5345.6 | 5390.8 | 37466.7 | 40296.9 | 1052.1 | 6.69 | WIN | 7.20 | WIN | 0.20 | LOSS | -| 5-16 | k8_tiny_and | tiny | and | 470 | 0.74/3.92 | 24039.1 (plain) | 22140.7 | 24092.4 | 16602.2 | 19904.8 | 1921.7 | 0.69 | LOSS | 0.83 | LOSS | 0.09 | LOSS | -| 5-16 | k8_medium_and | medium | and | 100,924 | 0.51/2.40 | 36402.6 (fused) | 36642.3 | 37327.5 | 26988.8 | 24283.4 | 1249.7 | 0.74 | LOSS | 0.67 | LOSS | 0.03 | LOSS | -| 5-16 | k8_large_and | large | and | 4,981,051 | 0.52/2.39 | 36861.7 (fused) | 36170.7 | 36718.5 | 30166.4 | 29397.2 | 1241.5 | 0.82 | LOSS | 0.80 | LOSS | 0.03 | LOSS | -| 5-16 | k8_tiny_or | tiny | or | 0 | 0.51/2.61 | 36453.4 (skip) | 36412.7 | 36664.2 | 798.1 | 851.8 | 1022.5 | 0.02 | LOSS | 0.02 | LOSS | 0.03 | LOSS | -| 5-16 | k8_medium_or | medium | or | 99,996 | 0.51/2.63 | 36492.9 (skip_fused) | 36093.6 | 36554.4 | 51723.3 | 46573.0 | 1226.4 | 1.42 | WIN | 1.28 | WIN | 0.03 | LOSS | -| 5-16 | k8_large_or | large | or | 4,988,280 | 0.51/2.65 | 35830.7 (fused) | 35629.5 | 36135.2 | 84262.8 | 89431.8 | 1399.6 | 2.35 | WIN | 2.50 | WIN | 0.04 | LOSS | -| 5-16 | k8_tiny_mixed | tiny | mixed | 935 | 0.88/2.64 | 36491.6 (fused) | 37142.3 | 37749.2 | 43857.1 | 43639.9 | 2757.2 | 1.20 | WIN | 1.20 | WIN | 0.07 | LOSS | -| 5-16 | k8_medium_mixed | medium | mixed | 99,047 | 0.87/2.66 | 36740.6 (skip_fused) | 37822.5 | 37476.0 | 78663.7 | 87577.5 | 1337.5 | 2.14 | WIN | 2.38 | WIN | 0.04 | LOSS | -| 5-16 | k8_large_mixed | large | mixed | 5,001,665 | 0.84/2.56 | 46483.4 (skip_fused) | 47112.3 | 50481.7 | 187067.9 | 192926.0 | 1470.6 | 4.02 | WIN | 4.15 | WIN | 0.03 | LOSS | -| 17+ | k17_tiny_and | tiny | and | 467 | 1.39/18.72 | 74264.2 (skip_fused) | 71629.8 | 71875.5 | 41400.9 | 37266.6 | 2457.8 | 0.56 | LOSS | 0.50 | LOSS | 0.03 | LOSS | -| 17+ | k17_medium_and | medium | and | 97,561 | 1.06/7.59 | 73592.4 (skip_fused) | 73776.2 | 74798.9 | 43895.3 | 45147.6 | 1538.0 | 0.60 | LOSS | 0.61 | LOSS | 0.02 | LOSS | -| 17+ | k17_large_and | large | and | 4,998,174 | 1.64/11.69 | 74987.7 (skip_fused) | 73588.6 | 74003.9 | 57312.3 | 55350.1 | 1651.6 | 0.76 | LOSS | 0.74 | LOSS | 0.02 | LOSS | -| 17+ | k17_tiny_or | tiny | or | 0 | 1.04/8.04 | 74191.9 (skip_fused) | 73149.9 | 76023.9 | 1239.1 | 1011.0 | 1299.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | -| 17+ | k17_medium_or | medium | or | 100,002 | 1.69/12.85 | 73705.7 (skip_fused) | 73464.6 | 73443.5 | 70731.7 | 71277.0 | 1534.5 | 0.96 | PARITY | 0.97 | PARITY | 0.02 | LOSS | -| 17+ | k17_large_or | large | or | 5,051,202 | 1.01/7.86 | 72316.1 (skip_fused) | 71382.2 | 76371.5 | 132258.5 | 128086.9 | 1600.5 | 1.83 | WIN | 1.77 | WIN | 0.02 | LOSS | -| 17+ | k17_tiny_mixed | tiny | mixed | 467 | 1.89/6.91 | 41805.2 (skip) | 48830.1 | 43736.1 | 37984.4 | 42628.1 | 3366.9 | 0.91 | PARITY | 1.02 | PARITY | 0.07 | LOSS | -| 17+ | k17_medium_mixed | medium | mixed | 100,925 | 2.76/10.56 | 73473.0 (skip_fused) | 77523.7 | 73476.4 | 82346.8 | 85098.5 | 1813.5 | 1.12 | WIN | 1.16 | WIN | 0.02 | LOSS | -| 17+ | k17_large_mixed | large | mixed | 4,982,809 | 2.96/11.57 | 74632.9 (fused) | 76445.0 | 75979.7 | 363912.1 | 367205.7 | 2557.8 | 4.88 | WIN | 4.92 | WIN | 0.03 | LOSS | -| 17+ | k24_tiny_and | tiny | and | 472 | 1.42/15.61 | 93763.9 (fused) | 91951.2 | 88694.3 | 42430.7 | 53442.5 | 2717.2 | 0.45 | LOSS | 0.57 | LOSS | 0.03 | LOSS | -| 17+ | k24_medium_and | medium | and | 99,057 | 1.90/15.70 | 89354.6 (fused) | 100287.7 | 95396.5 | 55181.2 | 65205.9 | 2579.0 | 0.62 | LOSS | 0.73 | LOSS | 0.03 | LOSS | -| 17+ | k24_large_and | large | and | 5,020,727 | 2.10/24.46 | 86026.9 (fused) | 85642.2 | 90768.2 | 68975.0 | 69978.9 | 2407.8 | 0.80 | LOSS | 0.81 | LOSS | 0.03 | LOSS | -| 17+ | k24_tiny_or | tiny | or | 0 | 1.46/16.60 | 88091.3 (plain) | 87496.3 | 87911.4 | 1637.8 | 1171.0 | 1724.2 | 0.02 | LOSS | 0.01 | LOSS | 0.02 | LOSS | -| 17+ | k24_medium_or | medium | or | 99,996 | 1.45/16.55 | 90460.6 (skip) | 86339.9 | 88804.6 | 88748.3 | 104740.6 | 3027.8 | 0.98 | PARITY | 1.16 | WIN | 0.04 | LOSS | -| 17+ | k24_large_or | large | or | 4,956,413 | 2.26/25.33 | 89297.0 (skip) | 86766.6 | 86445.5 | 215605.7 | 212426.9 | 3283.8 | 2.41 | WIN | 2.38 | WIN | 0.04 | LOSS | -| 17+ | k24_tiny_mixed | tiny | mixed | 470 | 3.57/16.52 | 90773.9 (fused) | 90343.5 | 88104.2 | 183991.0 | 179896.0 | 7625.6 | 2.03 | WIN | 1.98 | WIN | 0.08 | LOSS | -| 17+ | k24_medium_mixed | medium | mixed | 99,512 | 2.60/11.12 | 89640.1 (fused) | 84966.5 | 86376.5 | 268751.0 | 291474.1 | 2621.0 | 3.00 | WIN | 3.25 | WIN | 0.03 | LOSS | -| 17+ | k24_large_mixed | large | mixed | 5,004,671 | 2.58/11.12 | 85767.4 (fused) | 85184.7 | 85509.0 | 556772.8 | 516854.5 | 2286.9 | 6.49 | WIN | 6.03 | WIN | 0.03 | LOSS | -| 2-4 | adv_one_everything | medium | and | 100,002 | 0.28/0.63 | 3643.2 (skip_fused) | 3536.2 | 3374.6 | 3725.4 | 4034.9 | 901.8 | 1.02 | PARITY | 1.11 | WIN | 0.26 | LOSS | -| 2-4 | adv_one_nothing | medium | and | 10,002 | 0.40/0.79 | 2803.7 (skip) | 4055.7 | 2853.7 | 7062.0 | 7261.5 | 1009.7 | 2.52 | WIN | 2.59 | WIN | 0.25 | LOSS | -| 2-4 | adv_or_one_everything | large | or | 10,000,000 | 0.21/0.39 | 3465.4 (skip) | 3458.5 | 3461.7 | 633.2 | - | 771.4 | 0.18 | LOSS | - | n/a | 0.22 | LOSS | -| 2-4 | adv_or_one_nothing | medium | or | 10,000 | 0.21/0.40 | 3429.9 (skip) | 3475.6 | 3595.3 | 5287.0 | 5569.3 | 916.4 | 1.54 | WIN | 1.62 | WIN | 0.26 | LOSS | -| 5-16 | adv_16_nonselective | large | and | 8,271,472 | 0.96/6.74 | 72430.2 (fused) | 71969.7 | 70735.1 | 57095.4 | 59265.9 | 1649.1 | 0.79 | LOSS | 0.82 | LOSS | 0.02 | LOSS | -| 5-16 | adv_16_collapse_one | medium | and | 472 | 0.97/6.64 | 19888.7 (plain) | 20468.5 | 20370.5 | 18712.3 | 19949.1 | 2643.1 | 0.94 | PARITY | 1.00 | PARITY | 0.13 | LOSS | -| 2-4 | adv_correlated_2 | large | and | 5,000,004 | 0.22/0.37 | 3531.9 (fused) | 3495.6 | 3595.0 | 7181.1 | 6992.3 | 921.0 | 2.03 | WIN | 1.98 | WIN | 0.26 | LOSS | -| 5-16 | adv_correlated_5 | large | and | 4,900,007 | 0.55/1.15 | 12279.7 (fused) | 13044.9 | 12683.7 | 6878.6 | 6917.5 | 949.2 | 0.56 | LOSS | 0.56 | LOSS | 0.07 | LOSS | -| 2-4 | adv_contradictory_2 | empty | and | 0 | 0.21/0.37 | 2926.0 (skip_fused) | 2904.2 | 2977.3 | 656.9 | 676.6 | 947.9 | 0.22 | LOSS | 0.23 | LOSS | 0.33 | LOSS | -| 17+ | adv_contradictory_17 | empty | and | 0 | 1.06/7.83 | 7505.2 (plain) | 8087.9 | 14375.9 | 790.0 | 882.2 | 949.5 | 0.11 | LOSS | 0.12 | LOSS | 0.12 | LOSS | -| 2-4 | null_and | large | and | 999,196 | 0.32/0.49 | 4670.4 (skip_fused) | 5726.6 | 4810.2 | 8346.3 | 8109.7 | 961.5 | 1.79 | WIN | 1.74 | WIN | 0.17 | LOSS | -| 1 | null_not | large | not | 4,499,990 | 0.38/0.76 | 2179.7 (skip_fused) | 2179.2 | 2221.7 | 5210.3 | 5399.1 | 1018.5 | 2.39 | WIN | 2.48 | WIN | 0.47 | LOSS | -| 2-4 | null_or | large | or | 1,900,011 | 0.32/0.53 | 4684.8 (skip) | 4032.7 | 4904.5 | 26963.6 | 27898.9 | 1347.2 | 5.76 | WIN | 5.96 | WIN | 0.33 | LOSS | -| 2-4 | null_not_and | large | not | 8,500,703 | 0.44/0.87 | 3955.8 (fused) | 3971.0 | 4159.1 | 74116.9 | 74124.0 | 1188.5 | 18.74 | WIN | 18.74 | WIN | 0.30 | LOSS | -| 5-16 | null_and_5 | large | and | 2,674,492 | 0.92/2.13 | 21901.5 (fused) | 22161.4 | 22509.1 | 17936.4 | 17825.6 | 1060.5 | 0.82 | LOSS | 0.81 | LOSS | 0.05 | LOSS | - -Representation: Count and Any are `virtual` (no mask survives the call); Rows is `transient` (one Keep mask of 1,250,000 bytes held for the call); `persistent` never occurs here. Ours rows has no DuckDB counterpart. - -Summary, N = 10,000,000, threads = 4 (regular grid only: 39 cases; 15 adversarial/nullable cases excluded from the figures below) - -| comparison | weighted ours us | weighted duck us | weighted ratio | weighted | unweighted ours us | unweighted duck us | unweighted ratio | unweighted | geo-mean ratio | -|---|---:|---:|---:|---|---:|---:|---:|---|---:| -| count vs duck count, wall | 12904.5 | 25265.7 | 1.96 | WIN | 46547.9 | 77105.0 | 1.66 | WIN | 1.07 | -| count vs duck count, engine | 12904.5 | 25875.0 | 2.01 | WIN | 46547.9 | 78036.6 | 1.68 | WIN | 1.08 | -| any vs duck exists, wall | 12913.8 | 2107.0 | 0.16 | LOSS | 46604.5 | 2325.8 | 0.05 | LOSS | 0.07 | - -Per K group (count vs duck count, wall; mean us over regular cases): - -| K group | cases | ours us | duck us | ratio | verdict | weight | -|---|---:|---:|---:|---:|---|---:| -| 1 | 3 | 1707.2 | 3116.0 | 1.83 | WIN | 0.34 | -| 2-4 | 9 | 5367.4 | 18271.1 | 3.40 | WIN | 0.46 | -| 5-16 | 9 | 36199.5 | 57792.3 | 1.60 | WIN | 0.14 | -| 17+ | 18 | 79785.8 | 128509.7 | 1.61 | WIN | 0.06 | - -Ours count >= 1000 us (FAILED-GATE on the substrate path, reported): 54 of 54 cases. - diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json deleted file mode 100644 index cc1f767cd..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_duckdb.json +++ /dev/null @@ -1,116 +0,0 @@ -{ -"n": 10000000, -"duckdb_version": "2.0.0", -"runs": 31, -"load": {"1": {"build_us": 5653755.113, "analyze_us": 943.46, "load_us": 5654698.573, "mem_bytes": 814474936}, "4": {"build_us": 4332828.166, "analyze_us": 613.072, "load_us": 4333441.238, "mem_bytes": 814474936}}, -"records": [ -{"id": "k1_tiny_single", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1502.927, "count_warm_med_us": 477.013, "count_warm_p10_us": 408.835, "count_warm_p90_us": 630.858, "count_engine_med_us": 592.148, "exists_cold_us": 1338.812, "exists_warm_med_us": 590.955, "exists_warm_p10_us": 482.909, "exists_warm_p90_us": 690.654, "exists_engine_med_us": 622.01, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k1_medium_single", "threads": 1, "count": 100002, "exists": true, "count_cold_us": 17806.969, "count_warm_med_us": 16065.49, "count_warm_p10_us": 15530.8, "count_warm_p90_us": 20597.148, "count_engine_med_us": 22895.954, "exists_cold_us": 2287.917, "exists_warm_med_us": 920.903, "exists_warm_p10_us": 897.547, "exists_warm_p90_us": 970.571, "exists_engine_med_us": 953.188, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k1_large_single", "threads": 1, "count": 5000008, "exists": true, "count_cold_us": 21972.435, "count_warm_med_us": 14681.996, "count_warm_p10_us": 14370.354, "count_warm_p90_us": 20998.677, "count_engine_med_us": 16553.427, "exists_cold_us": 2115.024, "exists_warm_med_us": 627.561, "exists_warm_p10_us": 579.828, "exists_warm_p90_us": 966.131, "exists_engine_med_us": 711.952, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_tiny_and", "threads": 1, "count": 0, "exists": false, "count_cold_us": 39107.699, "count_warm_med_us": 36607.801, "count_warm_p10_us": 35727.308, "count_warm_p90_us": 37243.996, "count_engine_med_us": 37059.917, "exists_cold_us": 38545.787, "exists_warm_med_us": 40659.084, "exists_warm_p10_us": 37146.254, "exists_warm_p90_us": 49803.645, "exists_engine_med_us": 38382.767, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_medium_and", "threads": 1, "count": 101386, "exists": true, "count_cold_us": 35388.754, "count_warm_med_us": 34347.86, "count_warm_p10_us": 32493.15, "count_warm_p90_us": 46666.538, "count_engine_med_us": 36076.56, "exists_cold_us": 1915.497, "exists_warm_med_us": 699.225, "exists_warm_p10_us": 668.549, "exists_warm_p90_us": 761.953, "exists_engine_med_us": 777.487, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_large_and", "threads": 1, "count": 4996187, "exists": true, "count_cold_us": 41949.634, "count_warm_med_us": 41119.455, "count_warm_p10_us": 39527.829, "count_warm_p90_us": 43056.729, "count_engine_med_us": 41982.082, "exists_cold_us": 1922.807, "exists_warm_med_us": 713.718, "exists_warm_p10_us": 655.19, "exists_warm_p90_us": 870.533, "exists_engine_med_us": 797.706, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1543.436, "count_warm_med_us": 539.027, "count_warm_p10_us": 465.898, "count_warm_p90_us": 627.315, "count_engine_med_us": 582.296, "exists_cold_us": 1491.669, "exists_warm_med_us": 606.528, "exists_warm_p10_us": 561.03, "exists_warm_p90_us": 660.887, "exists_engine_med_us": 693.028, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_medium_or", "threads": 1, "count": 100001, "exists": true, "count_cold_us": 65330.231, "count_warm_med_us": 66221.265, "count_warm_p10_us": 61354.836, "count_warm_p90_us": 81898.146, "count_engine_med_us": 65374.369, "exists_cold_us": 2907.079, "exists_warm_med_us": 1148.436, "exists_warm_p10_us": 1090.744, "exists_warm_p90_us": 1229.111, "exists_engine_med_us": 1195.573, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_large_or", "threads": 1, "count": 5006214, "exists": true, "count_cold_us": 197823.689, "count_warm_med_us": 192171.033, "count_warm_p10_us": 184787.064, "count_warm_p90_us": 214027.569, "count_engine_med_us": 191457.375, "exists_cold_us": 3055.179, "exists_warm_med_us": 812.988, "exists_warm_p10_us": 740.335, "exists_warm_p90_us": 1276.436, "exists_engine_med_us": 893.209, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_tiny_mixed", "threads": 1, "count": 0, "exists": false, "count_cold_us": 39844.837, "count_warm_med_us": 40149.951, "count_warm_p10_us": 37893.998, "count_warm_p90_us": 52291.964, "count_engine_med_us": 55077.566, "exists_cold_us": 55464.296, "exists_warm_med_us": 52672.705, "exists_warm_p10_us": 38049.641, "exists_warm_p90_us": 54798.037, "exists_engine_med_us": 39506.53, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_medium_mixed", "threads": 1, "count": 98184, "exists": true, "count_cold_us": 49169.464, "count_warm_med_us": 47956.362, "count_warm_p10_us": 46308.891, "count_warm_p90_us": 59247.109, "count_engine_med_us": 52098.581, "exists_cold_us": 2183.775, "exists_warm_med_us": 791.66, "exists_warm_p10_us": 741.61, "exists_warm_p90_us": 896.465, "exists_engine_med_us": 855.07, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k3_large_mixed", "threads": 1, "count": 4994319, "exists": true, "count_cold_us": 147057.985, "count_warm_med_us": 145146.481, "count_warm_p10_us": 139223.291, "count_warm_p90_us": 176244.875, "count_engine_med_us": 147578.576, "exists_cold_us": 2236.074, "exists_warm_med_us": 816.537, "exists_warm_p10_us": 764.745, "exists_warm_p90_us": 946.14, "exists_engine_med_us": 872.718, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_tiny_and", "threads": 1, "count": 470, "exists": true, "count_cold_us": 55956.83, "count_warm_med_us": 54096.707, "count_warm_p10_us": 52613.907, "count_warm_p90_us": 60750.264, "count_engine_med_us": 60818.107, "exists_cold_us": 3842.115, "exists_warm_med_us": 1617.39, "exists_warm_p10_us": 1284.12, "exists_warm_p90_us": 1742.286, "exists_engine_med_us": 1768.812, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_medium_and", "threads": 1, "count": 100924, "exists": true, "count_cold_us": 84760.756, "count_warm_med_us": 83866.331, "count_warm_p10_us": 78918.1, "count_warm_p90_us": 97287.874, "count_engine_med_us": 82392.971, "exists_cold_us": 2725.984, "exists_warm_med_us": 958.659, "exists_warm_p10_us": 903.8, "exists_warm_p90_us": 1021.921, "exists_engine_med_us": 998.406, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_large_and", "threads": 1, "count": 4981051, "exists": true, "count_cold_us": 108266.632, "count_warm_med_us": 108897.643, "count_warm_p10_us": 103072.351, "count_warm_p90_us": 143759.357, "count_engine_med_us": 106359.689, "exists_cold_us": 2578.549, "exists_warm_med_us": 946.59, "exists_warm_p10_us": 900.27, "exists_warm_p90_us": 1052.842, "exists_engine_med_us": 1035.345, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2263.95, "count_warm_med_us": 702.615, "count_warm_p10_us": 616.987, "count_warm_p90_us": 762.604, "count_engine_med_us": 944.155, "exists_cold_us": 2094.385, "exists_warm_med_us": 1262.405, "exists_warm_p10_us": 828.011, "exists_warm_p90_us": 1459.215, "exists_engine_med_us": 1247.973, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_medium_or", "threads": 1, "count": 99996, "exists": true, "count_cold_us": 198433.602, "count_warm_med_us": 173318.713, "count_warm_p10_us": 165066.428, "count_warm_p90_us": 210973.249, "count_engine_med_us": 171537.306, "exists_cold_us": 2952.271, "exists_warm_med_us": 957.676, "exists_warm_p10_us": 897.092, "exists_warm_p90_us": 1081.243, "exists_engine_med_us": 1085.393, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_large_or", "threads": 1, "count": 4988280, "exists": true, "count_cold_us": 293438.828, "count_warm_med_us": 310465.768, "count_warm_p10_us": 287628.682, "count_warm_p90_us": 357198.362, "count_engine_med_us": 300716.615, "exists_cold_us": 2625.46, "exists_warm_med_us": 995.7, "exists_warm_p10_us": 954.724, "exists_warm_p90_us": 1119.895, "exists_engine_med_us": 1097.319, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_tiny_mixed", "threads": 1, "count": 935, "exists": true, "count_cold_us": 156531.439, "count_warm_med_us": 150918.097, "count_warm_p10_us": 139435.223, "count_warm_p90_us": 171941.7, "count_engine_med_us": 146203.897, "exists_cold_us": 4109.031, "exists_warm_med_us": 1770.589, "exists_warm_p10_us": 1685.204, "exists_warm_p90_us": 2006.644, "exists_engine_med_us": 1839.301, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_medium_mixed", "threads": 1, "count": 99047, "exists": true, "count_cold_us": 259289.199, "count_warm_med_us": 263585.041, "count_warm_p10_us": 252283.056, "count_warm_p90_us": 278934.206, "count_engine_med_us": 291324.837, "exists_cold_us": 2864.733, "exists_warm_med_us": 1106.107, "exists_warm_p10_us": 999.16, "exists_warm_p90_us": 1196.28, "exists_engine_med_us": 1126.869, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k8_large_mixed", "threads": 1, "count": 5001665, "exists": true, "count_cold_us": 733782.904, "count_warm_med_us": 717301.74, "count_warm_p10_us": 676493.995, "count_warm_p90_us": 764098.636, "count_engine_med_us": 687487.765, "exists_cold_us": 3179.222, "exists_warm_med_us": 1228.772, "exists_warm_p10_us": 1149.402, "exists_warm_p90_us": 1410.354, "exists_engine_med_us": 1472.383, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_tiny_and", "threads": 1, "count": 467, "exists": true, "count_cold_us": 161678.105, "count_warm_med_us": 142113.741, "count_warm_p10_us": 138068.272, "count_warm_p90_us": 159330.942, "count_engine_med_us": 145205.464, "exists_cold_us": 6489.25, "exists_warm_med_us": 2075.984, "exists_warm_p10_us": 1838.617, "exists_warm_p90_us": 2591.809, "exists_engine_med_us": 2130.671, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_medium_and", "threads": 1, "count": 97561, "exists": true, "count_cold_us": 158241.606, "count_warm_med_us": 159095.187, "count_warm_p10_us": 152453.355, "count_warm_p90_us": 179033.291, "count_engine_med_us": 169152.232, "exists_cold_us": 4727.457, "exists_warm_med_us": 1784.759, "exists_warm_p10_us": 1326.998, "exists_warm_p90_us": 1926.197, "exists_engine_med_us": 1979.829, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_large_and", "threads": 1, "count": 4998174, "exists": true, "count_cold_us": 224923.666, "count_warm_med_us": 212825.209, "count_warm_p10_us": 200323.212, "count_warm_p90_us": 243018.876, "count_engine_med_us": 222076.112, "exists_cold_us": 3894.09, "exists_warm_med_us": 1341.833, "exists_warm_p10_us": 1261.508, "exists_warm_p90_us": 1489.43, "exists_engine_med_us": 1444.638, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2441.139, "count_warm_med_us": 1041.07, "count_warm_p10_us": 861.031, "count_warm_p90_us": 1580.251, "count_engine_med_us": 932.302, "exists_cold_us": 3979.77, "exists_warm_med_us": 1473.901, "exists_warm_p10_us": 998.348, "exists_warm_p90_us": 1587.639, "exists_engine_med_us": 1048.242, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_medium_or", "threads": 1, "count": 100002, "exists": true, "count_cold_us": 218725.526, "count_warm_med_us": 225787.854, "count_warm_p10_us": 217506.411, "count_warm_p90_us": 239055.304, "count_engine_med_us": 239839.676, "exists_cold_us": 4341.183, "exists_warm_med_us": 1347.261, "exists_warm_p10_us": 1285.183, "exists_warm_p90_us": 1574.028, "exists_engine_med_us": 1366.944, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_large_or", "threads": 1, "count": 5051202, "exists": true, "count_cold_us": 470453.96, "count_warm_med_us": 478393.135, "count_warm_p10_us": 459015.548, "count_warm_p90_us": 522631.372, "count_engine_med_us": 542011.279, "exists_cold_us": 3415.555, "exists_warm_med_us": 1348.977, "exists_warm_p10_us": 1297.594, "exists_warm_p90_us": 1419.292, "exists_engine_med_us": 1404.311, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_tiny_mixed", "threads": 1, "count": 467, "exists": true, "count_cold_us": 126345.808, "count_warm_med_us": 136162.45, "count_warm_p10_us": 124953.163, "count_warm_p90_us": 153836.004, "count_engine_med_us": 132247.891, "exists_cold_us": 4726.517, "exists_warm_med_us": 2176.461, "exists_warm_p10_us": 2072.42, "exists_warm_p90_us": 2508.502, "exists_engine_med_us": 2261.205, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_medium_mixed", "threads": 1, "count": 100925, "exists": true, "count_cold_us": 278162.835, "count_warm_med_us": 293817.992, "count_warm_p10_us": 268319.422, "count_warm_p90_us": 334273.536, "count_engine_med_us": 298033.857, "exists_cold_us": 3776.0, "exists_warm_med_us": 1420.571, "exists_warm_p10_us": 1337.46, "exists_warm_p90_us": 1554.073, "exists_engine_med_us": 1634.848, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k17_large_mixed", "threads": 1, "count": 4982809, "exists": true, "count_cold_us": 1245376.339, "count_warm_med_us": 1382934.443, "count_warm_p10_us": 1296478.545, "count_warm_p90_us": 1458620.134, "count_engine_med_us": 1401588.613, "exists_cold_us": 5825.652, "exists_warm_med_us": 2389.558, "exists_warm_p10_us": 2230.868, "exists_warm_p90_us": 2581.573, "exists_engine_med_us": 2381.286, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_tiny_and", "threads": 1, "count": 472, "exists": true, "count_cold_us": 185195.037, "count_warm_med_us": 147036.367, "count_warm_p10_us": 137224.897, "count_warm_p90_us": 177397.347, "count_engine_med_us": 137556.344, "exists_cold_us": 4522.701, "exists_warm_med_us": 1684.933, "exists_warm_p10_us": 1613.6, "exists_warm_p90_us": 1955.555, "exists_engine_med_us": 2038.064, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_medium_and", "threads": 1, "count": 99057, "exists": true, "count_cold_us": 189360.304, "count_warm_med_us": 188568.633, "count_warm_p10_us": 178043.045, "count_warm_p90_us": 207406.084, "count_engine_med_us": 187580.207, "exists_cold_us": 4010.641, "exists_warm_med_us": 1508.858, "exists_warm_p10_us": 1401.005, "exists_warm_p90_us": 1594.974, "exists_engine_med_us": 1675.06, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_large_and", "threads": 1, "count": 5020727, "exists": true, "count_cold_us": 257003.716, "count_warm_med_us": 248329.805, "count_warm_p10_us": 240150.937, "count_warm_p90_us": 273724.578, "count_engine_med_us": 243513.328, "exists_cold_us": 4200.436, "exists_warm_med_us": 1504.527, "exists_warm_p10_us": 1427.48, "exists_warm_p90_us": 1630.253, "exists_engine_med_us": 1775.404, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_tiny_or", "threads": 1, "count": 0, "exists": false, "count_cold_us": 2913.745, "count_warm_med_us": 1002.399, "count_warm_p10_us": 961.082, "count_warm_p90_us": 1046.008, "count_engine_med_us": 1046.244, "exists_cold_us": 2984.651, "exists_warm_med_us": 1129.842, "exists_warm_p10_us": 1074.763, "exists_warm_p90_us": 1424.99, "exists_engine_med_us": 1119.056, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_medium_or", "threads": 1, "count": 99996, "exists": true, "count_cold_us": 255567.173, "count_warm_med_us": 227149.938, "count_warm_p10_us": 214776.252, "count_warm_p90_us": 254285.605, "count_engine_med_us": 239568.307, "exists_cold_us": 4061.559, "exists_warm_med_us": 1463.55, "exists_warm_p10_us": 1368.286, "exists_warm_p90_us": 1542.053, "exists_engine_med_us": 1592.923, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_large_or", "threads": 1, "count": 4956413, "exists": true, "count_cold_us": 597798.27, "count_warm_med_us": 572694.67, "count_warm_p10_us": 542379.5, "count_warm_p90_us": 619256.523, "count_engine_med_us": 558926.018, "exists_cold_us": 4702.7, "exists_warm_med_us": 1600.601, "exists_warm_p10_us": 1467.353, "exists_warm_p90_us": 1804.452, "exists_engine_med_us": 1799.861, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_tiny_mixed", "threads": 1, "count": 470, "exists": true, "count_cold_us": 617623.369, "count_warm_med_us": 657116.085, "count_warm_p10_us": 580074.094, "count_warm_p90_us": 864066.025, "count_engine_med_us": 567573.711, "exists_cold_us": 4719.75, "exists_warm_med_us": 1916.48, "exists_warm_p10_us": 1847.831, "exists_warm_p90_us": 2013.212, "exists_engine_med_us": 2046.632, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_medium_mixed", "threads": 1, "count": 99512, "exists": true, "count_cold_us": 982435.042, "count_warm_med_us": 932183.176, "count_warm_p10_us": 813157.076, "count_warm_p90_us": 1032239.762, "count_engine_med_us": 981755.737, "exists_cold_us": 4763.673, "exists_warm_med_us": 1784.214, "exists_warm_p10_us": 1681.136, "exists_warm_p90_us": 1973.465, "exists_engine_med_us": 1940.677, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k24_large_mixed", "threads": 1, "count": 5004671, "exists": true, "count_cold_us": 2214063.598, "count_warm_med_us": 2090124.495, "count_warm_p10_us": 1915360.156, "count_warm_p90_us": 2191581.777, "count_engine_med_us": 1985161.07, "exists_cold_us": 4817.631, "exists_warm_med_us": 2006.542, "exists_warm_p10_us": 1922.813, "exists_warm_p90_us": 2198.233, "exists_engine_med_us": 2103.571, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_one_everything", "threads": 1, "count": 100002, "exists": true, "count_cold_us": 15811.984, "count_warm_med_us": 14886.763, "count_warm_p10_us": 14636.467, "count_warm_p90_us": 16135.664, "count_engine_med_us": 24485.818, "exists_cold_us": 2685.022, "exists_warm_med_us": 972.847, "exists_warm_p10_us": 825.463, "exists_warm_p90_us": 1045.69, "exists_engine_med_us": 814.382, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_one_nothing", "threads": 1, "count": 10002, "exists": true, "count_cold_us": 26575.487, "count_warm_med_us": 25638.508, "count_warm_p10_us": 25230.058, "count_warm_p90_us": 31352.376, "count_engine_med_us": 29261.356, "exists_cold_us": 2552.21, "exists_warm_med_us": 1090.365, "exists_warm_p10_us": 1037.793, "exists_warm_p90_us": 1149.761, "exists_engine_med_us": 1089.097, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_or_one_everything", "threads": 1, "count": 10000000, "exists": true, "count_cold_us": 2209.321, "count_warm_med_us": 847.404, "count_warm_p10_us": 799.116, "count_warm_p90_us": 922.304, "count_engine_med_us": null, "exists_cold_us": 2233.189, "exists_warm_med_us": 922.901, "exists_warm_p10_us": 873.196, "exists_warm_p90_us": 1000.03, "exists_engine_med_us": 946.774, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_or_one_nothing", "threads": 1, "count": 10000, "exists": true, "count_cold_us": 30291.237, "count_warm_med_us": 22805.111, "count_warm_p10_us": 20120.688, "count_warm_p90_us": 28261.278, "count_engine_med_us": 23057.298, "exists_cold_us": 1684.895, "exists_warm_med_us": 713.417, "exists_warm_p10_us": 649.133, "exists_warm_p90_us": 824.781, "exists_engine_med_us": 774.878, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_16_nonselective", "threads": 1, "count": 8271472, "exists": true, "count_cold_us": 227110.399, "count_warm_med_us": 217536.641, "count_warm_p10_us": 203810.381, "count_warm_p90_us": 263775.478, "count_engine_med_us": 234985.884, "exists_cold_us": 3606.988, "exists_warm_med_us": 1441.151, "exists_warm_p10_us": 1229.212, "exists_warm_p90_us": 1933.781, "exists_engine_med_us": 1426.411, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_16_collapse_one", "threads": 1, "count": 472, "exists": true, "count_cold_us": 67674.311, "count_warm_med_us": 64304.967, "count_warm_p10_us": 60969.301, "count_warm_p90_us": 71367.624, "count_engine_med_us": 64808.0, "exists_cold_us": 3577.563, "exists_warm_med_us": 1413.118, "exists_warm_p10_us": 1365.213, "exists_warm_p90_us": 1566.712, "exists_engine_med_us": 1538.06, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_correlated_2", "threads": 1, "count": 5000004, "exists": true, "count_cold_us": 27470.857, "count_warm_med_us": 28390.526, "count_warm_p10_us": 27325.025, "count_warm_p90_us": 32607.226, "count_engine_med_us": 30240.064, "exists_cold_us": 1755.252, "exists_warm_med_us": 667.976, "exists_warm_p10_us": 631.758, "exists_warm_p90_us": 783.548, "exists_engine_med_us": 724.291, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_correlated_5", "threads": 1, "count": 4900007, "exists": true, "count_cold_us": 30566.568, "count_warm_med_us": 31018.661, "count_warm_p10_us": 28904.343, "count_warm_p90_us": 37355.472, "count_engine_med_us": 32148.319, "exists_cold_us": 2982.513, "exists_warm_med_us": 782.315, "exists_warm_p10_us": 698.56, "exists_warm_p90_us": 1215.937, "exists_engine_med_us": 860.639, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_contradictory_2", "threads": 1, "count": 0, "exists": false, "count_cold_us": 1831.854, "count_warm_med_us": 727.764, "count_warm_p10_us": 676.574, "count_warm_p90_us": 817.386, "count_engine_med_us": 683.205, "exists_cold_us": 1889.685, "exists_warm_med_us": 856.112, "exists_warm_p10_us": 818.926, "exists_warm_p90_us": 932.513, "exists_engine_med_us": 823.408, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "adv_contradictory_17", "threads": 1, "count": 0, "exists": false, "count_cold_us": 3168.312, "count_warm_med_us": 710.952, "count_warm_p10_us": 650.282, "count_warm_p90_us": 1139.29, "count_engine_med_us": 789.93, "exists_cold_us": 2443.762, "exists_warm_med_us": 821.251, "exists_warm_p10_us": 753.121, "exists_warm_p90_us": 1070.011, "exists_engine_med_us": 834.81, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "null_and", "threads": 1, "count": 999196, "exists": true, "count_cold_us": 35657.177, "count_warm_med_us": 36063.316, "count_warm_p10_us": 30961.02, "count_warm_p90_us": 45946.56, "count_engine_med_us": 36621.35, "exists_cold_us": 2789.272, "exists_warm_med_us": 1035.524, "exists_warm_p10_us": 1000.516, "exists_warm_p90_us": 1102.593, "exists_engine_med_us": 734.41, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "null_not", "threads": 1, "count": 4499990, "exists": true, "count_cold_us": 21289.359, "count_warm_med_us": 20619.505, "count_warm_p10_us": 19062.566, "count_warm_p90_us": 27337.407, "count_engine_med_us": 20156.17, "exists_cold_us": 1931.649, "exists_warm_med_us": 775.507, "exists_warm_p10_us": 671.172, "exists_warm_p90_us": 1011.106, "exists_engine_med_us": 918.7, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "null_or", "threads": 1, "count": 1900011, "exists": true, "count_cold_us": 91765.326, "count_warm_med_us": 99873.386, "count_warm_p10_us": 92502.283, "count_warm_p90_us": 125110.66, "count_engine_med_us": 132234.732, "exists_cold_us": 2787.508, "exists_warm_med_us": 1117.043, "exists_warm_p10_us": 1064.47, "exists_warm_p90_us": 1181.74, "exists_engine_med_us": 1165.213, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "null_not_and", "threads": 1, "count": 8500703, "exists": true, "count_cold_us": 268779.912, "count_warm_med_us": 268063.025, "count_warm_p10_us": 253638.211, "count_warm_p90_us": 292741.012, "count_engine_med_us": 316992.886, "exists_cold_us": 2140.296, "exists_warm_med_us": 787.313, "exists_warm_p10_us": 763.485, "exists_warm_p90_us": 855.888, "exists_engine_med_us": 883.385, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "null_and_5", "threads": 1, "count": 2674492, "exists": true, "count_cold_us": 60103.157, "count_warm_med_us": 70334.551, "count_warm_p10_us": 59095.509, "count_warm_p90_us": 88203.946, "count_engine_med_us": 73451.034, "exists_cold_us": 2260.056, "exists_warm_med_us": 814.59, "exists_warm_p10_us": 788.315, "exists_warm_p90_us": 887.763, "exists_engine_med_us": 947.001, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 139.161}, -{"id": "k1_tiny_single", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1871.647, "count_warm_med_us": 749.223, "count_warm_p10_us": 678.621, "count_warm_p90_us": 873.985, "count_engine_med_us": 608.702, "exists_cold_us": 1680.336, "exists_warm_med_us": 740.263, "exists_warm_p10_us": 646.151, "exists_warm_p90_us": 856.733, "exists_engine_med_us": 851.195, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k1_medium_single", "threads": 4, "count": 100002, "exists": true, "count_cold_us": 6434.684, "count_warm_med_us": 4115.561, "count_warm_p10_us": 3877.721, "count_warm_p90_us": 5311.699, "count_engine_med_us": 4174.612, "exists_cold_us": 1729.577, "exists_warm_med_us": 878.051, "exists_warm_p10_us": 793.444, "exists_warm_p90_us": 1077.537, "exists_engine_med_us": 963.92, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k1_large_single", "threads": 4, "count": 5000008, "exists": true, "count_cold_us": 5776.252, "count_warm_med_us": 4483.299, "count_warm_p10_us": 4219.737, "count_warm_p90_us": 4782.79, "count_engine_med_us": 4355.837, "exists_cold_us": 1907.953, "exists_warm_med_us": 913.845, "exists_warm_p10_us": 820.975, "exists_warm_p90_us": 961.249, "exists_engine_med_us": 957.333, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_tiny_and", "threads": 4, "count": 0, "exists": false, "count_cold_us": 15528.342, "count_warm_med_us": 10953.751, "count_warm_p10_us": 10139.613, "count_warm_p90_us": 11809.298, "count_engine_med_us": 10635.067, "exists_cold_us": 11377.072, "exists_warm_med_us": 10196.956, "exists_warm_p10_us": 9703.267, "exists_warm_p90_us": 11510.52, "exists_engine_med_us": 10711.576, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_medium_and", "threads": 4, "count": 101386, "exists": true, "count_cold_us": 11744.137, "count_warm_med_us": 9979.637, "count_warm_p10_us": 9089.253, "count_warm_p90_us": 11851.182, "count_engine_med_us": 10728.556, "exists_cold_us": 2050.705, "exists_warm_med_us": 1034.455, "exists_warm_p10_us": 964.839, "exists_warm_p90_us": 1126.23, "exists_engine_med_us": 1122.253, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_large_and", "threads": 4, "count": 4996187, "exists": true, "count_cold_us": 14624.606, "count_warm_med_us": 12053.086, "count_warm_p10_us": 11507.726, "count_warm_p90_us": 13913.602, "count_engine_med_us": 12181.618, "exists_cold_us": 1895.561, "exists_warm_med_us": 1018.205, "exists_warm_p10_us": 965.207, "exists_warm_p90_us": 1089.137, "exists_engine_med_us": 1195.977, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1611.062, "count_warm_med_us": 648.233, "count_warm_p10_us": 607.604, "count_warm_p90_us": 687.717, "count_engine_med_us": 678.099, "exists_cold_us": 1741.133, "exists_warm_med_us": 750.087, "exists_warm_p10_us": 691.034, "exists_warm_p90_us": 861.979, "exists_engine_med_us": 785.754, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_medium_or", "threads": 4, "count": 100001, "exists": true, "count_cold_us": 21176.712, "count_warm_med_us": 18505.289, "count_warm_p10_us": 17818.317, "count_warm_p90_us": 20038.204, "count_engine_med_us": 18795.085, "exists_cold_us": 2297.622, "exists_warm_med_us": 1011.684, "exists_warm_p10_us": 958.979, "exists_warm_p90_us": 1105.431, "exists_engine_med_us": 1167.361, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_large_or", "threads": 4, "count": 5006214, "exists": true, "count_cold_us": 56874.199, "count_warm_med_us": 50145.192, "count_warm_p10_us": 48939.839, "count_warm_p90_us": 53301.9, "count_engine_med_us": 54685.31, "exists_cold_us": 2441.51, "exists_warm_med_us": 1035.585, "exists_warm_p10_us": 925.192, "exists_warm_p90_us": 1156.646, "exists_engine_med_us": 1064.823, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_tiny_mixed", "threads": 4, "count": 0, "exists": false, "count_cold_us": 12750.734, "count_warm_med_us": 10858.104, "count_warm_p10_us": 10216.734, "count_warm_p90_us": 12540.32, "count_engine_med_us": 10898.165, "exists_cold_us": 13297.504, "exists_warm_med_us": 11380.755, "exists_warm_p10_us": 9960.307, "exists_warm_p90_us": 12350.923, "exists_engine_med_us": 12286.24, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_medium_mixed", "threads": 4, "count": 98184, "exists": true, "count_cold_us": 15832.473, "count_warm_med_us": 13830.31, "count_warm_p10_us": 13214.573, "count_warm_p90_us": 14880.945, "count_engine_med_us": 12542.499, "exists_cold_us": 1980.489, "exists_warm_med_us": 976.191, "exists_warm_p10_us": 909.123, "exists_warm_p90_us": 1121.732, "exists_engine_med_us": 1084.871, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k3_large_mixed", "threads": 4, "count": 4994319, "exists": true, "count_cold_us": 38519.307, "count_warm_med_us": 37466.714, "count_warm_p10_us": 36130.718, "count_warm_p90_us": 41631.505, "count_engine_med_us": 40296.914, "exists_cold_us": 2164.565, "exists_warm_med_us": 1052.128, "exists_warm_p10_us": 979.32, "exists_warm_p90_us": 1187.505, "exists_engine_med_us": 1219.486, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_tiny_and", "threads": 4, "count": 470, "exists": true, "count_cold_us": 20922.166, "count_warm_med_us": 16602.223, "count_warm_p10_us": 15278.63, "count_warm_p90_us": 17679.785, "count_engine_med_us": 19904.764, "exists_cold_us": 4028.688, "exists_warm_med_us": 1921.746, "exists_warm_p10_us": 1721.622, "exists_warm_p90_us": 2180.01, "exists_engine_med_us": 1959.764, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_medium_and", "threads": 4, "count": 100924, "exists": true, "count_cold_us": 26853.624, "count_warm_med_us": 26988.835, "count_warm_p10_us": 24780.696, "count_warm_p90_us": 33097.631, "count_engine_med_us": 24283.361, "exists_cold_us": 2554.211, "exists_warm_med_us": 1249.654, "exists_warm_p10_us": 1203.72, "exists_warm_p90_us": 1349.364, "exists_engine_med_us": 1425.402, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_large_and", "threads": 4, "count": 4981051, "exists": true, "count_cold_us": 31066.578, "count_warm_med_us": 30166.363, "count_warm_p10_us": 27901.775, "count_warm_p90_us": 32135.999, "count_engine_med_us": 29397.203, "exists_cold_us": 5246.5, "exists_warm_med_us": 1241.485, "exists_warm_p10_us": 1156.362, "exists_warm_p90_us": 1304.74, "exists_engine_med_us": 1292.917, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1965.874, "count_warm_med_us": 798.097, "count_warm_p10_us": 739.319, "count_warm_p90_us": 842.183, "count_engine_med_us": 851.762, "exists_cold_us": 1904.567, "exists_warm_med_us": 1022.548, "exists_warm_p10_us": 887.954, "exists_warm_p90_us": 1334.444, "exists_engine_med_us": 1231.076, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_medium_or", "threads": 4, "count": 99996, "exists": true, "count_cold_us": 52176.701, "count_warm_med_us": 51723.336, "count_warm_p10_us": 45960.011, "count_warm_p90_us": 58742.962, "count_engine_med_us": 46572.988, "exists_cold_us": 3721.637, "exists_warm_med_us": 1226.379, "exists_warm_p10_us": 1157.127, "exists_warm_p90_us": 1306.21, "exists_engine_med_us": 1403.546, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_large_or", "threads": 4, "count": 4988280, "exists": true, "count_cold_us": 77316.18, "count_warm_med_us": 84262.814, "count_warm_p10_us": 78170.756, "count_warm_p90_us": 93063.477, "count_engine_med_us": 89431.826, "exists_cold_us": 3065.98, "exists_warm_med_us": 1399.589, "exists_warm_p10_us": 1296.596, "exists_warm_p90_us": 1530.809, "exists_engine_med_us": 1558.938, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_tiny_mixed", "threads": 4, "count": 935, "exists": true, "count_cold_us": 44939.493, "count_warm_med_us": 43857.059, "count_warm_p10_us": 38495.913, "count_warm_p90_us": 48788.968, "count_engine_med_us": 43639.95, "exists_cold_us": 12641.156, "exists_warm_med_us": 2757.178, "exists_warm_p10_us": 2507.268, "exists_warm_p90_us": 3815.503, "exists_engine_med_us": 3252.194, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_medium_mixed", "threads": 4, "count": 99047, "exists": true, "count_cold_us": 74151.891, "count_warm_med_us": 78663.745, "count_warm_p10_us": 72928.343, "count_warm_p90_us": 84975.83, "count_engine_med_us": 87577.482, "exists_cold_us": 3970.425, "exists_warm_med_us": 1337.456, "exists_warm_p10_us": 1244.012, "exists_warm_p90_us": 1622.865, "exists_engine_med_us": 1461.696, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k8_large_mixed", "threads": 4, "count": 5001665, "exists": true, "count_cold_us": 186987.292, "count_warm_med_us": 187067.914, "count_warm_p10_us": 179365.609, "count_warm_p90_us": 203567.056, "count_engine_med_us": 192926.021, "exists_cold_us": 2976.847, "exists_warm_med_us": 1470.576, "exists_warm_p10_us": 1337.175, "exists_warm_p90_us": 1620.904, "exists_engine_med_us": 1572.57, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_tiny_and", "threads": 4, "count": 467, "exists": true, "count_cold_us": 46080.731, "count_warm_med_us": 41400.91, "count_warm_p10_us": 37611.117, "count_warm_p90_us": 44760.749, "count_engine_med_us": 37266.567, "exists_cold_us": 4689.946, "exists_warm_med_us": 2457.756, "exists_warm_p10_us": 2359.79, "exists_warm_p90_us": 2885.134, "exists_engine_med_us": 2901.454, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_medium_and", "threads": 4, "count": 97561, "exists": true, "count_cold_us": 46896.638, "count_warm_med_us": 43895.281, "count_warm_p10_us": 41964.84, "count_warm_p90_us": 47762.963, "count_engine_med_us": 45147.555, "exists_cold_us": 3833.062, "exists_warm_med_us": 1537.961, "exists_warm_p10_us": 1459.985, "exists_warm_p90_us": 1911.187, "exists_engine_med_us": 1864.88, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_large_and", "threads": 4, "count": 4998174, "exists": true, "count_cold_us": 66718.405, "count_warm_med_us": 57312.287, "count_warm_p10_us": 54038.012, "count_warm_p90_us": 65407.923, "count_engine_med_us": 55350.143, "exists_cold_us": 3548.841, "exists_warm_med_us": 1651.631, "exists_warm_p10_us": 1558.949, "exists_warm_p90_us": 1980.82, "exists_engine_med_us": 1882.948, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 3615.768, "count_warm_med_us": 1239.057, "count_warm_p10_us": 969.255, "count_warm_p90_us": 1518.573, "count_engine_med_us": 1011.02, "exists_cold_us": 6553.592, "exists_warm_med_us": 1299.219, "exists_warm_p10_us": 1053.059, "exists_warm_p90_us": 1496.654, "exists_engine_med_us": 1162.551, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_medium_or", "threads": 4, "count": 100002, "exists": true, "count_cold_us": 85288.456, "count_warm_med_us": 70731.677, "count_warm_p10_us": 60546.573, "count_warm_p90_us": 77508.222, "count_engine_med_us": 71276.998, "exists_cold_us": 3576.821, "exists_warm_med_us": 1534.538, "exists_warm_p10_us": 1477.204, "exists_warm_p90_us": 1702.162, "exists_engine_med_us": 1700.985, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_large_or", "threads": 4, "count": 5051202, "exists": true, "count_cold_us": 134673.595, "count_warm_med_us": 132258.515, "count_warm_p10_us": 121620.182, "count_warm_p90_us": 144933.423, "count_engine_med_us": 128086.91, "exists_cold_us": 4738.333, "exists_warm_med_us": 1600.48, "exists_warm_p10_us": 1472.364, "exists_warm_p90_us": 1886.283, "exists_engine_med_us": 1739.859, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_tiny_mixed", "threads": 4, "count": 467, "exists": true, "count_cold_us": 46142.743, "count_warm_med_us": 37984.382, "count_warm_p10_us": 36448.702, "count_warm_p90_us": 42364.04, "count_engine_med_us": 42628.101, "exists_cold_us": 5223.436, "exists_warm_med_us": 3366.925, "exists_warm_p10_us": 2872.097, "exists_warm_p90_us": 3782.413, "exists_engine_med_us": 3183.765, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_medium_mixed", "threads": 4, "count": 100925, "exists": true, "count_cold_us": 102069.82, "count_warm_med_us": 82346.786, "count_warm_p10_us": 76204.43, "count_warm_p90_us": 96357.157, "count_engine_med_us": 85098.49, "exists_cold_us": 4511.697, "exists_warm_med_us": 1813.522, "exists_warm_p10_us": 1659.229, "exists_warm_p90_us": 2054.266, "exists_engine_med_us": 1811.839, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k17_large_mixed", "threads": 4, "count": 4982809, "exists": true, "count_cold_us": 386468.494, "count_warm_med_us": 363912.099, "count_warm_p10_us": 346427.768, "count_warm_p90_us": 395204.582, "count_engine_med_us": 367205.728, "exists_cold_us": 4495.797, "exists_warm_med_us": 2557.799, "exists_warm_p10_us": 2317.096, "exists_warm_p90_us": 2794.218, "exists_engine_med_us": 2730.663, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_tiny_and", "threads": 4, "count": 472, "exists": true, "count_cold_us": 44860.351, "count_warm_med_us": 42430.727, "count_warm_p10_us": 37389.26, "count_warm_p90_us": 52364.82, "count_engine_med_us": 53442.469, "exists_cold_us": 5692.541, "exists_warm_med_us": 2717.197, "exists_warm_p10_us": 2406.995, "exists_warm_p90_us": 3022.516, "exists_engine_med_us": 3438.811, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_medium_and", "threads": 4, "count": 99057, "exists": true, "count_cold_us": 88182.938, "count_warm_med_us": 55181.249, "count_warm_p10_us": 49571.319, "count_warm_p90_us": 61915.714, "count_engine_med_us": 65205.926, "exists_cold_us": 6411.247, "exists_warm_med_us": 2579.024, "exists_warm_p10_us": 2428.74, "exists_warm_p90_us": 2775.042, "exists_engine_med_us": 2760.369, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_large_and", "threads": 4, "count": 5020727, "exists": true, "count_cold_us": 77131.727, "count_warm_med_us": 68975.016, "count_warm_p10_us": 62146.114, "count_warm_p90_us": 76479.141, "count_engine_med_us": 69978.948, "exists_cold_us": 7802.982, "exists_warm_med_us": 2407.785, "exists_warm_p10_us": 2222.749, "exists_warm_p90_us": 2882.511, "exists_engine_med_us": 2813.396, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_tiny_or", "threads": 4, "count": 0, "exists": false, "count_cold_us": 4190.414, "count_warm_med_us": 1637.844, "count_warm_p10_us": 1510.91, "count_warm_p90_us": 1732.511, "count_engine_med_us": 1171.044, "exists_cold_us": 4118.304, "exists_warm_med_us": 1724.177, "exists_warm_p10_us": 1652.152, "exists_warm_p90_us": 1876.765, "exists_engine_med_us": 1826.982, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_medium_or", "threads": 4, "count": 99996, "exists": true, "count_cold_us": 80694.631, "count_warm_med_us": 88748.34, "count_warm_p10_us": 68572.613, "count_warm_p90_us": 110115.158, "count_engine_med_us": 104740.6, "exists_cold_us": 5958.114, "exists_warm_med_us": 3027.837, "exists_warm_p10_us": 2210.423, "exists_warm_p90_us": 3368.555, "exists_engine_med_us": 3568.398, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_large_or", "threads": 4, "count": 4956413, "exists": true, "count_cold_us": 228291.138, "count_warm_med_us": 215605.73, "count_warm_p10_us": 197897.459, "count_warm_p90_us": 253296.758, "count_engine_med_us": 212426.936, "exists_cold_us": 7624.735, "exists_warm_med_us": 3283.849, "exists_warm_p10_us": 3100.935, "exists_warm_p90_us": 3719.634, "exists_engine_med_us": 4198.876, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_tiny_mixed", "threads": 4, "count": 470, "exists": true, "count_cold_us": 311491.482, "count_warm_med_us": 183991.036, "count_warm_p10_us": 170701.073, "count_warm_p90_us": 263677.072, "count_engine_med_us": 179896.046, "exists_cold_us": 11045.631, "exists_warm_med_us": 7625.615, "exists_warm_p10_us": 7096.427, "exists_warm_p90_us": 8584.633, "exists_engine_med_us": 7770.666, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_medium_mixed", "threads": 4, "count": 99512, "exists": true, "count_cold_us": 280559.084, "count_warm_med_us": 268751.004, "count_warm_p10_us": 257072.619, "count_warm_p90_us": 294069.621, "count_engine_med_us": 291474.061, "exists_cold_us": 4823.269, "exists_warm_med_us": 2620.977, "exists_warm_p10_us": 2231.001, "exists_warm_p90_us": 2968.209, "exists_engine_med_us": 2362.137, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "k24_large_mixed", "threads": 4, "count": 5004671, "exists": true, "count_cold_us": 524591.464, "count_warm_med_us": 556772.81, "count_warm_p10_us": 515385.017, "count_warm_p90_us": 590382.956, "count_engine_med_us": 516854.479, "exists_cold_us": 5390.823, "exists_warm_med_us": 2286.858, "exists_warm_p10_us": 2102.162, "exists_warm_p90_us": 2884.733, "exists_engine_med_us": 3014.98, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_one_everything", "threads": 4, "count": 100002, "exists": true, "count_cold_us": 15176.351, "count_warm_med_us": 3725.42, "count_warm_p10_us": 3511.534, "count_warm_p90_us": 6466.661, "count_engine_med_us": 4034.868, "exists_cold_us": 2410.407, "exists_warm_med_us": 901.794, "exists_warm_p10_us": 849.491, "exists_warm_p90_us": 1008.182, "exists_engine_med_us": 990.213, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_one_nothing", "threads": 4, "count": 10002, "exists": true, "count_cold_us": 9038.928, "count_warm_med_us": 7062.048, "count_warm_p10_us": 6572.049, "count_warm_p90_us": 7702.46, "count_engine_med_us": 7261.472, "exists_cold_us": 1954.767, "exists_warm_med_us": 1009.68, "exists_warm_p10_us": 903.306, "exists_warm_p90_us": 1102.241, "exists_engine_med_us": 1020.187, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_or_one_everything", "threads": 4, "count": 10000000, "exists": true, "count_cold_us": 1629.553, "count_warm_med_us": 633.246, "count_warm_p10_us": 580.365, "count_warm_p90_us": 685.163, "count_engine_med_us": null, "exists_cold_us": 1640.778, "exists_warm_med_us": 771.384, "exists_warm_p10_us": 732.822, "exists_warm_p90_us": 828.935, "exists_engine_med_us": 911.268, "count_stats_folded": true, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_or_one_nothing", "threads": 4, "count": 10000, "exists": true, "count_cold_us": 7254.88, "count_warm_med_us": 5286.979, "count_warm_p10_us": 4705.961, "count_warm_p90_us": 6077.722, "count_engine_med_us": 5569.257, "exists_cold_us": 1851.471, "exists_warm_med_us": 916.422, "exists_warm_p10_us": 868.081, "exists_warm_p90_us": 992.307, "exists_engine_med_us": 1063.324, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_16_nonselective", "threads": 4, "count": 8271472, "exists": true, "count_cold_us": 59025.753, "count_warm_med_us": 57095.387, "count_warm_p10_us": 52851.272, "count_warm_p90_us": 69444.507, "count_engine_med_us": 59265.863, "exists_cold_us": 3625.008, "exists_warm_med_us": 1649.145, "exists_warm_p10_us": 1525.951, "exists_warm_p90_us": 1932.595, "exists_engine_med_us": 1759.583, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_16_collapse_one", "threads": 4, "count": 472, "exists": true, "count_cold_us": 21144.68, "count_warm_med_us": 18712.334, "count_warm_p10_us": 17691.2, "count_warm_p90_us": 21910.028, "count_engine_med_us": 19949.109, "exists_cold_us": 5055.78, "exists_warm_med_us": 2643.064, "exists_warm_p10_us": 2473.053, "exists_warm_p90_us": 2803.595, "exists_engine_med_us": 2925.082, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_correlated_2", "threads": 4, "count": 5000004, "exists": true, "count_cold_us": 10956.248, "count_warm_med_us": 7181.093, "count_warm_p10_us": 6705.352, "count_warm_p90_us": 8425.329, "count_engine_med_us": 6992.324, "exists_cold_us": 1765.145, "exists_warm_med_us": 920.959, "exists_warm_p10_us": 822.843, "exists_warm_p90_us": 1029.708, "exists_engine_med_us": 1059.528, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_correlated_5", "threads": 4, "count": 4900007, "exists": true, "count_cold_us": 9535.014, "count_warm_med_us": 6878.649, "count_warm_p10_us": 6244.281, "count_warm_p90_us": 8467.805, "count_engine_med_us": 6917.489, "exists_cold_us": 1933.827, "exists_warm_med_us": 949.248, "exists_warm_p10_us": 848.192, "exists_warm_p90_us": 1042.185, "exists_engine_med_us": 1051.395, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_contradictory_2", "threads": 4, "count": 0, "exists": false, "count_cold_us": 1436.248, "count_warm_med_us": 656.882, "count_warm_p10_us": 536.658, "count_warm_p90_us": 823.092, "count_engine_med_us": 676.598, "exists_cold_us": 1816.518, "exists_warm_med_us": 947.912, "exists_warm_p10_us": 762.45, "exists_warm_p90_us": 1025.736, "exists_engine_med_us": 757.721, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "adv_contradictory_17", "threads": 4, "count": 0, "exists": false, "count_cold_us": 2477.712, "count_warm_med_us": 790.048, "count_warm_p10_us": 726.603, "count_warm_p90_us": 927.14, "count_engine_med_us": 882.155, "exists_cold_us": 2475.481, "exists_warm_med_us": 949.547, "exists_warm_p10_us": 874.23, "exists_warm_p90_us": 1082.403, "exists_engine_med_us": 1007.687, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "null_and", "threads": 4, "count": 999196, "exists": true, "count_cold_us": 10667.413, "count_warm_med_us": 8346.251, "count_warm_p10_us": 7985.069, "count_warm_p90_us": 9333.508, "count_engine_med_us": 8109.684, "exists_cold_us": 2396.618, "exists_warm_med_us": 961.518, "exists_warm_p10_us": 883.122, "exists_warm_p90_us": 1171.194, "exists_engine_med_us": 1039.501, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "null_not", "threads": 4, "count": 4499990, "exists": true, "count_cold_us": 6682.983, "count_warm_med_us": 5210.289, "count_warm_p10_us": 4729.813, "count_warm_p90_us": 5772.391, "count_engine_med_us": 5399.063, "exists_cold_us": 2232.762, "exists_warm_med_us": 1018.497, "exists_warm_p10_us": 897.245, "exists_warm_p90_us": 1078.882, "exists_engine_med_us": 1009.994, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "null_or", "threads": 4, "count": 1900011, "exists": true, "count_cold_us": 27056.836, "count_warm_med_us": 26963.58, "count_warm_p10_us": 25184.204, "count_warm_p90_us": 29545.113, "count_engine_med_us": 27898.874, "exists_cold_us": 2313.22, "exists_warm_med_us": 1347.176, "exists_warm_p10_us": 1012.047, "exists_warm_p90_us": 1676.492, "exists_engine_med_us": 1075.276, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "null_not_and", "threads": 4, "count": 8500703, "exists": true, "count_cold_us": 79255.859, "count_warm_med_us": 74116.916, "count_warm_p10_us": 67114.128, "count_warm_p90_us": 82435.064, "count_engine_med_us": 74124.0, "exists_cold_us": 2337.567, "exists_warm_med_us": 1188.54, "exists_warm_p10_us": 1019.509, "exists_warm_p90_us": 1511.73, "exists_engine_med_us": 1406.812, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87}, -{"id": "null_and_5", "threads": 4, "count": 2674492, "exists": true, "count_cold_us": 21277.003, "count_warm_med_us": 17936.419, "count_warm_p10_us": 17015.846, "count_warm_p90_us": 19324.412, "count_engine_med_us": 17825.636, "exists_cold_us": 2237.576, "exists_warm_med_us": 1060.461, "exists_warm_p10_us": 978.708, "exists_warm_p90_us": 1140.16, "exists_engine_med_us": 1192.2, "count_stats_folded": false, "exists_stats_folded": false, "trivial_query_wall_us": 241.87} -] -} diff --git a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json b/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json deleted file mode 100644 index 566182f23..000000000 --- a/.claude/probes/2026-11-03-d-global-where-p1/results/where/n10000000/where_ours.json +++ /dev/null @@ -1,56 +0,0 @@ -{"n":10000000,"records":[ -{"id":"k1_tiny_single","k":1,"k_group":"1","pop":"tiny","shape":"single","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.096,"lower_us_fused":0.107,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":1688.300,"any_us":1709.078,"rows_us":1759.156,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1689.841,"any_us":1664.002,"rows_us":1725.466,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1717.771,"any_us":1676.632,"rows_us":1707.707,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1710.548,"any_us":1882.510,"rows_us":1819.053,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k1_medium_single","k":1,"k_group":"1","pop":"medium","shape":"single","adversarial":false,"nullable":false,"achieved":100002,"lower_us_plain":0.096,"lower_us_fused":0.108,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":1684.304,"any_us":1970.709,"rows_us":1751.794,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1686.257,"any_us":1700.275,"rows_us":1824.835,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1833.373,"any_us":1855.201,"rows_us":1792.841,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1760.228,"any_us":1833.334,"rows_us":1849.034,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k1_large_single","k":1,"k_group":"1","pop":"large","shape":"single","adversarial":false,"nullable":false,"achieved":5000008,"lower_us_plain":0.090,"lower_us_fused":0.101,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":1799.658,"any_us":1808.457,"rows_us":1862.668,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":1832.659,"any_us":1749.650,"rows_us":1786.314,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":1748.861,"any_us":1747.323,"rows_us":1815.546,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":1821.746,"any_us":1749.944,"rows_us":1759.222,"runs":[31,31,31],"slots":1,"scratch_bytes":2048,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_tiny_and","k":3,"k_group":"2-4","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.283,"lower_us_fused":0.499,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6340.319,"any_us":7086.642,"rows_us":7859.929,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":7292.484,"any_us":6416.064,"rows_us":5596.837,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6483.768,"any_us":6956.029,"rows_us":6877.753,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5178.665,"any_us":5326.200,"rows_us":5270.782,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_medium_and","k":3,"k_group":"2-4","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":101386,"lower_us_plain":0.283,"lower_us_fused":0.498,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6320.971,"any_us":6046.646,"rows_us":7897.949,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5419.381,"any_us":5667.059,"rows_us":5937.987,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6616.260,"any_us":7026.222,"rows_us":7823.352,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5495.787,"any_us":5422.259,"rows_us":5255.292,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_large_and","k":3,"k_group":"2-4","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":4996187,"lower_us_plain":0.286,"lower_us_fused":0.501,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6745.897,"any_us":7128.963,"rows_us":7100.376,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5718.539,"any_us":5541.858,"rows_us":5727.100,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6202.463,"any_us":6442.012,"rows_us":6955.033,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5251.012,"any_us":5352.488,"rows_us":6234.322,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_tiny_or","k":3,"k_group":"2-4","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.284,"lower_us_fused":0.590,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":6004.864,"any_us":5665.662,"rows_us":5720.188,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5663.773,"any_us":5755.950,"rows_us":5892.825,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5701.626,"any_us":5498.967,"rows_us":5215.753,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5333.992,"any_us":5699.228,"rows_us":6344.622,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_medium_or","k":3,"k_group":"2-4","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":100001,"lower_us_plain":0.285,"lower_us_fused":0.566,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5516.603,"any_us":5670.677,"rows_us":5909.048,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5042.593,"any_us":5064.941,"rows_us":5126.352,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5098.465,"any_us":5323.837,"rows_us":5390.430,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5634.676,"any_us":5565.163,"rows_us":5935.181,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_large_or","k":3,"k_group":"2-4","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":5006214,"lower_us_plain":0.284,"lower_us_fused":0.567,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":8708.756,"any_us":6530.488,"rows_us":9036.776,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":6013.167,"any_us":5159.760,"rows_us":5780.305,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5115.432,"any_us":5444.250,"rows_us":5833.945,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":6047.607,"any_us":6620.302,"rows_us":5582.551,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_tiny_mixed","k":3,"k_group":"2-4","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.368,"lower_us_fused":0.655,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5928.663,"any_us":6274.058,"rows_us":6046.126,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5720.600,"any_us":5952.334,"rows_us":5525.189,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":8135.259,"any_us":9776.971,"rows_us":7338.171,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5430.329,"any_us":5656.431,"rows_us":6157.870,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_medium_mixed","k":3,"k_group":"2-4","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":98184,"lower_us_plain":0.356,"lower_us_fused":0.633,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5987.941,"any_us":5768.366,"rows_us":6144.824,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":6114.068,"any_us":6041.396,"rows_us":5627.637,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":9328.487,"any_us":8676.214,"rows_us":8673.142,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5937.115,"any_us":5703.164,"rows_us":5487.312,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k3_large_mixed","k":3,"k_group":"2-4","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":4994319,"lower_us_plain":0.368,"lower_us_fused":0.655,"skip_same_as_plain":false,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5598.211,"any_us":5622.802,"rows_us":6067.316,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":5961.857,"any_us":5757.451,"rows_us":5708.821,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":6618.201,"any_us":6245.645,"rows_us":7953.957,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":5676.851,"any_us":5345.552,"rows_us":5390.802,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_tiny_and","k":8,"k_group":"5-16","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":470,"lower_us_plain":0.738,"lower_us_fused":3.915,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":24039.093,"any_us":22140.701,"rows_us":24092.404,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":39899.552,"any_us":37163.134,"rows_us":36378.646,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":25557.518,"any_us":25174.749,"rows_us":25445.544,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37543.876,"any_us":36982.773,"rows_us":36928.903,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_medium_and","k":8,"k_group":"5-16","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":100924,"lower_us_plain":0.512,"lower_us_fused":2.396,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":47391.001,"any_us":47533.898,"rows_us":49247.844,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":36402.560,"any_us":36781.669,"rows_us":37327.514,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":48138.598,"any_us":50830.852,"rows_us":50536.272,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37278.684,"any_us":36642.348,"rows_us":38635.230,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_large_and","k":8,"k_group":"5-16","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":4981051,"lower_us_plain":0.520,"lower_us_fused":2.388,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":54317.503,"any_us":49803.373,"rows_us":52506.407,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":36861.673,"any_us":36170.680,"rows_us":36718.518,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":50435.614,"any_us":55575.956,"rows_us":52389.278,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37287.139,"any_us":39489.407,"rows_us":40190.260,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_tiny_or","k":8,"k_group":"5-16","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":0.511,"lower_us_fused":2.607,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":36982.733,"any_us":36412.720,"rows_us":37027.565,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":37102.314,"any_us":37117.400,"rows_us":36805.592,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":36453.414,"any_us":39482.916,"rows_us":38088.894,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37250.334,"any_us":36962.145,"rows_us":36664.179,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_medium_or","k":8,"k_group":"5-16","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":99996,"lower_us_plain":0.511,"lower_us_fused":2.629,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":37405.818,"any_us":38979.850,"rows_us":39449.598,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":38106.905,"any_us":36474.320,"rows_us":37855.418,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":38150.898,"any_us":38858.469,"rows_us":37010.644,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":36492.948,"any_us":36093.585,"rows_us":36554.439,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_large_or","k":8,"k_group":"5-16","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":4988280,"lower_us_plain":0.509,"lower_us_fused":2.649,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":36812.013,"any_us":36750.430,"rows_us":36270.930,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":35830.663,"any_us":35629.465,"rows_us":36135.211,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":39602.789,"any_us":36305.335,"rows_us":37713.672,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37956.391,"any_us":36540.286,"rows_us":37173.606,"runs":[11,11,11],"slots":14,"scratch_bytes":28672,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_tiny_mixed","k":8,"k_group":"5-16","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":935,"lower_us_plain":0.884,"lower_us_fused":2.644,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":40505.735,"any_us":38387.399,"rows_us":37997.544,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":36491.555,"any_us":37142.304,"rows_us":39076.078,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":38260.819,"any_us":37810.997,"rows_us":38791.852,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":37973.949,"any_us":39645.582,"rows_us":37749.237,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_medium_mixed","k":8,"k_group":"5-16","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":99047,"lower_us_plain":0.873,"lower_us_fused":2.663,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":49326.150,"any_us":50915.687,"rows_us":48613.818,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":37299.558,"any_us":37822.533,"rows_us":38002.390,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":51830.497,"any_us":48607.521,"rows_us":47862.557,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":36740.589,"any_us":39731.911,"rows_us":37475.987,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k8_large_mixed","k":8,"k_group":"5-16","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":5001665,"lower_us_plain":0.840,"lower_us_fused":2.555,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":50086.575,"any_us":48321.210,"rows_us":64264.194,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":53750.276,"any_us":47112.257,"rows_us":56540.875,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":64757.889,"any_us":65552.649,"rows_us":61927.931,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":46483.364,"any_us":52329.915,"rows_us":50481.747,"runs":[11,11,11],"slots":12,"scratch_bytes":24576,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_tiny_and","k":17,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":467,"lower_us_plain":1.387,"lower_us_fused":18.718,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":103185.851,"any_us":101385.736,"rows_us":100279.056,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":76862.537,"any_us":74427.425,"rows_us":75155.736,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":100743.294,"any_us":105356.570,"rows_us":104722.646,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":74264.183,"any_us":71629.782,"rows_us":71875.456,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_medium_and","k":17,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":97561,"lower_us_plain":1.057,"lower_us_fused":7.595,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":97168.209,"any_us":99032.929,"rows_us":104324.383,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":79100.860,"any_us":73776.173,"rows_us":74798.851,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":102771.697,"any_us":99400.732,"rows_us":96801.439,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73592.426,"any_us":75664.486,"rows_us":82645.778,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_large_and","k":17,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":4998174,"lower_us_plain":1.642,"lower_us_fused":11.694,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":104394.261,"any_us":119456.802,"rows_us":115958.465,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":75036.050,"any_us":73588.577,"rows_us":74003.857,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":103585.777,"any_us":111179.747,"rows_us":107186.728,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":74987.653,"any_us":76251.729,"rows_us":77455.018,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_tiny_or","k":17,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":1.041,"lower_us_fused":8.036,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":75762.377,"any_us":74831.288,"rows_us":76992.429,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":79048.358,"any_us":81795.682,"rows_us":82459.554,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":77341.398,"any_us":86855.573,"rows_us":79884.136,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":74191.901,"any_us":73149.931,"rows_us":76023.899,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_medium_or","k":17,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":100002,"lower_us_plain":1.686,"lower_us_fused":12.853,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":79434.441,"any_us":75765.826,"rows_us":73661.689,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":73764.954,"any_us":76878.019,"rows_us":75717.661,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":79581.690,"any_us":75681.138,"rows_us":73443.526,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73705.663,"any_us":73464.615,"rows_us":79901.958,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_large_or","k":17,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":5051202,"lower_us_plain":1.006,"lower_us_fused":7.856,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":76605.041,"any_us":79808.481,"rows_us":77189.246,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":76236.637,"any_us":78224.185,"rows_us":78134.020,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":80711.405,"any_us":76449.699,"rows_us":76371.495,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":72316.143,"any_us":71382.156,"rows_us":81167.120,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_tiny_mixed","k":17,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":467,"lower_us_plain":1.887,"lower_us_fused":6.911,"skip_same_as_plain":false,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":98415.959,"any_us":99039.413,"rows_us":100113.252,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":76888.682,"any_us":78963.223,"rows_us":77562.374,"runs":[11,11,11],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":41805.197,"any_us":48830.129,"rows_us":43736.057,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":90323.005,"any_us":77447.574,"rows_us":80227.533,"runs":[11,11,11],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_medium_mixed","k":17,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":100925,"lower_us_plain":2.757,"lower_us_fused":10.564,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":114968.144,"any_us":107467.082,"rows_us":108564.058,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":83106.892,"any_us":77523.687,"rows_us":73476.367,"runs":[11,11,11],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":102476.638,"any_us":100932.968,"rows_us":105331.648,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73473.002,"any_us":78242.030,"rows_us":83451.572,"runs":[11,11,11],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k17_large_mixed","k":17,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":4982809,"lower_us_plain":2.957,"lower_us_fused":11.567,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":107092.968,"any_us":105667.849,"rows_us":111345.946,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":74632.922,"any_us":94746.984,"rows_us":77808.714,"runs":[11,11,11],"slots":26,"scratch_bytes":53248,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":119365.922,"any_us":103544.830,"rows_us":103497.689,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":75020.088,"any_us":76444.951,"rows_us":75979.667,"runs":[11,11,11],"slots":25,"scratch_bytes":51200,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_tiny_and","k":24,"k_group":"17+","pop":"tiny","shape":"and","adversarial":false,"nullable":false,"achieved":472,"lower_us_plain":1.420,"lower_us_fused":15.610,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":119053.692,"any_us":119331.640,"rows_us":112533.273,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":93763.941,"any_us":98722.854,"rows_us":88694.253,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":106022.599,"any_us":113690.845,"rows_us":123109.146,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":96570.333,"any_us":91951.151,"rows_us":90544.201,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_medium_and","k":24,"k_group":"17+","pop":"medium","shape":"and","adversarial":false,"nullable":false,"achieved":99057,"lower_us_plain":1.898,"lower_us_fused":15.703,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":135670.223,"any_us":123678.763,"rows_us":127720.720,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":89354.553,"any_us":100287.652,"rows_us":96070.112,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":120959.866,"any_us":133711.150,"rows_us":140643.659,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":114852.406,"any_us":101100.991,"rows_us":95396.506,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_large_and","k":24,"k_group":"17+","pop":"large","shape":"and","adversarial":false,"nullable":false,"achieved":5020727,"lower_us_plain":2.100,"lower_us_fused":24.457,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":143182.199,"any_us":126378.169,"rows_us":122060.700,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":86026.944,"any_us":85642.216,"rows_us":91330.954,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":124567.468,"any_us":127668.483,"rows_us":123671.500,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":90414.178,"any_us":87802.257,"rows_us":90768.168,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_tiny_or","k":24,"k_group":"17+","pop":"tiny","shape":"or","adversarial":false,"nullable":false,"achieved":0,"lower_us_plain":1.461,"lower_us_fused":16.603,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":88091.345,"any_us":90924.013,"rows_us":92582.663,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":94057.411,"any_us":91883.619,"rows_us":90129.320,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":89024.309,"any_us":90998.391,"rows_us":87911.365,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":98203.940,"any_us":87496.265,"rows_us":98608.212,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_medium_or","k":24,"k_group":"17+","pop":"medium","shape":"or","adversarial":false,"nullable":false,"achieved":99996,"lower_us_plain":1.452,"lower_us_fused":16.548,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":92045.583,"any_us":87348.022,"rows_us":92022.746,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":110723.225,"any_us":86339.930,"rows_us":88804.594,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":90460.614,"any_us":92867.031,"rows_us":89056.655,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":92488.224,"any_us":95329.202,"rows_us":97694.077,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_large_or","k":24,"k_group":"17+","pop":"large","shape":"or","adversarial":false,"nullable":false,"achieved":4956413,"lower_us_plain":2.260,"lower_us_fused":25.333,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":90258.518,"any_us":87843.619,"rows_us":88561.453,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":90960.624,"any_us":90959.920,"rows_us":86445.536,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":89296.987,"any_us":86766.577,"rows_us":99855.775,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":103195.607,"any_us":115924.245,"rows_us":119111.516,"runs":[11,11,11],"slots":46,"scratch_bytes":94208,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_tiny_mixed","k":24,"k_group":"17+","pop":"tiny","shape":"mixed","adversarial":false,"nullable":false,"achieved":470,"lower_us_plain":3.567,"lower_us_fused":16.524,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":126336.629,"any_us":125424.262,"rows_us":116477.509,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":90773.893,"any_us":90343.512,"rows_us":88104.190,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":113814.819,"any_us":127055.189,"rows_us":140897.416,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":94299.165,"any_us":92838.037,"rows_us":93242.677,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_medium_mixed","k":24,"k_group":"17+","pop":"medium","shape":"mixed","adversarial":false,"nullable":false,"achieved":99512,"lower_us_plain":2.600,"lower_us_fused":11.117,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":122003.001,"any_us":119026.600,"rows_us":132335.488,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":89640.115,"any_us":84966.497,"rows_us":98574.218,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":136404.025,"any_us":120942.516,"rows_us":126367.285,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":94532.848,"any_us":95272.137,"rows_us":86376.485,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"k24_large_mixed","k":24,"k_group":"17+","pop":"large","shape":"mixed","adversarial":false,"nullable":false,"achieved":5004671,"lower_us_plain":2.580,"lower_us_fused":11.122,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":128187.068,"any_us":122442.305,"rows_us":120999.888,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":85767.426,"any_us":85184.745,"rows_us":85508.970,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":124834.205,"any_us":150774.384,"rows_us":136635.091,"runs":[11,11,11],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":89718.238,"any_us":96651.279,"rows_us":93110.855,"runs":[11,11,11],"slots":36,"scratch_bytes":73728,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":100002,"lower_us_plain":0.284,"lower_us_fused":0.634,"skip_same_as_plain":false,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":13021.697,"any_us":4107.541,"rows_us":4521.496,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3704.015,"any_us":3578.415,"rows_us":3699.647,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4263.398,"any_us":4363.263,"rows_us":3374.644,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3643.240,"any_us":3536.211,"rows_us":3842.694,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_one_nothing","k":3,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":10002,"lower_us_plain":0.397,"lower_us_fused":0.787,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3249.975,"any_us":4084.873,"rows_us":2999.322,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":10956.282,"any_us":9288.725,"rows_us":9282.650,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":2803.725,"any_us":4055.687,"rows_us":2853.712,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":7684.336,"any_us":6675.621,"rows_us":8523.037,"runs":[31,31,31],"slots":4,"scratch_bytes":8192,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_or_one_everything","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":10000000,"lower_us_plain":0.207,"lower_us_fused":0.394,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3585.851,"any_us":3483.912,"rows_us":3525.082,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3591.646,"any_us":3519.368,"rows_us":3569.781,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3465.395,"any_us":3510.288,"rows_us":3498.297,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3479.797,"any_us":3458.527,"rows_us":3461.652,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_or_one_nothing","k":2,"k_group":"2-4","pop":"adv","shape":"or","adversarial":true,"nullable":false,"achieved":10000,"lower_us_plain":0.210,"lower_us_fused":0.400,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3468.949,"any_us":3610.076,"rows_us":3595.275,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3505.310,"any_us":3475.550,"rows_us":3935.792,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3429.933,"any_us":3499.211,"rows_us":4560.544,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4531.121,"any_us":3522.608,"rows_us":3616.475,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_16_nonselective","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":8271472,"lower_us_plain":0.965,"lower_us_fused":6.735,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":117693.287,"any_us":112288.498,"rows_us":107928.673,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":72430.220,"any_us":76745.619,"rows_us":82753.744,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":104896.292,"any_us":99535.773,"rows_us":105721.926,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73045.818,"any_us":71969.658,"rows_us":70735.105,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_16_collapse_one","k":16,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":472,"lower_us_plain":0.972,"lower_us_fused":6.640,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":19888.749,"any_us":20468.472,"rows_us":20370.534,"runs":[31,31,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":74652.684,"any_us":71789.178,"rows_us":74788.309,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":21780.544,"any_us":23239.674,"rows_us":21942.480,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":73524.077,"any_us":82288.202,"rows_us":84159.400,"runs":[11,11,11],"slots":30,"scratch_bytes":61440,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_correlated_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":5000004,"lower_us_plain":0.216,"lower_us_fused":0.373,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":10480.727,"any_us":5989.201,"rows_us":4172.881,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3531.887,"any_us":3495.647,"rows_us":3639.481,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3994.657,"any_us":4053.855,"rows_us":4773.174,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":3632.246,"any_us":3574.015,"rows_us":3594.956,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_correlated_5","k":5,"k_group":"5-16","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":4900007,"lower_us_plain":0.553,"lower_us_fused":1.151,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":15799.618,"any_us":17284.287,"rows_us":16729.204,"runs":[31,11,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":12279.651,"any_us":16349.796,"rows_us":16336.779,"runs":[11,31,31],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":21425.555,"any_us":21167.124,"rows_us":22286.471,"runs":[31,11,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":12771.926,"any_us":13044.927,"rows_us":12683.708,"runs":[31,31,11],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_contradictory_2","k":2,"k_group":"2-4","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":0.215,"lower_us_fused":0.372,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":5706.503,"any_us":5478.785,"rows_us":4333.592,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3628.939,"any_us":3101.798,"rows_us":2977.970,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":3275.184,"any_us":3246.481,"rows_us":3292.861,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2925.983,"any_us":2904.184,"rows_us":2977.320,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"adv_contradictory_17","k":17,"k_group":"17+","pop":"adv","shape":"and","adversarial":true,"nullable":false,"achieved":0,"lower_us_plain":1.058,"lower_us_fused":7.829,"skip_same_as_plain":true,"best_count_variant":"plain","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":7505.223,"any_us":8087.943,"rows_us":15923.324,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":77129.258,"any_us":77147.783,"rows_us":73680.036,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":12875.504,"any_us":14033.187,"rows_us":14375.886,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":83003.736,"any_us":94780.921,"rows_us":76953.940,"runs":[11,11,11],"slots":32,"scratch_bytes":65536,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_and","k":2,"k_group":"2-4","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":999196,"lower_us_plain":0.317,"lower_us_fused":0.490,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":13974.923,"any_us":11996.521,"rows_us":11436.982,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":11153.739,"any_us":8191.341,"rows_us":4810.162,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":5498.414,"any_us":5726.627,"rows_us":5295.352,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":4670.395,"any_us":10825.339,"rows_us":11974.515,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_not","k":1,"k_group":"1","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":4499990,"lower_us_plain":0.375,"lower_us_fused":0.759,"skip_same_as_plain":true,"best_count_variant":"skip_fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":3566.879,"any_us":3409.697,"rows_us":3666.991,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3524.002,"any_us":3502.611,"rows_us":3377.565,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4116.453,"any_us":2238.470,"rows_us":2221.742,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":2179.668,"any_us":2179.240,"rows_us":2553.828,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_or","k":2,"k_group":"2-4","pop":"null","shape":"or","adversarial":true,"nullable":true,"achieved":1900011,"lower_us_plain":0.319,"lower_us_fused":0.530,"skip_same_as_plain":true,"best_count_variant":"skip","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":7063.616,"any_us":4969.973,"rows_us":6494.993,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":4957.296,"any_us":4509.909,"rows_us":7951.128,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4684.793,"any_us":7439.419,"rows_us":4904.547,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":6276.585,"any_us":4032.745,"rows_us":5698.633,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_not_and","k":2,"k_group":"2-4","pop":"null","shape":"not","adversarial":true,"nullable":true,"achieved":8500703,"lower_us_plain":0.442,"lower_us_fused":0.872,"skip_same_as_plain":true,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":8061.393,"any_us":6900.712,"rows_us":7950.953,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":3955.827,"any_us":3970.968,"rows_us":4159.076,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":4476.504,"any_us":4378.035,"rows_us":5079.775,"runs":[31,31,31],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":7299.658,"any_us":9938.460,"rows_us":12735.084,"runs":[31,31,31],"slots":3,"scratch_bytes":6144,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}}, -{"id":"null_and_5","k":5,"k_group":"5-16","pop":"null","shape":"and","adversarial":true,"nullable":true,"achieved":2674492,"lower_us_plain":0.924,"lower_us_fused":2.126,"skip_same_as_plain":false,"best_count_variant":"fused","representation":{"count":"virtual","any":"virtual","rows":"transient"},"rows_mask_bytes":1250000,"variants":{"plain":{"count_us":28629.127,"any_us":28868.169,"rows_us":28619.653,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"fused":{"count_us":21901.479,"any_us":22263.404,"rows_us":22509.093,"runs":[11,11,11],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip":{"count_us":26032.905,"any_us":26315.617,"rows_us":26524.109,"runs":[11,11,11],"slots":2,"scratch_bytes":4096,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}},"skip_fused":{"count_us":22175.178,"any_us":22161.367,"rows_us":22731.484,"runs":[11,11,11],"slots":8,"scratch_bytes":16384,"alloc_bytes_eval":{"count":0,"any":0,"rows":0}}}} -]}