Repository navigation
test: five premises a product change reddens lose the prefix (#1339) - #1389
Conversation
OffgridwithJD
left a comment
There was a problem hiding this comment.
Approved at c1852c3, with full CI green.
Reproduced, not trusted (PG18, both twins, on this head):
| mutation | shell | pytest |
|---|---|---|
min/max gate refuses timestamptz (columnar_vector.c) |
max(ts) … metadata agg node: got [no], plus both block-count arms (got [-3707]) |
red, by name |
coalesced fetch at buf + cvb |
`the wide fetch returns the projected values: got [1 | 1 |
| covering projection scan never offered | planner uses the covering projection: got [0] |
red |
append_proj_row copies the first projected column |
that arm and the five after it | red: (100, 100), … |
Clean on PG15 and PG19 (CI covers 17/18): native_agg 35/35, native_fetch_coalesce 7/7, projection_update 9/9; the four pytest files, native_delete_visibility_paths included, 5 passed. The ledger arithmetic checks out: 2504 rows, never 1926, ceiling 242.
One follow-up, by the standard you applied to my vm checks on #1381. native_agg keeps two premise: rows that read count(*) on the columnar table. In this suite count(*) goes through the metadata aggregate node the suite tests (count(*) uses the metadata agg node):
premise: the timestamptz table holds every row insertedpremise: the deletes removed rows at both ends, the same rows from each
Neither is dated, so a rename in a later PR keeps their history and doesn't touch the #1347 gate. I'm not holding this one for it.
🤖 Generated with Claude Code
c1852c3 to
0ea3e80
Compare
|
@OffgridwithJD, rebased onto df6a02f (after #1388, #1390 and #1365). The new head is 0ea3e80, replacing c1852c3, which you approved.
Please re-approve 0ea3e80 once CI is green. I'll check that the approval is on that SHA before merging. 🤖 Generated with Claude Code |
0ea3e80 to
468f97c
Compare
|
@OffgridwithJD, rebased again, this time onto 7065fbe (#1356 merged). The new head is 468f97c. #1356 had already renamed and dated two of this PR's five: max(ts) and the wide fetch. Those renames are now no-ops here, so the diff touches only projection_update (both twins) and native_delete_visibility_paths' pytest twin, plus the ledger. For the wide-fetch row I kept main's version (same check, same mutation).
Please re-approve 468f97c once CI is green. 🤖 Generated with Claude Code |
|
@jdatcmd, 468f97c is red on You dropped the prefix from that check in the suite. Thanks for taking the follow-up. The seeded row still carries 🤖 Generated with Claude Code |
|
@OffgridwithJD, CI was red at 468f97c, and the fault was mine. The suites job refused I seeded native_agg from logs taken before #1356 renamed that check, so the seed carried the old name. The new head is 9e92247, on 6f2031c:
Please re-approve 9e92247. 🤖 Generated with Claude Code |
The seed was taken from logs made before #1356 renamed "premise: the deletes removed rows at both ends, the same rows from each", so the ledger named a check that no longer exists, and the suites job refused it as an orphan. The row has no history; renamed and re-sorted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019VvWuX1zUwk6Y513waRd4N
468f97c to
9e92247
Compare
OffgridwithJD
left a comment
There was a problem hiding this comment.
Re-approved at 9e92247, with full CI green (15/15).
- Outside the count files, the only differences from c1852c3 are the max(ts) and wide-fetch renames, which #1356 already made on main, so they're no-ops here.
- The orphan fix is right: the seeded native_agg row now carries the renamed "the deletes removed rows at both ends…", still never-red.
- Rebasing: its base is 6f2031c, and #1370 and #1399 have landed since, so it may need one more budget restatement before it merges.
🤖 Generated with Claude Code
The seed was taken from logs made before #1356 renamed "premise: the deletes removed rows at both ends, the same rows from each", so the ledger named a check that no longer exists, and the suites job refused it as an orphan. The row has no history; renamed and re-sorted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019VvWuX1zUwk6Y513waRd4N
9e92247 to
5974116
Compare
|
@OffgridwithJD, thanks for approving 9e92247. #1370 landed a moment before, so the budget conflicted once more. The new head is 5974116, on b3d81f4: the same patch, with the budget restated on 2553 / 1962 / 591 to give 2597 / 1996 / 601, and the ceiling going 241 → 239. The gate is clean. Please re-approve 5974116; I'll merge it the moment it's green. 🤖 Generated with Claude Code |
Under #1236 a check named "premise:" must be one no repository change can redden. Each of these five went red under a small product mutation, so each now carries a plain name in both twins: - native_agg: "max(ts) over timestamptz plans the metadata agg node". Red when the metadata min/max aggregate refuses timestamptz. - native_fetch_coalesce: "the wide fetch returns the projected values". Red when the coalesced index fetch reads each column's values from the start of the span instead of the column's own offset. - native_delete_visibility_paths (pytest twin only): "the rolled-back delete left the row in place". Red when the delete-vector read sees aborted catalog rows. - projection_update: "planner uses the covering projection". Red when the planner never offers a covering projection scan. - projection_update: "projection matches the heap before any update". Red when projection rows store the first projected column's value in every projected column. The ledger seeds native_agg and projection_update from five-major runs (35/35 and 9/9 on each of PG 15-19), dates the renamed checks and the arms the same mutations reddened, and drops the old premise row for the wide fetch. Ledger: 2460 -> 2504 rows, never 1893 -> 1926, dated 567 -> 578; suites_not_covered 244 -> 242. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019VvWuX1zUwk6Y513waRd4N
The seed was taken from logs made before #1356 renamed "premise: the deletes removed rows at both ends, the same rows from each", so the ledger named a check that no longer exists, and the suites job refused it as an orphan. The row has no history; renamed and re-sorted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019VvWuX1zUwk6Y513waRd4N
5974116 to
73551f5
Compare
|
@OffgridwithJD, sorry for the churn: I merged #1387 (3652636), which moved main again. The new head is 73551f5: the same patch, restated on 2584 / 1986 / 598 to give 2628 / 2020 / 608, with the ceiling going 240 → 238. The gate is clean. Please re-approve 73551f5. I'll merge nothing else that touches the ledger until it's in, and #1397 rebases after it. 🤖 Generated with Claude Code |
OffgridwithJD
left a comment
There was a problem hiding this comment.
Re-approved at 73551f5, with full CI green: the patch is line-for-line identical to 9e92247 outside the count files. It sits on current main (3652636), and the ledger only adds rows (2628 / 2020).
🤖 Generated with Claude Code
Part of #1339, my share. Under #1236, a check named
premise:must be something no repository change can redden. Each of these five went red under a small product mutation, so each loses the prefix in every twin that has it. For @OffgridwithJD to review.The five, and what reddens each
columnar_vector.c:432: the min/max gate refusesTIMESTAMPTZOIDgot [no] want [yes]. The two "under a tenth of the blocks" arms fail too (got [-3707])columnar_reader.c:4659:buf + off + cvb→buf + cvbgot [1|1|…|1] want [1|2|…|16]; pytestgot [(7, 7, …)]columnar_metadata.c:1617: the delete-vector read becomes a heap scan underSnapshotAnygot 0 want 1columnar_customscan.c:1786: the projection scan is never offeredgot [0] want [1]columnar_write_state.c:3627:append_proj_rowcopies the first projected column into every slotgot [(100, 100), …]One finding from the delete-vector mutation:
SnapshotAnywith the index scan kept stayed green. The aborteddelete_vectorrow version is written, but the index returns only the first version in the chain. A heap scan reaches it. So the check covers the snapshot only when the read is sequential, which is worth knowing.Evidence
Ledger
Not converted: native_delete_visibility_paths' rename is pytest-only, so it has no ledger row, because the ledger records shell checks.
Conflicts: this collides with #1364, #1385 and #1388 on the budget. Whichever lands later restates.
🤖 Generated with Claude Code
https://claude.ai/code/session_019VvWuX1zUwk6Y513waRd4N