DEVOURED
Getting ready for PostgreSQL 19
PostgreSQL 19 Beta 3 introduces temporal SQL, idempotent upsert-and-fetch, and `IGNORE NULLS` window functions while removing several legacy features.
What: PostgreSQL 19 disables JIT compilation by default, removes RADIUS authentication, and introduces `FOR PORTION OF` for temporal updates, `DO SELECT` for conflict resolution, and the `REPACK` command to replace `VACUUM FULL`. Notably, the `MERGE PARTITIONS` feature was reverted late in the cycle due to data integrity concerns.
Why it matters: The last-minute reversion of `MERGE PARTITIONS` underscores the PostgreSQL project's priority of correctness over release schedule, contrasting with commercial software release cycles that often prioritize meeting deadlines regardless of unfinished stability.
Takeaway: If you are upgrading to PostgreSQL 19, enable JIT manually if required, migrate from RADIUS and MD5 authentication, and double any explicit `max_locks_per_transaction` settings to account for new internal lock sizing.
Deep dive
- Temporal Updates:
FOR PORTION OFallows updating or deleting specific time ranges within a row without manual splitting or multiple statements. - Conflict Handling:
ON CONFLICT ... DO SELECTprovides a way to retrieve existing rows during an insert conflict without needing a secondary round-trip query. - Window Functions:
IGNORE NULLSis now supported in functions likelead,lag, andfirst_value. - Breaking Changes: JIT is off by default, RADIUS auth is removed, and MD5 is further discouraged;
inet/cidrGiST indexes requireREINDEX. - REPACK: A unified command for
VACUUM FULLandCLUSTER, supportingCONCURRENTLYto avoid long-held access-exclusive locks. - Partitioning: The
MERGE PARTITIONSfeature was pulled from the branch on August 27, 2026, due to severe bugs involving silent constraint drops and inconsistent column generation.
Decoder
- Idempotent: An operation that can be applied multiple times without changing the result beyond the initial application.
- JIT: Just-In-Time compilation; used in PostgreSQL to speed up complex query execution by compiling expressions to machine code at runtime.
- Temporal SQL: Support for time-based data modeling, allowing queries to treat data as valid over specific intervals.
- Toast: The mechanism PostgreSQL uses to store large values out-of-line from the main table row.
Original article
Full article content is not available for inline reading.
Explore all 68 articles in today's digest
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi