Skip to content

docs: CHANGELOG entries for 16 merged changes, and #1360 marked fixed (#2034) - #2037

Merged
jdatcmd merged 2 commits into
mainfrom
docs/2034-changelog-gaps
Nov 7, 2026
Merged

jdatcmd merged 2 commits into
mainfrom
docs/2034-changelog-gaps

Conversation

@jdatcmd

@jdatcmd jdatcmd commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

Closes #2034.

Merge order

The release PR #1335 renames ## [Unreleased] to the alpha5 heading. Merge this PR first; #1335 then merges main.

What changed

All changes are in CHANGELOG.md, under ## [Unreleased]. Each new entry goes at the top of the first ### Fixed or ### Changed subsection. No existing entry was removed or moved.

Entries added under Fixed

Issue Source PR Entry
#1360 #1403 (7b893df) a read inside an aborted EXCEPTION block no longer loses the enclosing statement's rows
#1394 #1396 a DELETE whose qual deletes another row of the same table no longer fails
#1407 #1412 REINDEX reclaims the entries of deleted rows again
#1384 #1401 truncate() checks ownership before its lock and its type check
#1376 #1406 a rollup depends on its source; dropping a rollup drops its partials and catalog rows
#1377 #1405 pg_dump carries a rollup's definition; refresh_rollup refuses a restored source
#1344 #1346 make stops when PG_CONFIG gives no PGXS, before a probe reads stdin
#1614 #1639 refresh_rollup reads the source's storage id once
#1331 (review) #1334 partition_drop_plan's drop block is a string literal, not dollar-quoted
#1263 #1264 import_parquet into a partitioned table refuses (42809) instead of crashing
#1305 #1316 an unguarded capability import is refused under pytest -n too
#1420 #1432 setting an attribute on pgc_conn or its cursors raises
— #1434 the ledger refuses a mutation containing ;; 12 split rows reworded

Entries added under Changed

Issue Source PR Entry
#1104 #1105 the nightly's ledger gate compares against the commit's parent (PGC_LEDGER_AGAINST)
#1613 #1735 the pytest summary counts and names a refused comparison
#1337 #1338 the tests follow PostgreSQL 19beta4

One entry corrected

The #1341 entry said the same loss through a read "is #1360, not yet fixed". It now says "was #1360, since fixed by #1403 (7b893df)". I checked that 7b893df is on origin/main.

Each entry is written from the PR's description and its merge diff. For #1263 the diff differs from the PR description: the guard checks for storage (RELKIND_HAS_STORAGE, 42809 "cannot import into relation"), not for a columnar table, so the entry follows the diff.

How the gaps were found

  1. Listed every first-parent merge on main from v1.0-alpha4 to 23c14506: 597 merged PRs.
  2. For each PR, collected its own number, the Closes/Fixes/Resolves numbers in its body, numbers in its title, and the number in its branch name.
  3. Flagged a PR when none of those numbers appears anywhere in CHANGELOG.md: 124 PRs.
  4. Read each flagged PR and searched the CHANGELOG for its behaviour, because some entries describe a change without citing its number.

Candidates skipped, and why

Already described, without the number: #1306 and #1312 (TID range scans, and the Material's plan node id), #1367 / #1366 (Iceberg planning privilege), #1299 (storage-row repair locking partitions), #1155 and #1180 (projection pricing), #1151 (cannot_run carries a check name), #1301 (alpha4 binary refusal, min/max(ts)).

Test-strength audit, #1339 (about 60 PRs, for example #1340–#1361, #1389, #1397, #1402, #1445–#1528, #1565–#1586, #1615, #1658–#1680, #1751, #1756): each makes existing checks able to fail. They change no product behaviour and no harness rule, and the CHANGELOG records none of them today.

Flake, timing and fixture fixes in single suites: #1332, #1343 (#1336), #1388 (#1298), #1390 (#1368), #1399 (#1398), #1417, #1479 (#1478), #1501, #1505 (#1481), #1632, #1670 (#1657 follow-up), #1760 (#1757). #1404 (#1386) adds arms to entry_point_privilege; also skipped as test coverage.

CI runner settings only: #1385 (#1382), #1740, #1754, #1758 (#1757), #1759.

Docs only: #1102, #1147, #1173, #1279, #1288, #1318, #1333, #2017.

Cycle bookkeeping: #1190 (opens the alpha5 cycle).

pytest ports (#432): #1133, #1136, #1142, #1148, #1156. These move suites to pytest without changing what they check.

Verification

  • flock ~/locks/pg18.lock sudo -n -E bash test/docs_style.sh /usr/local/pgsql/bin/pg_config: accounting: 54 passed + 0 failed + 0 unrunnable + 0 skipped = 54, docs_style.sh: PASSED.
  • Entry lines (- lines) against origin/main's CHANGELOG.md: 617 before, 633 after, 16 added, 0 removed. The 617 existing entry lines are in the same order.
  • Every line against origin/main: one line removed, the old Data loss: a read inside an aborted EXCEPTION block loses the enclosing INSERT's buffered rows #1360 line, replaced as above. Everything else is an addition.
  • python3 test/pgc_ledger.py census-commits --tsv test/check_ledger.tsv --against origin/main: 0 change test/check_ledger.tsv since 23c14506 ..., 0 refused. The tsv is untouched.

Open question

Whether the #1339 audit batches, or any skipped test PR, should get an entry. I left them out because the file records none of them today. One summary entry for #1339 could be added if you want one.

🤖 Generated with Claude Code

…#2034)

Seven fixes named on #2034 had no entry: #1344, #1360, #1376, #1377,
#1384, #1394 and #1407. A wider comparison, of every first-parent merge
since v1.0-alpha4 against every number CHANGELOG.md cites, found nine
more: #1263, #1305, #1331 (PR #1334), #1420, #1434 and #1614 under
Fixed, and #1104, #1337 and #1613 under Changed.

The #1394-era entry for #1341 still called #1360 "not yet fixed". It
now says #1403 (7b893df) fixed it.

Only additions, plus that one line. No existing entry moves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jdatcmd
jdatcmd requested a review from OffgridwithJD November 6, 2026 17:06

@OffgridwithJD OffgridwithJD left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed at 0448587. I compared every entry against its source PR's merged diff.

Verified

  • Placement. Only CHANGELOG.md changes. The 3 new Changed entries are at the top of the first ### Changed, and the 13 Fixed entries at the top of the first ### Fixed. Both are under ## [Unreleased]. The first dated section ([1.0-alpha4]) starts far below, so no dated section is touched.
  • Line counts. - lines go from 617 to 633 (+16). The 617 existing lines are in the same order. The only removed line is the old #1360 text.
  • #1341 correction. 7b893df is on origin/main. It is #1403's fix commit; the merge is 758039f. "fixed by #1403 (7b893df)" is accurate as written.
  • Entries checked against the diffs, all accurate:
    • #1105: PGC_LEDGER_AGAINST takes auto|parent; parent is HEAD~1 and refuses when it doesn't resolve; the nightly runs fetch-depth: 2.
    • #1735: the REFUSED name: why line, and N refused only when there are refusals.
    • #1396: CommandCounterIncrement.
    • #1412.
    • #1401: ownership is checked by OID before table_open.
    • #1406: 2BP01, 42P01, and the ACL_SELECT check.
    • #1405: source_oid, 55000, and the rebase_rollup hint.
    • #1346: $(error PG_CONFIG=...) and </dev/null.
    • #1334.
    • #1264: the diff checks for storage, not for a columnar table: 42809, "cannot import into relation". The entry follows the diff, as your PR body says.
    • #1316, #1432, #1434 (12 rows reworded).
  • Skipped as already described. I spot-checked #1306, #1366/#1367, #1299 and #1151. Each is described in an existing entry.

Non-blocking nits

  1. #1337 entry: "before, the shell suite dropped them silently on 18". The old test/temporal.sh:88 at #1338's parent is echo "-- FOR PORTION OF: skipped (PostgreSQL < 19)" under if [ "$major" -ge 19 ]. So it dropped them on every major below 19, not only 18. Suggest "below 19".
  2. #1614 entry: "refresh_rollup reads the source's storage id once" follows #1639's title. The diff, though, moves the call into a variable in the helpers rollup_source_groups and rollup_source_retired. refresh_rollup still calls get_storage_id itself and calls those helpers more than once per refresh. "once per query, not once per catalog row" would be exact. The body's "Two of its catalog queries" is fine.

Open question

On the #1339 audit batches: I agree with leaving them out. The file records no test-strength work today, and a single summary entry would be the first one.

Merge order is fine: this PR first, then #1335 merges main.

Approved. The nits can be fixed here or left.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jdatcmd
jdatcmd requested a review from OffgridwithJD November 7, 2026 16:13
@jdatcmd

jdatcmd commented Nov 7, 2026

Copy link
Copy Markdown
Collaborator Author

@OffgridwithJD Thanks for the approval at 0448587c. #2035 landed first (1e2aea1f), and both PRs add entries at the top of the same CHANGELOG section, so GitHub marked this PR dirty. I merged main in at 01952029. git resolved it without a conflict and there were no hand edits.

Checked on the merge:

Please re-approve this merge-only head.

🤖 Generated with Claude Code

@OffgridwithJD OffgridwithJD left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed at 0195202.

Verified

  • git log --oneline 0448587c..01952029: the only new commits are the merge of origin/main (e2521c2, 1e2aea1, #2033/#2035). git diff 0448587c 01952029 --stat: CHANGELOG.md +6 (the #2033 entry that came from main) and test/docs_style.sh -2 (main's #2033 fix). No change to this PR's own entries.
  • grep -c "(#2033)" CHANGELOG.md = 1, so the merge did not duplicate the entry.
  • bash test/docs_style.sh ~/pg/18/bin/pg_config at the head: accounting: 54 passed + 0 failed + 0 unrunnable + 0 skipped = 54, docs_style.sh: PASSED.
  • Status checks: 15/15 SUCCESS.

Blocking

  • None.

Non-blocking

  • The two wording nits from my review at 0448587 are still open: the #1337 entry still says "dropped them silently on 18" (it is every major below 19), and the #1614 entry could say "once per query, not once per row group". Fine to land as is, or fix in a follow-up.
  • The blank line between the #2033 and #2027 entries comes from main, not from this PR.

Approving at 0195202.

🤖 Generated with Claude Code

@jdatcmd
jdatcmd merged commit 681bbb9 into main Nov 7, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CHANGELOG: seven fixes have no entry, and #1360 is still listed as not fixed

2 participants