---
title: "Postgres 19: How Our Advice Has Changed Since..."
url: https://daily.dev/posts/postgres-19-how-our-advice-has-changed-since--viia8jzfg
source_url: https://www.crunchydata.com/blog/postgres-19-how-our-advice-has-changed-since-we-wrote-it
type: article
source: "Crunchy Data"
published: 2026-08-18T19:11:09.036Z
updated: 2026-08-18T19:19:46.777Z
tags: ["database", "postgresql", "data-engineering"]
reading_time: 17
upvotes: 38
comments: 3
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Postgres 19: How Our Advice Has Changed Since...

**[Crunchy Data](https://daily.dev/sources/crunchydata)** · 17 min read · 38 upvotes · 3 comments

## Summary

A deep retrospective revisits years of Crunchy Data's Postgres advice on COPY, TOAST, BRIN indexes, covering indexes, and partitioning, mapping which Postgres versions (14 through the upcoming 19) changed the underlying mechanics while the core recommendations largely held. Highlights for Postgres 19 (currently in beta) include SIMD-accelerated COPY parsing, ON_ERROR SET_NULL, LZ4 becoming the default TOAST compression algorithm, native REPACK CONCURRENTLY, native MERGE/SPLIT PARTITION syntax, COPY TO working directly on partitioned parents, autoscaling async I/O workers, parallel autovacuum workers, and JIT being turned off by default after being on since version 12. The piece closes with a checklist of advice that remains unchanged across all these releases.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.crunchydata.com/blog/postgres-19-how-our-advice-has-changed-since-we-wrote-it>

## Questions this post answers

### What is the default TOAST compression algorithm in Postgres 19?

LZ4 becomes the default TOAST compression method in Postgres 19, replacing pglz, via the default_toast_compression setting. LZ4 compresses and decompresses much faster than pglz with a similar compression ratio and still fails fast on incompressible data. After upgrading from an older version, existing toast values keep their original pglz compression until rewritten; only new writes use LZ4.

_Track how default_toast_compression and other Postgres 19 defaults affect your upgrade plan on daily.dev._

### Is JIT compilation on or off by default in Postgres 19?

JIT is off by default in Postgres 19, reversing the setting that had been on since Postgres 12. The change was made because the old cost model for deciding when to JIT-compile was unreliable. Large analytical or parallel scans that previously compiled at runtime will no longer do so unless jit is explicitly re-enabled, so plans should be rechecked after upgrading.

_Developers upgrading Postgres majors can watch for defaults flips like this one on daily.dev._

### How do you merge or split table partitions natively in Postgres 19?

Postgres 19 adds native ALTER TABLE ... MERGE PARTITIONS and SPLIT PARTITION syntax to combine or divide partitions directly in SQL, without manually creating tables and moving data. Both operations take an ACCESS EXCLUSIVE lock on the parent for the full duration of the physical tuple copy and do not yet support CONCURRENTLY, so they should be scheduled during quieter maintenance windows rather than run on high-throughput tables.

_Engineers planning partition maintenance can follow new Postgres partitioning features on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@agustinbarrientos** · 0 upvotes

> ON_ERROR finally takes some drama out of dirty imports

**@pdfopsdev** · 0 upvotes

> the JIT flip is the interesting part, defaulting off after years of on because the cost model can't be trusted is postgres basically admitting the heuristic never worked well. worth rechecking explain plans on analytical workloads before you upgrade, don't assume 14->19 parity.

**@rizzdev** · 0 upvotes

> REPACK CONCURRENTLY leaves pre-swap snapshots looking at an empty table

---

Tags: [#database](https://daily.dev/tags/database), [#postgresql](https://daily.dev/tags/postgresql), [#data-engineering](https://daily.dev/tags/data-engineering)

[View this post on daily.dev](https://daily.dev/posts/postgres-19-how-our-advice-has-changed-since--viia8jzfg)
