You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 07164db
Browse filesBrowse the repository at this point in the historyBrowse files
test(benchmarks): pin DuckShop edge array order and guard the core copy by checksum
Sort the results of ARRAY_EXCEPT, ARRAY_DISTINCT and OBJECT_KEYS, whose
element order is unspecified, and recapture their expectations. The
core-copy compile guard now compares the copy's compiled files with a
recorded checksum, which core_project.py --checksum prints. The core copy
also leaves out the edge Rule and its tests, renamed with an edge_
prefix, and the marked edge blocks of sqlbuild_project.toml. The Rule
reads only the header's top-level tags, past strings holding ');'. The
README and RUNBOOK say which expectations are captured and which are
written by hand, that a schema built with the old identifier-case
setting needs a clean rebuild, and that DEFAULT_DDL_COLLATION must stay
at its default on the edge schema.
Copy file name to clipboardExpand all lines: benchmarks/duckshop/README.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -129,15 +129,18 @@ groups:
129
129
| Ordering, numbers and text | NULL ordering under `DESC`; ties in ordered aggregates, `MAX_BY`, `MODE` and `ANY_VALUE`; default window frames; `UNION ALL BY NAME`; `ROUND` half-way values, decimal division, `MOD` and 38-digit amounts; integers past 2^53 against `FLOAT`; regular expressions and backslash escapes; `LIKE ... ESCAPE` and `ILIKE ANY`; `SPLIT_PART` and `SUBSTR` before the start; `NOT IN` with a NULL; names in many scripts |
130
130
| Scenarios and lifecycle | typed values across model boundaries; `VARIANT` expected output; a star under a lower-case contract and a quoted camelCase export; a cursor-window incremental model over far-apart fixture loads; a change log merged across two loads, checked against a full rebuild |
131
131
132
-
Every expected value in the edge-case area was captured on Snowflake under the `edge` target's
133
-
pinned session, rather than derived by hand. `fct_edge_delivery_events` is disabled: it is the
132
+
Unit-test expectations in the edge-case area were captured on Snowflake under the `edge` target's
133
+
pinned session, rather than derived by hand; scenario expectations, and the assertions in tests
134
+
about ties, are written by hand from those captured values. `fct_edge_delivery_events` is disabled: it is the
134
135
acceptance case for cursor `delete_insert` models that emit rows outside the window they replace.
135
136
See [RUNBOOK.md](RUNBOOK.md), step 7.
136
137
137
138
Benchmarks and core measurements leave the area out:
138
139
139
140
-`python benchmarks/duckshop/scripts/core_project.py <destination>` copies the project without
140
-
it; the copy compiles to the same files as the project did before the area existed;
141
+
it. The core-copy compile guard compares the copy's compiled files with a recorded checksum
142
+
(`core_project.py --checksum`), so a change to the core project's compiled SQL fails the guard
143
+
until the checksum is updated on purpose and noted for the benchmark;
141
144
- warehouse runs exclude it with `--exclude tag:edge_case "source:edge__*"`, and scenario runs
142
145
with `--exclude edge_cases`;
143
146
- the construct census counts the core project unless given `--area edge` or `--area all`.
0 commit comments