Skip to content

docs: alpha5 release notes cover the seven time-series features - #1333

Merged
jdatcmd merged 2 commits into
mainfrom
docs/alpha5-notes-time-series
Oct 13, 2026
Merged

jdatcmd merged 2 commits into
mainfrom
docs/alpha5-notes-time-series

Conversation

@jdatcmd

@jdatcmd jdatcmd commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator

The alpha5 release notes before the tag. They were drafted on 2026-10-12, before the owner made the seven time-series features the gate for alpha5, and named encoding as the only theme. All seven are now merged (#1292 closed with #1330), so the notes describe them.

@OffgridwithJD, please check the facts against what you built, above all tiering, partitions and the daemon expire.

What changes in RELEASE_NOTES_1.0-alpha5.md

How the statements were checked

  • Sources: each statement comes from the feature's CHANGELOG entry or its reference section. I corrected four that my first draft overstated:
    • a float8 average in a rollup can differ in the last digits;
    • max(ts)/min(ts) read no data only for groups without deletes;
    • lock_wait bounds every lock tier_partition takes;
    • an existing table's extent appears at its next recompute, not after enough writes.
  • Style: docs_style 58/58.

Also done for the tag, not in this PR

  • Upgrade from v1.0-alpha4: extension_upgrade.sh v1.0-alpha4 passes on PG15–19 at main b55cb23. The upgraded catalog is byte-identical to a fresh alpha5 install (211 objects) on each major.

Still to do on tag day

The release date (TODO(release)), renaming the CHANGELOG's [Unreleased] section, and the tag.

🤖 Generated with Claude Code

The notes were drafted on 2026-10-12, before the owner made the seven
time-series features (#1290-#1296) the gate for alpha5, and named encoding as
the only theme. They now have a Time series section, two highlights, the new
setting and the changed default, three user-visible fixes (#1327, #1323, the
unlocked partition open), two known issues, and the catalogs and functions
the upgrade adds. Each statement is taken from the CHANGELOG entry or the
reference section of the feature it describes. docs_style 58/58.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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.

Review at 7c30706. I checked the release notes against the source rather than against the CHANGELOG.

Checked against the source, all correct

  • Settings: I diffed the Define*Variable calls between v1.0-alpha4 and main. Exactly five are new (autovacuum_expire, enable_post_codec_encoding_choice, index_min_blocks, rollup_pause, tier_fault_after), and none was removed.
    • rollup_pause and tier_fault_after are PGC_SUSET, so "only a superuser can set them" is right.
    • autovacuum_expire is PGC_SIGHUP, so "takes effect on reload" is right.
  • Catalogs: I diffed the CREATE TABLEs in the two install scripts. Exactly four are new: column_extent, retired_group, rollup and rollup_group.
  • Functions: I diffed the CREATE FUNCTIONs. The seven named in "What the upgrade changes", plus rollup_source_groups and rollup_source_retired as "two internal helpers". Nothing else.
  • What I built:
    • The tiering paragraph matches #1317: ACCESS EXCLUSIVE from the detach to commit, every lock bounded by lock_wait, and the foreign partition keeping its name, bounds, grants and comment.
    • The collation fix and the COMMIT PREPARED crash read right.
    • The known issue on the cap is accurate now that #1330 gates on a bound.

Three changes

  1. #1331 isn't in it yet. The highlight says "pg_partman and two new functions manage time partitions", but the "Time partitions" section and the upgrade list name only partition_create_ahead. Once #1331 merges, these need:

    • partition_drop_plan in that section;
    • partition_drop_plan and its helper partition_drop_candidates in "What the upgrade changes", which makes it two helpers for rollups and one for partitions.

    A sentence for the section, if it helps:

    pgcolumnar.partition_drop_plan(parent, cutoff) returns the statements that drop every partition older than the cutoff: a concurrent detach and a drop each, run with \gexec. It never takes an exclusive lock on the parent, and a drop refuses while its partition is still attached.

  2. The rollup known issue misses the refusal #1328's review added. A refresh also refuses (0A000) when rows were deleted from a row group that expire then retired before the refresh. The deleted rows are gone, so their buckets can't be recomputed. Suggested:

    A refresh also refuses when rows were deleted from a row group that expire retired before the refresh.

  3. #1310, one word stronger than the code. "When nothing can qualify, it answers from the column's extent" is true only when a complete extent shows it. A table whose extent isn't complete yet still reads every group's zone map. Suggested:

    When the column's extent shows that nothing can qualify, it answers in one index lookup instead of reading every row group's zone map.

docs_style I took from your run. I haven't rerun it.

partition_drop_plan (#1331) in the partitions section and the upgrade list;
the delete-then-expire rollup refusal (#1328) among the known issues; and
#1310's early exit only when the extent shows nothing can qualify.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jdatcmd

jdatcmd commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator Author

@OffgridwithJD, thank you for checking against the source. All three are in at 6a5a958:

  1. partition_drop_plan: in "Time partitions", using your sentence, and in the upgrade list. That list now ends "three internal helpers: two for rollups and one for partitions". I checked feat: pgcolumnar.partition_drop_plan returns the statements that retire old time partitions (#1297) #1331's upgrade script: it adds partition_drop_candidates and the two partition_drop_plan overloads, nothing else.
  2. The delete-then-expire refusal is in the rollup known issue, with your wording.
  3. expire reads a column's zone maps in one catalog scan, not one per row group #1310: "When the column's extent shows that nothing can qualify, it answers in one index lookup…"

docs_style 58/58 at this head.

This PR merges after #1331, so the notes never name a function main doesn't have. #1331's merge is waiting on CI.

@jdatcmd

jdatcmd commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator Author

@OffgridwithJD, the release notes at 6a5a958 carry your three corrections, and CI is 15/15. With #1331 merged and #1334 about to merge, this is the last content PR before the tag-day PR (release date and CHANGELOG rename). Please review when you can.

Also, for the tag: at the owner's request I rebuilt my container's PostgreSQL 15–19 from fresh release tarballs, with contrib, hll, tdigest and pg_partman on every major. A full matrix and pytest run on all five majors is under way at 614eb02. I'll post the results here before asking the owner for the tag.

@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.

Approved at 6a5a958.

  • All three corrections are in.
  • partition_drop_plan is in both the Time partitions section and the upgrade list.
  • Diffing the CREATE FUNCTIONs between v1.0-alpha4 and main gives exactly the eight named plus three helpers: rollup_source_groups, rollup_source_retired and partition_drop_candidates.
  • The settings and catalog claims are unchanged from my earlier check, and partition_drop_plan added neither.

@jdatcmd

jdatcmd commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator Author

Merging: approved by @OffgridwithJD at 6a5a958, and CI is green on that head.

@jdatcmd
jdatcmd merged commit 162ee0d into main Oct 13, 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.

2 participants