2026-04-30 PostgreSQL News Digest
Commits
There were 16 commits today, with 8 of them concentrated on stabilizing the online checksum feature.
⭐ Large-scale stabilization of the online checksum feature (Daniel Gustafsson)
Discussion: 9197F930@yesql.se
Eight commits landed in one day for the in-development feature that enables or disables data checksums online without restarting the cluster. The pg_enable_data_checksums() and pg_disable_data_checksums() functions make it possible to switch checksums online, whereas checksums were traditionally configured only with initdb --data-checksums.
| Commit | Description |
|---|---|
| 75152c5d | Fixed an incorrectly omitted show_hook for the data_checksum GUC. |
| 1df361e3 | Improved detection logic for partially dropped databases in datachecksumsworker. |
| ⭐ bf25e557 | Cleaned up complex launcher restart logic for concurrent pg_enable/disable_data_checksums() calls in the same cluster and supported dynamic application of new cost settings. |
| 381d19da | Fixed spelling and punctuation in code comments after post-commit review. |
| 25b922ec | Removed unnecessary checksum state transitions from XLOG_CHECKPOINT records and added a safeguard to close the interrupt window between ProcSignalInit and InitLocalDataChecksumState. |
| 8fb8ded8 | Added a missing state-machine transition path so the system does not remain in the "inprogress" state after abnormal launcher termination. |
| a0d8f4c1 | Stabilized tests by fixing test scope and changing the PITR test shutdown mode. |
| ⭐ b120358c | Fixed a bug that allowed pg_enable/disable_data_checksums() to be called on hot standby. Changing checksum state only on a standby could make cluster states diverge and cause replication replay failure. |
⭐ REPACK CONCURRENTLY: Fix handling of toasted tuples
Álvaro Herrera — Discussion: CAHg+QDe@mail.gmail.com
During REPACK CONCURRENTLY, tuples inserted or updated during the operation are written to disk and later restored, but some toasted tuple forms were not handled correctly. Test coverage was also expanded.
⭐ Fix attnum remapping in generateClonedExtStatsStmt()
Andrew Dunstan
When copying extended statistics for CREATE TABLE ... LIKE ... INCLUDING STATISTICS, get_attname() was called with the parent table's attnum and the child table's OID. If the parent had dropped columns, the child's attnums could be offset, causing silent statistics corruption or errors.
Avoid SIGSEGV from NULL tablespace in pg_get_database_ddl()
Andrew Dunstan
When ALTER DATABASE ... SET TABLESPACE raced with DROP TABLESPACE, scanning the system catalogs could hit a NULL reference and crash. The code now reports an error when it detects the conflict.
Fix double close of sequence_rel in copy_sequences()
Amit Kapila
copy_sequences() declared sequence_rel at batch scope, so when a row was skipped it could call table_close() on the stale pointer from the previous row. Moving the variable inside the loop fixes the issue.
⭐ Fix EINTR check bug in pg_flush_data() (backpatched to PG16+)
Michael Paquier
After sync_file_range() failed, the code checked for EINTR using the return value (-1), so the check was always false and retries did not work. It now checks errno correctly and has been backpatched to PostgreSQL 16 and later.
Fix incorrect *GetDatum() macros
Michael Paquier
This partially reverts spots where *GetDatum() macros introduced by commit 6dcfac9696cb were incorrectly selected for C types rather than SQL function output types.
Fix error message for pg_stat_reset_shared()
Michael Paquier
Although "lock" had been added as a valid argument, the error message for invalid values did not include it. This commit corrects the message.
Fix a test that was passing when it should fail
Álvaro Herrera — Per complaint from Tom Lane
Commit 832e220d99af had insufficient expected-output checking, so a test that should have failed was passing. This fixes the issue after Tom Lane pointed it out.
HN News
⭐ Does Postgres Scale?
Score: 179 / Comments: 86
This DBOS benchmark article examines workflow execution engine scalability on PostgreSQL and directly challenges the common claim that "PostgreSQL does not scale." The 86 comments show active discussion, and the article demonstrates that PostgreSQL can handle large-scale processing with the right architecture.
PostgreSQL 19 features I'm excited about
Score: 37 / Comments: 1
This Bytebase preview article covers notable PostgreSQL 19 features from developer and DBA perspectives. It attracted interest ahead of the release by explaining features still under development.
PostgreSQL is not slow. Your queries are
Score: 9 / Comments: 0
This practical article addresses common misconceptions about PostgreSQL performance and explains the importance of query design and indexing strategy.
PostgreSQL and the OOM Killer: Why we use Strict Memory Overcommit
Score: 3 / Comments: 0
Ubicloud explains why it uses vm.overcommit_memory=2 (strict mode) in production and details OOM Killer behavior with PostgreSQL workloads.
Building a CDC pipeline Part 1: PostgreSQL WAL internals
Score: 2 / Comments: 0
This first article in a Change Data Capture (CDC) pipeline series explains PostgreSQL WAL (Write-Ahead Log) fundamentals and is useful as an introduction to replication and audit-log implementation.
Summary
April 30, 2026 was dominated by online checksum feature stabilization, with eight commits landing in a single day. Improvements included preventing misuse on standby servers, better handling of concurrent requests, and corrected state transitions at checkpoint time, all moving the feature closer to production readiness. The day also included several operationally important fixes such as the pg_flush_data() EINTR bug backpatched to PG16+ and a CREATE TABLE LIKE INCLUDING STATISTICS bug that could silently corrupt statistics; on HN, a serious benchmark article about whether PostgreSQL scales drew substantial attention.
This digest was generated by Claude AI based on Hacker News, GitHub, and the PostgreSQL mailing list.