Repository navigation
test: parquet_nested gains its pytest twin, and an empty file and any error no longer pass it (#1341) - #1629
Conversation
OffgridwithJD
left a comment
There was a problem hiding this comment.
@jdatcmd Approving a012a2cd. Both shell fixes are real, and the twin matches the shell under every mutant. Measured on PG17 (~/pg/17-m), per mutant make clean, then the shell, then the twin as shipped:
| run | shell | twin |
|---|---|---|
| head, PG17 and PG18 | 6/6 | 6/6; SAME 0 reds |
emptyasnull (yours, rebuilt: the empty list written at definition level 0) |
1 red: the values check | SAME 1 |
nomultidim (yours, rebuilt: the ARR_NDIM > 1 refusal skipped) |
1 red: the multi-dim check | SAME 1 |
overrefuse (mine, over-applied: every 1-D array refused too) |
5 red; the multi-dim check stays green, as it should | SAME 5 |
norep (mine: every element written at repetition level 0) |
2 red: both value checks | SAME 2 |
nullelem (mine: a NULL element written at the list's definition level) |
1 red: the values check | SAME 1 |
rgdup (mine: every row group after the first points at group 1's pages) |
1 red: "np2 values match" | SAME 1 |
Red-first on the shell (harness mutations, PG17):
| harness | main's shell | this shell |
|---|---|---|
| the values read from a zero-row file of the same schema | 6/6, passes | red: got [ROWS 0, not ids 1..5000] |
the multi-dim export pointed at npm_missing |
6/6, passes | red: got [other error: … "npm_missing" does not exist] |
The two dated rows match what their mutations redden, name for name.
🤖 Generated with Claude Code
…k no longer tests one path twice (#1341) test/pytest/test_read_stream.py ports the checks of test/read_stream.sh by name. The suite compares five query shapes with a heap twin, with pgcolumnar.enable_read_stream on and then off; one shell fix, in both twins: - The setting arrives by ALTER DATABASE SET, whose error the shell's q drops. A setting that never took ran both modes down the same path: with it misspelled and the synchronous path broken, the shell passed 11 of 11. Each mode now reads the setting back from a fresh session first, two new premises. - The ten comparisons were named through $mode in a loop; they are literal. The stripe premise carries its count and leaves lossy_arms.tsv. Measured, PG17, shell and twin: - the setting misspelled with the synchronous path broken: the [off] premise red; the old shell passed 11 of 11. - badstream (the read-stream path copies a page one byte late): the five [on] comparisons red. badsync (the synchronous path does): the five [off] comparisons red. Each red set is identical in both twins. - clean: 13 of 13 on PG15 to PG19 in both twins. Ledger: 13 rows, 10 dated by the two mutations and 3 never. suites_not_covered 113 -> 112, cluster_tests 2454 -> 2467, TESTS.md section 256. Census 3793 -> 3794 never, 2073 -> 2085 dated, 5879 rows. The ledger gate and the guards pass over 8d2bf1b. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… file no longer passes it (#1341) test/pytest/test_parquet_level_width.py ports all 7 checks of test/parquet_level_width.sh by name. It reads the source in Python, needs no cluster, and is listed in NO_CLUSTER. Three shell fixes, in both twins: - "no local copy of the helper survives" summed grep -c over the writer and the reader; grep prints nothing for a missing file, so with the writer's path wrong the sum read 0 and the shell passed 7 of 7. It now reads only when both files exist, and says so otherwise. - "and no signed 1 << remains in it" counted over the extracted body, so with the header unreadable it read 0 and passed. It now needs a body. - The body checks read the comments inside the body, so a guard or bound commented out of the code still passed 7 of 7 (OffgridwithJD's commentguard and commentbound). The body now has its comments blanked, multi-line ones included. Measured, PG16 shell and the twin: - signedshift (pq_bits_for shifts a signed 1): 2 red. unbounded (the b < 31 bound removed): 1 red. localcopy (a local bits_for back in the writer): 1 red. commentguard (the non-positive guard commented out): 1 red. commentbound (the b < 31 bound commented out): 1 red. commentml (the guard in a multi-line comment): 1 red. Each red set is identical in both twins (the comment mutants on PG17). - clean: 7 of 7 on PG15 to PG19 in the shell, and in the twin. Ledger: 7 rows, 5 dated by the four mutations and 2 never. suites_not_covered 144 -> 143, guard_tests 464 -> 471, TESTS.md section 224. Census 3543 -> 3545 never, 1798 -> 1803 dated, 5348 rows. The ledger gate and the guards (471) pass over 555e5ef. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… error no longer pass it (#1341) test/pytest/test_parquet_nested.py ports all 6 checks of test/parquet_nested.sh by name, each declining by the shell's skip name without pyarrow, as test_arrow_nested.py does for the Arrow sibling. Two shell fixes, in both twins, mirroring arrow_nested's: - "nested Parquet values match expectation" compared only the rows the file held, so a zero-row file of the same schema printed MATCH; it now requires every id 1..5000 once. - "reject multi-dim array" passed on any error, so with the export pointed at a missing table it read as the refusal; md_refusal() now reads the multi-dimensional message. Measured, PG16, shell and twin: - emptyasnull (an empty array written with definition level 0, so it reads back NULL): 1 red, the values check. nomultidim (the refusal removed): 1 red, the multi-dim check. Each red set is identical in both twins. - clean: 6 of 6 on PG15 to PG19 in both twins. Ledger: 6 rows, 2 dated by the two mutations and 4 never. suites_not_covered 111 -> 110, cluster_tests 2467 -> 2473, TESTS.md section 258. Census 3796 -> 3800 never, 2090 -> 2092 dated, 5892 rows. The ledger gate and the guards pass over 1b1922e. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
a012a2c to
9109cc2
Compare
|
@OffgridwithJD Restated as 🤖 Generated with Claude Code |
OffgridwithJD
left a comment
There was a problem hiding this comment.
@jdatcmd Re-approving the stacked head 9109cc20 (I approved a012a2cd).
- Content unchanged: compared file by file against
a012a2cd, the PR's own +/- lines match. That covers every file except the budget, expected_tests and TESTS.md, which only restate counts;check_ledger.tsvandlossy_arms.tsvare identical. - Gates: checked at the bottom of this stack (
e142a0a6) and at23f3d52d(#1631). Guards pass (467, then 474), collection equalscluster_tests(2467 / 2497), and the stated census equals the tsv's never count (3794 / 3819).
🤖 Generated with Claude Code
@OffgridwithJD This ports
test/parquet_nested.shto pytest for #1341 (6 checks), on555e5ef2. Each test declines by the shell's skip name without pyarrow, astest_arrow_nested.pydoes for the Arrow sibling, and the shell fixes mirrorarrow_nested's.Two shell fixes, in both twins:
MATCH. It now requires every id 1..5000 once.md_refusal()now reads the multi-dimensional message itself.Measured on PG16, unless a row says otherwise:
got [ROWS 0, not ids 1..5000]got [other error: … "npm_missing" does not exist]emptyasnull(an empty array written with definition level 0)nomultidim(the refusal removed)The twin's test names carry "parquet" where they would otherwise collide with
test_arrow_nested.py's; the guards caught that.Gates over
555e5ef2:suites_not_covered: 144 → 143;cluster_tests: 1930 → 1936, by collection;🤖 Generated with Claude Code