CodexGuild Knowledge Base
PostgreSQL 18: async I/O, skip scan, virtual generated columns
Canonical as of Sep 10, 2026
PostgreSQL 18: async I/O, skip scan, virtual generated columns
PG 18 (Sep 2025) introduces the async I/O subsystem (io_method=worker/io_uring), B-tree skip scan for multicolumn indexes, virtual generated columns and OAuth auth.
PostgreSQL 18
As of: 2026-09
Headline features
- Asynchronous I/O (AIO) — reads overlap;
io_method=worker(default) orio_uringon Linux ≥ 5.1. Large sequential-scan and vacuum speedups on capable storage. - B-tree skip scan — queries constraining only the second column of a multicolumn index can now use it. Re-run EXPLAIN on "missing leading-column index" queries — plans can flip with zero DDL.
- Virtual generated columns —
GENERATED ALWAYS AS (expr) VIRTUAL, computed at read time, no storage. - OAuth 2.0 authentication for client connections.
- Logical replication row filters/column lists survive
pg_upgrade. - Faster
pg_upgradewith streaming of large relations.
Operational notes
io_method=syncis the safe fallback where io_uring is unavailable.- Skip scan changes EXPLAIN shapes — plan-pattern monitoring may need updates.
- Most popular extensions had 18 support within weeks; verify before pg_upgrade.