Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion test/check_ledger.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -2279,7 +2279,7 @@ native_chunk_length_bound native_chunk_length_bound an index fetch of a chunk wh
native_chunk_length_bound native_chunk_length_bound backend survived the sequential refusal 15;16;17;18;19 never -
native_chunk_length_bound native_chunk_length_bound backend survived the truncated-length fetch 15;16;17;18;19 never -
native_chunk_length_bound native_chunk_length_bound premise: a point lookup uses the index, not a sequential columnar scan 15;16;17;18;19 never -
native_chunk_length_bound native_chunk_length_bound premise: that fetch returns the row 15;16;17;18;19 never -
native_chunk_length_bound native_chunk_length_bound that fetch returns the row 15;16;17;18;19 2026-10-16 the index fetch treated a flushed row as not live, so the lookup returned no row (mutation, #1339)
native_delete_visibility_paths native_delete_visibility_paths a DELETE whose qual deletes another row of the table succeeds and leaves heap's rows (#1394) 15;16;17;18;19 2026-10-14 PgColumnarUpsertDeleteVector without the command advance (main before #1394's fix)
native_delete_visibility_paths native_delete_visibility_paths a deleted row is invisible via the index 15;16;17;18;19 never -
native_delete_visibility_paths native_delete_visibility_paths a live row is visible via the index 15;16;17;18;19 never -
Expand Down
12 changes: 11 additions & 1 deletion test/check_ledger_budget.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2933,4 +2933,14 @@ suites_not_covered 219
# never 2678 - 2 = 2676
# dated 941 + 2 = 943
# 2676 + 943 == 3619
checks_never_observed_red 2676
#
# #1339, native_chunk_length_bound's "that fetch returns the row" was a premise a
# product change reddens (jdatcmd): 2676 -> 2675. It becomes an arm, its row renamed
# with its history, dated by the index fetch treating a flushed row as not live. The
# plan premise beside it stays a premise. No row is added or removed.
#
# ledger rows 3619 + 0 = 3619
# never 2676 - 1 = 2675
# dated 943 + 1 = 944
# 2675 + 944 == 3619
checks_never_observed_red 2675
5 changes: 4 additions & 1 deletion test/native_chunk_length_bound.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ fetch_val() {
env PATH="$PGC_BINDIR:$PATH" psql -h 127.0.0.1 -p "$PGC_PORT" -U postgres -d "$PGC_DB" \
-Atq -c "$1" 2>&1 | grep -v '^SET$' | tail -1
}
check "premise: that fetch returns the row" \
# An arm, not a premise (#1339, #1236): an index fetch that treats a flushed row as
# not live returns no row here. The plan premise above stays a premise: with the
# scans off, the planner, not this repository, chooses the index.
check "that fetch returns the row" \
"$(fetch_val "${FETCH} SELECT t FROM clb WHERE id = 1;")" "v1"

q "UPDATE pgcolumnar.column_chunk SET page_length = page_length + 4294967296
Expand Down
10 changes: 8 additions & 2 deletions test/pytest/test_native_chunk_length_bound.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,14 @@ def test_native_chunk_length_bound(pgc_conn, expect):
cur.execute("SET enable_bitmapscan=off")
cur.execute("SET pgcolumnar.enable_custom_scan=off")
cur.execute("SELECT t FROM clb WHERE id = 1")
got = cur.fetchone()[0]
expect.text(got, "v1", "premise: that fetch returns the row")
# A missing row is this check's failure, by name (#1339): fetchone()[0] on
# no row raised TypeError, and the run never said which check it was.
row = cur.fetchone()
got = row[0] if row else "<no row>"
# An arm, not a premise (#1339, #1236): an index fetch that treats a flushed row
# as not live returns no row here. The plan premise above stays a premise: with
# the scans off, the planner, not this repository, chooses the index.
expect.text(got, "v1", "that fetch returns the row")

with pgc_conn.cursor() as cur:
cur.execute(
Expand Down
Loading