\set ECHO none add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) == ucq_joint_provenance_answer: materialise + evaluate per answer == pin|joint_width 1|0.384521 2|0.219727 (2 rows) == transparent H0 per source: diff vs standard (must be 0) == x|diff_transparent_vs_standard 1|0.000000000 2|0.000000000 3|0.000000000 4|0.000000000 (4 rows) == almost-safe: joint-width fired (token differs) and value = closed form == x|joint_width_fired|joint_width 1|t|0.384521 2|t|0.219727 3|t|0.219727 4|t|0.219727 (4 rows) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) == star 2 heads over a self-join: joint-width fired, diff vs standard 0 == x|z|joint_width_fired|diff 1|1|t|0.000000000 1|2|t|0.000000000 1|3|t|0.000000000 2|1|t|0.000000000 2|2|t|0.000000000 2|3|t|0.000000000 3|1|t|0.000000000 3|2|t|0.000000000 3|3|t|0.000000000 (9 rows) == JOIN..ON recognised: fired (token != comma standard), value equal == x|joint_width_fired|diff 1|t|0.000000000 2|t|0.000000000 3|t|0.000000000 4|t|0.000000000 (4 rows) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) == text head column: joint-width fired (token differs), value agrees == nm|joint_width_fired|diff a|t|0.000000000 b|t|0.000000000 c|t|0.000000000 (3 rows) == subquery (plain) fired and value equals comma form == x|joint_width_fired|diff 1|t|0.000000000 2|t|0.000000000 3|t|0.000000000 4|t|0.000000000 (4 rows) == subquery (DISTINCT inside) fired and value equals comma form == x|joint_width_fired|diff 1|t|0.000000000 2|t|0.000000000 3|t|0.000000000 4|t|0.000000000 (4 rows) == free JOIN-variable head q(y): fired, diff vs standard 0 == y|joint_width_fired|diff 11|t|0.000000000 12|t|0.000000000 21|t|0.000000000 22|t|0.000000000 31|t|0.000000000 32|t|0.000000000 41|t|0.000000000 42|t|0.000000000 (8 rows) == bag projection (no dup-elim): joint-width does NOT fire (token = standard) == x|y|same_as_standard 1|11|t 1|12|t 2|21|t 2|22|t 3|31|t 3|32|t 4|41|t 4|42|t (8 rows) == Boolean UNION (two disjuncts): joint-width fired, value = ladder == joint_width_fired|diff_vs_ladder t|0.000000000 (1 row) == per-answer UNION q(x): joint-width fired per answer, diff vs ladder 0 == x|joint_width_fired|diff_vs_ladder 1|t|0.000000000 2|t|0.000000000 3|t|0.000000000 4|t|0.000000000 (4 rows) == constant selection (js.y = 11) collapses to hierarchical: jw defers, diff vs ladder 0 == joint_width_fired|diff_vs_ladder f|0.000000000 (1 row) == head expression r.x*10+1: fired, token == the bare-x head, diff vs ladder 0 == x|k|joint_width_fired|same_token_as_bare_head|diff_vs_ladder 1|11|t|t|0.000000000 2|21|t|t|0.000000000 3|31|t|t|0.000000000 4|41|t|t|0.000000000 (4 rows) == single-relation pre-filters (inequality / IN / OR): every answer fired, diff 0 == test|all_fired|max_abs_diff inequality jr.x > 2|t|0.000000000 (1 row) test|all_fired|max_abs_diff IN jr.x IN (1,3)|t|0.000000000 (1 row) test|all_fired|max_abs_diff OR jr.x=1 OR jr.x=4|t|0.000000000 (1 row) == Boolean existence of H0 (3-atom, DISTINCT): fired, diff vs ladder 0 == joint_width_fired|diff_vs_ladder t|0.000000000 (1 row) add_provenance (1 row) == width screen: fires under the bound, declines (falls back) below it, same value == fired_at_tw10|declined_to_ladder_at_tw1|p_joint|diff_fallback_vs_ladder t|t|0.984375|0.000000000 (1 row) == Shapley pass-through: events match, max |shapley(d-D) - shapley(standard)| = 0 == n_events|max_abs_diff 20|0.000000000 (1 row) == expectation pass-through: E[SUM|H0] on d-D == on standard, and != unconditional == cond_joint_minus_std|conditioning_is_nontrivial 0.000000000|t (1 row)