Os principais recursos do PostgreSQL 18 incluem subsistema de I/O assíncrono (AIO) para scans e vacuums mais rápidos, colunas geradas virtuais (padrão agora), suporte a OAuth, OLD/NEW em RETURNING, e restrições temporais sem sobreposições.
Subsistema de I/O Assíncrono (AIO)
O PostgreSQL 18 introduz um subsistema de I/O assíncrono que melhora o desempenho de sequential scans, bitmap heap scans, vacuums e outras operações em até 3x para leituras. Controlado por io_method, com io_combine_limit e io_max_combine_limit para tuning, e view pg_aios para monitoramento de handles de arquivos. Isso é ideal para workloads de alto volume em servidores com SSDs NVMe.
Colunas Geradas Virtuais
Colunas geradas agora são virtuais por padrão (computadas na leitura, não escrita), com opção STORED para o comportamento antigo.
Suporte a replicação lógica de valores gerados, útil para subscribers não-PostgreSQL via publish_generated_columns.
Facilita computações derivadas sem overhead de storage.
Autenticação OAuth e Segurança
Login moderno com Google, Microsoft ou similares direto no banco.
Suporte nativo a OAuth em pg_hba.conf, com oauth_validator_libraries e –with-libcurl no build.
Melhoria em SSL com ssl_tls13_ciphers múltiplos e ssl_groups incluindo X25519.
Chaves de cancelamento de 256 bits e depreciação de MD5 para scram-sha-256.
Melhorias em Monitoramento
pg_stat_io agora reporta bytes lidos/escritos/extendidos, incluindo WAL I/O. pg_stat_all_tables ganha total_vacuum_time, total_analyze_time etc.; pg_stat_get_backend_io() para I/O por backend. pg_upgrade preserva estatísticas do otimizador, e funções como pg_restore_relation_stats() para reset seletivo.postgresql+1
Restrições Temporais e Constraints
PRIMARY KEY/UNIQUE/FK sem sobreposições via WITHOUT OVERLAPS ou PERIOD na última coluna. NOT NULL agora em pg_constraint com nomes, herança controlável e NOT VALID. CHECK/FK como NOT ENFORCED para cenários flexíveis.
Otimização de Queries e Índices
Skip scans em B-tree multi-coluna para casos sem restrições iniciais. GIN indexes criados em paralelo; joins partitionwise expandidos. Otimizações em GROUP BY, HAVING pushdown, e hash joins com menos memória.
Características Adicionais
- RETURNING com OLD/NEW explícito em INSERT/UPDATE/DELETE/MERGE.
- COPY com REJECT_LIMIT para ignorar erros em massa.
- initdb com checksums por padrão (–no-data-checksums para desabilitar).
- VACUUM/ANALYZE com ONLY para partitioned tables.
- Funções array_sort(), array_reverse(), uuidv7(), crc32c().
- psql com pipeline mode (\startpipeline etc.) e mais stats em \conninfo.




