Skip to content

Conversation

@mgree
Copy link
Contributor

@mgree mgree commented Mar 12, 2025

#31802 introduces the concept of a NAMESCORE metric: the percentage of column references in EXPLAIN output which have associated names.

This PR introduces a python script, namescore, that implements that metric.

Output on old SLT files (without `WITH (humanized expressions)`)
group_size_hints.slt: 0.00% (0 / 107)
timezone.slt: 0.00% (0 / 1)
freshmart.slt: 0.00% (0 / 271)
cte.slt: 0.00% (0 / 2)
not-null-propagation.slt: 0.00% (0 / 329)
github-7892.slt: 0.00% (0 / 1)
numeric.slt: 0.00% (0 / 3)
type-promotion.slt: 0.00% (0 / 3)
mz_recent_storage_usage.slt: 0.00% (0 / 2)
github-7688.slt: 0.00% (0 / 1)
github-16036.slt: 0.00% (0 / 88)
privilege_checks.slt: 0.00% (0 / 1)
vars.slt: 0.00% (0 / 1)
subquery.slt: 0.00% (0 / 93)
github-5474.slt: 0.00% (0 / 1)
aggregates.slt: 0.00% (0 / 50)
outer_join.slt: 0.00% (0 / 128)
github-57.slt: 0.00% (0 / 1)
github-5717.slt: 0.00% (0 / 4)
tpch_select.slt: 62.82% (735 / 1170)
jsonb.slt: 0.00% (0 / 4)
github-8261-8463.slt: 0.00% (0 / 4)
github-7467.slt: 0.00% (0 / 2)
system-cluster.slt: 0.00% (0 / 134)
uniqueness_propagation_filter.slt: 0.00% (0 / 149)
limit_expr.slt: 90.68% (107 / 118)
github-2746.slt: 0.00% (0 / 63)
github-8257.slt: 0.00% (0 / 1)
tpch_create_materialized_view.slt: 64.27% (707 / 1100)
cte_lowering.slt: 0.00% (0 / 188)
timedomain.slt: 0.00% (0 / 33)
scalar_subqueries_select_list.slt: 0.00% (0 / 341)
regtype.slt: 0.00% (0 / 1)
outer_join_simplification.slt: 0.00% (0 / 343)
github-17808.slt: 0.00% (0 / 1)
joins.slt: 0.00% (0 / 207)
regclass.slt: 0.00% (0 / 1)
github-8867.slt: 0.00% (0 / 1)
distinct_on.slt: 0.00% (0 / 9)
alter-table.slt: 0.00% (0 / 27)
persist-fast-path.slt: 0.00% (0 / 12)
types.slt: 0.00% (0 / 19)
char.slt: 0.00% (0 / 3)
updates.slt: 0.00% (0 / 2)
github-7821.slt: 0.00% (0 / 1)
order_by.slt: 0.00% (0 / 30)
cluster_features.slt: 0.00% (0 / 280)
parse_ident.slt: 0.00% (0 / 8)
github-2799.slt: 0.00% (0 / 11)
github-2969.slt: 0.00% (0 / 42)
cardinality.slt: 0.00% (0 / 330)
ldbc_bi.slt: 57.26% (1569 / 2740)
timestamptz.slt: 0.00% (0 / 2)
regex.slt: 0.00% (0 / 62)
extract.slt: 0.00% (0 / 1)
transactions.slt: 0.00% (0 / 34)
timestamp.slt: 0.00% (0 / 2)
github-6935.slt: 0.00% (0 / 1)
github-14116.slt: 0.00% (0 / 12)
regressions.slt: 0.00% (0 / 1)
window_funcs.slt: 0.00% (0 / 703)
github-6464.slt: 0.00% (0 / 21)
managed_cluster.slt: 0.00% (0 / 1)
filter-pushdown.slt: 55.04% (71 / 129)
boolean.slt: 0.00% (0 / 42)
record.slt: 0.00% (0 / 10)
temporal.slt: 0.00% (0 / 1)
list.slt: 0.00% (0 / 64)
like.slt: 0.00% (0 / 22)
outer_join_lowering.slt: 95.00% (589 / 620)
funcs.slt: 0.00% (0 / 20)
recursive_type_unioning.slt: 0.00% (0 / 7)
chbench.slt: 0.00% (0 / 1562)
tpch_create_index.slt: 66.49% (742 / 1116)
dates-times.slt: 0.00% (0 / 1)
scoping.slt: 0.00% (0 / 2)
topk.slt: 0.00% (0 / 24)
regproc.slt: 0.00% (0 / 1)
github-5723.slt: 0.00% (0 / 13)
table_func.slt: 0.00% (0 / 74)
github-5536.slt: 0.00% (0 / 17)
arrays.slt: 0.00% (0 / 2)
github-5126.slt: 0.00% (0 / 47)
ldbc_bi_eager.slt: 57.26% (1569 / 2740)
reduce_mfp.slt: 0.00% (0 / 26)
arithmetic.slt: 0.00% (0 / 58)
explain/broken_statements.slt: 0.00% (0 / 1)
explain/aggregates.slt: 0.00% (0 / 205)
explain/physical_plan_aggregates.slt: 0.00% (0 / 321)
explain/materialized_view.slt: 0.00% (0 / 47)
explain/physical_plan_as_text.slt: 0.00% (0 / 979)
explain/pushdown.slt: 0.00% (0 / 2)
explain/optimized_plan_as_text_redacted.slt: 69.47% (273 / 393)
explain/replan_catalog_items.slt: 0.00% (0 / 57)
explain/decorrelated_plan_as_text.slt: 0.00% (0 / 347)
explain/enable_eager_delta_joins.slt: 0.00% (0 / 143)
explain/raw_plan_as_text.slt: 0.00% (0 / 186)
explain/physical_plan_as_text_redacted.slt: 0.00% (0 / 947)
explain/locally_optimized_plan.slt: 0.00% (0 / 80)
explain/optimized_plan_as_text.slt: 62.67% (361 / 576)
introspection/unstable.slt: 0.00% (0 / 1)
attributes/mir_unique_keys.slt: 0.00% (0 / 39)
attributes/mir_column_types.slt: 0.00% (0 / 56)
attributes/mir_arity.slt: 0.00% (0 / 65)
postgres/rowtypes.slt: 0.00% (0 / 3)
postgres/subselect.slt: 0.00% (0 / 6)
cockroach/create_as.slt: 0.00% (0 / 4)
cockroach/builtin_function.slt: 0.00% (0 / 8)
cockroach/srfs.slt: 0.00% (0 / 15)
cockroach/drop_view.slt: 0.00% (0 / 1)
cockroach/subquery.slt: 0.00% (0 / 10)
cockroach/select_index.slt: 0.00% (0 / 6)
cockroach/window.slt: 0.00% (0 / 9)
cockroach/orms.slt: 0.00% (0 / 2)
cockroach/decimal.slt: 0.00% (0 / 2)
cockroach/upsert.slt: 0.00% (0 / 10)
cockroach/aggregate.slt: 0.00% (0 / 12)
cockroach/alter_table.slt: 0.00% (0 / 4)
cockroach/table.slt: 0.00% (0 / 3)
cockroach/collatedstring.slt: 0.00% (0 / 1)
cockroach/json_builtins.slt: 0.00% (0 / 1)
cockroach/distinct_on.slt: 0.00% (0 / 2)
cockroach/subquery-opt.slt: 0.00% (0 / 2)
cockroach/select.slt: 0.00% (0 / 3)
cockroach/computed.slt: 0.00% (0 / 4)
cockroach/order_by.slt: 0.00% (0 / 1)
cockroach/ordinality.slt: 0.00% (0 / 1)
cockroach/rename_column.slt: 0.00% (0 / 4)
cockroach/json.slt: 0.00% (0 / 2)
cockroach/alter_column_type.slt: 0.00% (0 / 2)
cockroach/typing.slt: 0.00% (0 / 4)
cockroach/drop_database.slt: 0.00% (0 / 1)
cockroach/rename_database.slt: 0.00% (0 / 1)
cockroach/pgoidtype.slt: 0.00% (0 / 3)
cockroach/apply_join.slt: 0.00% (0 / 2)
cockroach/update.slt: 0.00% (0 / 5)
cockroach/sqlsmith.slt: 0.00% (0 / 5)
cockroach/join.slt: 0.00% (0 / 8)
cockroach/timestamp.slt: 0.00% (0 / 1)
cockroach/rows_from.slt: 0.00% (0 / 1)
cockroach/insert.slt: 0.00% (0 / 3)
cockroach/datetime.slt: 0.00% (0 / 1)
cockroach/statement_source.slt: 0.00% (0 / 1)
cockroach/subquery_correlated.slt: 0.00% (0 / 3)
cockroach/lookup_join.slt: 0.00% (0 / 1)
cockroach/zero.slt: 0.00% (0 / 1)
cockroach/returning.slt: 0.00% (0 / 1)
cockroach/prepare.slt: 0.00% (0 / 6)
cockroach/pg_catalog.slt: 0.00% (0 / 5)
cockroach/tuple.slt: 0.00% (0 / 4)
cockroach/with.slt: 0.00% (0 / 5)
cockroach/array.slt: 0.00% (0 / 9)
cockroach/rename_table.slt: 0.00% (0 / 1)
cockroach/where.slt: 0.00% (0 / 1)
cockroach/views.slt: 0.00% (0 / 5)
advent-of-code/2023/aoc_1215.slt: 10.30% (24 / 233)
advent-of-code/2023/aoc_1201.slt: 8.82% (3 / 34)
advent-of-code/2023/aoc_1214.slt: 3.45% (6 / 174)
advent-of-code/2023/aoc_1202.slt: 30.19% (32 / 106)
advent-of-code/2023/aoc_1216.slt: 15.60% (22 / 141)
advent-of-code/2023/aoc_1217.slt: 6.57% (14 / 213)
advent-of-code/2023/aoc_1203.slt: 1.67% (4 / 240)
advent-of-code/2023/aoc_1207.slt: 11.53% (55 / 477)
advent-of-code/2023/aoc_1213.slt: 7.95% (12 / 151)
advent-of-code/2023/aoc_1212.slt: 3.20% (4 / 125)
advent-of-code/2023/aoc_1206.slt: 90.00% (18 / 20)
advent-of-code/2023/aoc_1210.slt: 1.70% (6 / 352)
advent-of-code/2023/aoc_1204.slt: 8.70% (18 / 207)
advent-of-code/2023/aoc_1205.slt: 3.81% (20 / 525)
advent-of-code/2023/aoc_1211.slt: 10.42% (10 / 96)
advent-of-code/2023/aoc_1220.slt: 2.45% (8 / 327)
advent-of-code/2023/aoc_1208.slt: 35.29% (12 / 34)
advent-of-code/2023/aoc_1209.slt: 2.16% (3 / 139)
advent-of-code/2023/aoc_1223.slt: 2.28% (9 / 395)
advent-of-code/2023/aoc_1222.slt: 5.67% (11 / 194)
advent-of-code/2023/aoc_1219.slt: 0.86% (2 / 233)
advent-of-code/2023/aoc_1225.slt: 35.94% (23 / 64)
advent-of-code/2023/aoc_1224.slt: 6.06% (4 / 66)
advent-of-code/2023/aoc_1218.slt: 5.31% (6 / 113)
transform/predicate_reduction.slt: 0.00% (0 / 33)
transform/join_fusion.slt: 0.00% (0 / 128)
transform/literal_lifting.slt: 0.00% (0 / 135)
transform/reduction_pushdown.slt: 0.00% (0 / 44)
transform/relation_cse.slt: 0.00% (0 / 234)
transform/threshold_elision.slt: 0.00% (0 / 84)
transform/scalability.slt: 0.00% (0 / 1)
transform/redundant_join.slt: 0.00% (0 / 29)
transform/join_index.slt: 0.00% (0 / 318)
transform/predicate_pushdown.slt: 0.00% (0 / 405)
transform/reduce_fusion.slt: 0.00% (0 / 10)
transform/aggregation_nullability.slt: 0.00% (0 / 645)
transform/demand.slt: 0.00% (0 / 28)
transform/filter_index.slt: 0.00% (0 / 29)
transform/projection_lifting.slt: 0.00% (0 / 39)
transform/union.slt: 0.00% (0 / 23)
transform/union_cancel.slt: 0.00% (0 / 12)
transform/non_null_requirements.slt: 0.00% (0 / 2)
transform/is_null_propagation.slt: 0.00% (0 / 27)
transform/reduce_elision.slt: 0.00% (0 / 39)
transform/literal_constraints.slt: 0.00% (0 / 174)
transform/column_knowledge.slt: 0.00% (0 / 127)
transform/dataflow.slt: 0.00% (0 / 6)
transform/relax_must_consolidate.slt: 0.00% (0 / 216)
transform/normalize_lets.slt: 0.00% (0 / 86)
transform/monotonic.slt: 0.00% (0 / 30)
transform/scalar_cse.slt: 0.00% (0 / 68)
transform/topk.slt: 0.00% (0 / 35)
transform/fold_constants.slt: 0.00% (0 / 6)
transform/fold_vs_dataflow/5_repeat_row_dataflow.slt: 0.00% (0 / 1)
transform/fold_vs_dataflow/6_bytea_dataflow.slt: 0.00% (0 / 4)
transform/fold_vs_dataflow/3_number_aggfns_dataflow.slt: 0.00% (0 / 85)
transform/fold_vs_dataflow/4_text_folding.slt: 0.00% (0 / 2)
transform/fold_vs_dataflow/2_number_fns_dataflow.slt: 0.00% (0 / 64)
transform/fold_vs_dataflow/4_text_dataflow.slt: 0.00% (0 / 31)
transform/fold_vs_dataflow/7_window_agg_dataflow.slt: 0.00% (0 / 28)
transform/notice/index_too_wide_for_literal_constraints.slt: 77.14% (27 / 35)
transform/notice/index_already_exists.slt: 100.00% (4 / 4)
autogenerated/all_parts_essential.slt: 0.00% (0 / 453)

Overall namescore: 24.48% (7080 / 28920); 238 files with no column references / 456 total files
Output on SLT files (adding `WITH (humanized expressions)` explicitly)
group_size_hints.slt: 100.00% (107 / 107)
timezone.slt: 0.00% (0 / 1)
freshmart.slt: 80.44% (218 / 271)
cte.slt: 0.00% (0 / 2)
not-null-propagation.slt: 75.68% (249 / 329)
github-7892.slt: 0.00% (0 / 1)
numeric.slt: 0.00% (0 / 3)
type-promotion.slt: 0.00% (0 / 3)
mz_recent_storage_usage.slt: 100.00% (2 / 2)
github-7688.slt: 0.00% (0 / 1)
github-16036.slt: 0.00% (0 / 88)
privilege_checks.slt: 100.00% (1 / 1)
vars.slt: 0.00% (0 / 1)
subquery.slt: 64.52% (60 / 93)
github-5474.slt: 0.00% (0 / 1)
aggregates.slt: 50.00% (25 / 50)
outer_join.slt: 0.00% (0 / 128)
github-57.slt: 0.00% (0 / 1)
github-5717.slt: 0.00% (0 / 4)
tpch_select.slt: 62.83% (737 / 1173)
jsonb.slt: 0.00% (0 / 4)
github-8261-8463.slt: 0.00% (0 / 4)
github-7467.slt: 0.00% (0 / 2)
system-cluster.slt: 94.03% (126 / 134)
uniqueness_propagation_filter.slt: 100.00% (149 / 149)
limit_expr.slt: 90.68% (107 / 118)
github-2746.slt: 0.00% (0 / 63)
github-8257.slt: 0.00% (0 / 1)
tpch_create_materialized_view.slt: 64.28% (709 / 1103)
cte_lowering.slt: 0.00% (0 / 188)
timedomain.slt: 96.97% (32 / 33)
scalar_subqueries_select_list.slt: 78.01% (266 / 341)
regtype.slt: 0.00% (0 / 1)
outer_join_simplification.slt: 71.43% (245 / 343)
github-17808.slt: 0.00% (0 / 1)
joins.slt: 71.01% (147 / 207)
regclass.slt: 0.00% (0 / 1)
github-8867.slt: 0.00% (0 / 1)
distinct_on.slt: 88.89% (8 / 9)
alter-table.slt: 100.00% (27 / 27)
persist-fast-path.slt: 33.33% (4 / 12)
types.slt: 68.42% (13 / 19)
char.slt: 0.00% (0 / 3)
updates.slt: 0.00% (0 / 2)
github-7821.slt: 0.00% (0 / 1)
order_by.slt: 33.33% (10 / 30)
cluster_features.slt: 85.00% (238 / 280)
parse_ident.slt: 75.00% (6 / 8)
github-2799.slt: 81.82% (9 / 11)
github-2969.slt: 90.48% (38 / 42)
cardinality.slt: 25.76% (85 / 330)
ldbc_bi.slt: 57.26% (1569 / 2740)
timestamptz.slt: 50.00% (1 / 2)
regex.slt: 64.52% (40 / 62)
extract.slt: 0.00% (0 / 1)
transactions.slt: 94.12% (32 / 34)
timestamp.slt: 50.00% (1 / 2)
github-6935.slt: 0.00% (0 / 1)
github-14116.slt: 100.00% (12 / 12)
regressions.slt: 0.00% (0 / 1)
window_funcs.slt: 11.24% (79 / 703)
github-6464.slt: 42.86% (9 / 21)
managed_cluster.slt: 0.00% (0 / 1)
filter-pushdown.slt: 86.82% (112 / 129)
boolean.slt: 78.57% (33 / 42)
record.slt: 90.00% (9 / 10)
temporal.slt: 0.00% (0 / 1)
list.slt: 70.31% (45 / 64)
like.slt: 100.00% (22 / 22)
outer_join_lowering.slt: 95.00% (589 / 620)
funcs.slt: 40.00% (8 / 20)
recursive_type_unioning.slt: 57.14% (4 / 7)
chbench.slt: 59.08% (924 / 1564)
tpch_create_index.slt: 66.49% (744 / 1119)
dates-times.slt: 0.00% (0 / 1)
scoping.slt: 0.00% (0 / 2)
topk.slt: 95.83% (23 / 24)
regproc.slt: 0.00% (0 / 1)
github-5723.slt: 0.00% (0 / 13)
table_func.slt: 52.70% (39 / 74)
github-5536.slt: 82.35% (14 / 17)
arrays.slt: 0.00% (0 / 2)
github-5126.slt: 0.00% (0 / 47)
ldbc_bi_eager.slt: 57.26% (1569 / 2740)
reduce_mfp.slt: 0.00% (0 / 26)
arithmetic.slt: 82.76% (48 / 58)
explain/broken_statements.slt: 0.00% (0 / 1)
explain/aggregates.slt: 96.10% (197 / 205)
explain/physical_plan_aggregates.slt: 0.00% (0 / 321)
explain/materialized_view.slt: 21.28% (10 / 47)
explain/physical_plan_as_text.slt: 7.66% (75 / 979)
explain/pushdown.slt: 100.00% (2 / 2)
explain/optimized_plan_as_text_redacted.slt: 91.09% (358 / 393)
explain/replan_catalog_items.slt: 100.00% (57 / 57)
explain/decorrelated_plan_as_text.slt: 21.61% (75 / 347)
explain/enable_eager_delta_joins.slt: 83.22% (119 / 143)
explain/raw_plan_as_text.slt: 40.32% (75 / 186)
explain/physical_plan_as_text_redacted.slt: 7.92% (75 / 947)
explain/locally_optimized_plan.slt: 0.00% (0 / 80)
explain/optimized_plan_as_text.slt: 89.58% (516 / 576)
introspection/unstable.slt: 0.00% (0 / 1)
attributes/mir_unique_keys.slt: 89.74% (35 / 39)
attributes/mir_column_types.slt: 94.64% (53 / 56)
attributes/mir_arity.slt: 78.46% (51 / 65)
postgres/rowtypes.slt: 0.00% (0 / 3)
postgres/subselect.slt: 0.00% (0 / 6)
cockroach/create_as.slt: 0.00% (0 / 4)
cockroach/builtin_function.slt: 0.00% (0 / 8)
cockroach/srfs.slt: 0.00% (0 / 15)
cockroach/drop_view.slt: 0.00% (0 / 1)
cockroach/subquery.slt: 0.00% (0 / 10)
cockroach/select_index.slt: 0.00% (0 / 6)
cockroach/window.slt: 0.00% (0 / 9)
cockroach/orms.slt: 0.00% (0 / 2)
cockroach/decimal.slt: 0.00% (0 / 2)
cockroach/upsert.slt: 0.00% (0 / 10)
cockroach/aggregate.slt: 0.00% (0 / 12)
cockroach/alter_table.slt: 0.00% (0 / 4)
cockroach/table.slt: 0.00% (0 / 3)
cockroach/collatedstring.slt: 0.00% (0 / 1)
cockroach/json_builtins.slt: 0.00% (0 / 1)
cockroach/distinct_on.slt: 0.00% (0 / 2)
cockroach/subquery-opt.slt: 0.00% (0 / 2)
cockroach/select.slt: 0.00% (0 / 3)
cockroach/computed.slt: 0.00% (0 / 4)
cockroach/order_by.slt: 0.00% (0 / 1)
cockroach/ordinality.slt: 0.00% (0 / 1)
cockroach/rename_column.slt: 0.00% (0 / 4)
cockroach/json.slt: 0.00% (0 / 2)
cockroach/alter_column_type.slt: 0.00% (0 / 2)
cockroach/typing.slt: 0.00% (0 / 4)
cockroach/drop_database.slt: 0.00% (0 / 1)
cockroach/rename_database.slt: 0.00% (0 / 1)
cockroach/pgoidtype.slt: 0.00% (0 / 3)
cockroach/apply_join.slt: 0.00% (0 / 2)
cockroach/update.slt: 0.00% (0 / 5)
cockroach/sqlsmith.slt: 0.00% (0 / 5)
cockroach/join.slt: 0.00% (0 / 8)
cockroach/timestamp.slt: 0.00% (0 / 1)
cockroach/rows_from.slt: 0.00% (0 / 1)
cockroach/insert.slt: 0.00% (0 / 3)
cockroach/datetime.slt: 0.00% (0 / 1)
cockroach/statement_source.slt: 0.00% (0 / 1)
cockroach/subquery_correlated.slt: 0.00% (0 / 3)
cockroach/lookup_join.slt: 0.00% (0 / 1)
cockroach/zero.slt: 0.00% (0 / 1)
cockroach/returning.slt: 0.00% (0 / 1)
cockroach/prepare.slt: 0.00% (0 / 6)
cockroach/pg_catalog.slt: 0.00% (0 / 5)
cockroach/tuple.slt: 0.00% (0 / 4)
cockroach/with.slt: 0.00% (0 / 5)
cockroach/array.slt: 0.00% (0 / 9)
cockroach/rename_table.slt: 0.00% (0 / 1)
cockroach/where.slt: 0.00% (0 / 1)
cockroach/views.slt: 0.00% (0 / 5)
advent-of-code/2023/aoc_1215.slt: 10.30% (24 / 233)
advent-of-code/2023/aoc_1201.slt: 8.82% (3 / 34)
advent-of-code/2023/aoc_1214.slt: 3.45% (6 / 174)
advent-of-code/2023/aoc_1202.slt: 30.19% (32 / 106)
advent-of-code/2023/aoc_1216.slt: 15.60% (22 / 141)
advent-of-code/2023/aoc_1217.slt: 6.57% (14 / 213)
advent-of-code/2023/aoc_1203.slt: 1.67% (4 / 240)
advent-of-code/2023/aoc_1207.slt: 11.53% (55 / 477)
advent-of-code/2023/aoc_1213.slt: 7.95% (12 / 151)
advent-of-code/2023/aoc_1212.slt: 3.20% (4 / 125)
advent-of-code/2023/aoc_1206.slt: 90.00% (18 / 20)
advent-of-code/2023/aoc_1210.slt: 1.67% (6 / 360)
advent-of-code/2023/aoc_1204.slt: 8.70% (18 / 207)
advent-of-code/2023/aoc_1205.slt: 3.81% (20 / 525)
advent-of-code/2023/aoc_1211.slt: 10.42% (10 / 96)
advent-of-code/2023/aoc_1220.slt: 2.43% (8 / 329)
advent-of-code/2023/aoc_1208.slt: 35.29% (12 / 34)
advent-of-code/2023/aoc_1209.slt: 2.16% (3 / 139)
advent-of-code/2023/aoc_1223.slt: 2.28% (9 / 395)
advent-of-code/2023/aoc_1222.slt: 5.67% (11 / 194)
advent-of-code/2023/aoc_1219.slt: 0.86% (2 / 233)
advent-of-code/2023/aoc_1225.slt: 35.94% (23 / 64)
advent-of-code/2023/aoc_1224.slt: 6.06% (4 / 66)
advent-of-code/2023/aoc_1218.slt: 5.31% (6 / 113)
transform/predicate_reduction.slt: 66.67% (22 / 33)
transform/join_fusion.slt: 76.56% (98 / 128)
transform/literal_lifting.slt: 66.67% (90 / 135)
transform/reduction_pushdown.slt: 80.95% (51 / 63)
transform/relation_cse.slt: 68.38% (160 / 234)
transform/threshold_elision.slt: 76.19% (64 / 84)
transform/scalability.slt: 0.00% (0 / 1)
transform/redundant_join.slt: 51.72% (15 / 29)
transform/join_index.slt: 53.77% (171 / 318)
transform/predicate_pushdown.slt: 45.68% (185 / 405)
transform/reduce_fusion.slt: 100.00% (10 / 10)
transform/aggregation_nullability.slt: 84.65% (546 / 645)
transform/demand.slt: 46.43% (13 / 28)
transform/filter_index.slt: 93.10% (27 / 29)
transform/projection_lifting.slt: 100.00% (39 / 39)
transform/union.slt: 78.26% (18 / 23)
transform/union_cancel.slt: 91.67% (11 / 12)
transform/non_null_requirements.slt: 0.00% (0 / 2)
transform/is_null_propagation.slt: 88.89% (24 / 27)
transform/reduce_elision.slt: 84.62% (33 / 39)
transform/literal_constraints.slt: 73.56% (128 / 174)
transform/column_knowledge.slt: 94.49% (120 / 127)
transform/dataflow.slt: 100.00% (6 / 6)
transform/relax_must_consolidate.slt: 0.00% (0 / 216)
transform/normalize_lets.slt: 37.21% (32 / 86)
transform/monotonic.slt: 20.00% (6 / 30)
transform/scalar_cse.slt: 35.29% (24 / 68)
transform/topk.slt: 65.71% (23 / 35)
transform/fold_constants.slt: 33.33% (2 / 6)
transform/fold_vs_dataflow/5_repeat_row_dataflow.slt: 0.00% (0 / 1)
transform/fold_vs_dataflow/6_bytea_dataflow.slt: 0.00% (0 / 4)
transform/fold_vs_dataflow/3_number_aggfns_dataflow.slt: 0.00% (0 / 85)
transform/fold_vs_dataflow/4_text_folding.slt: 0.00% (0 / 2)
transform/fold_vs_dataflow/2_number_fns_dataflow.slt: 0.00% (0 / 64)
transform/fold_vs_dataflow/4_text_dataflow.slt: 0.00% (0 / 31)
transform/fold_vs_dataflow/7_window_agg_dataflow.slt: 0.00% (0 / 28)
transform/notice/index_too_wide_for_literal_constraints.slt: 77.14% (27 / 35)
transform/notice/index_already_exists.slt: 100.00% (4 / 4)
autogenerated/all_parts_essential.slt: 52.10% (236 / 453)

Overall namescore: 47.49% (13753 / 28960); 238 files with no column references / 456 total files

Motivation

Checklist

  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.

@mgree mgree added T-UX User experience / ergonomics T-debug Theme: improve ability to debug Materialize A-optimization Area: query optimization and transformation A-compute Area: compute A-CLUSTER Topics related to the CLUSTER layer labels Mar 12, 2025
@ggevay
Copy link
Contributor

ggevay commented Mar 13, 2025

Oh, this is great!

I think the result is so low only because we don't have humanization turned on in most of our EXPLAIN statements in slts. It defaults to turned on in staging/prod, but otherwise it defaults to off. The option is WITH (HUMANIZED EXPRESSIONS). Maybe we should turn this on globally!

(There are several such EXPLAIN options. This is the tracking issue: https://github.com/MaterializeInc/database-issues/issues/8097)

@mgree
Copy link
Contributor Author

mgree commented Mar 18, 2025

Isn't humanized expressions on by default? It's what the docs say, though maybe default WITH flags gets turned off once you specify other parts of the EXPLAIN?

@ggevay
Copy link
Contributor

ggevay commented Mar 18, 2025

Isn't humanized expressions on by default?

That is only in staging/prod. It's off in tests, see details in the above-linked https://github.com/MaterializeInc/database-issues/issues/8097

though maybe default WITH flags gets turned off once you specify other parts of the EXPLAIN

No, those options that don't occur in the WITH clause are not affected by having a WITH clause. (Or if they are, that's a bug.)

@mgree
Copy link
Contributor Author

mgree commented Mar 18, 2025

Isn't humanized expressions on by default?

That is only in staging/prod. It's off in tests, see details in the above-linked MaterializeInc/database-issues#8097

Oh! I see---I misunderstood. I'll turn it on explicitly for tests in this PR, then.

@mgree mgree force-pushed the explain-namescore branch from 694bffe to a329c8d Compare March 18, 2025 19:50
@mgree
Copy link
Contributor Author

mgree commented Mar 18, 2025

Okay, you're absolutely right: we do much better when we actually ask for names. 😁

Overall namescore: 47.49% (13753 / 28960); 238 files with no column references / 456 total files

@ggevay ggevay self-requested a review March 19, 2025 14:02
Copy link
Contributor

@ggevay ggevay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! We could maybe run Nightly before merging, just to be safe.

@mgree
Copy link
Contributor Author

mgree commented Mar 20, 2025

The testdrive failure is an unrelated timeout (also an issue on main see https://github.com/MaterializeInc/database-issues/issues/9095)---the salient bits look good! Merging.

@mgree mgree merged commit 056877d into MaterializeInc:main Mar 20, 2025
115 of 117 checks passed
@mgree mgree deleted the explain-namescore branch March 20, 2025 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CLUSTER Topics related to the CLUSTER layer A-compute Area: compute A-optimization Area: query optimization and transformation T-debug Theme: improve ability to debug Materialize T-UX User experience / ergonomics

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants