HeadlinesBriefing favicon HeadlinesBriefing.com

PostgreSQL 19: Novos recursos e grafos de propriedades

Hacker News •
×

PostgreSQL 19 está atualmente em versão beta, com disponibilidade geral esperada para setembro ou outubro de 2026. Este artigo serve como um guia prático das notas de lançamento oficiais, convertendo entradas selecionadas em exemplos executáveis para que os usuários possam ver como os novos comportamentos realmente funcionam. Os recursos são baseados nas notas de lançamento oficiais e no código-fonte do PostgreSQL sob a Licença do PostgreSQL. Antes de explorar os novos recursos, é importante observar que esta não é uma lista exaustiva; as notas de lançamento oficiais devem ser consultadas para obter informações completas. Todos os exemplos foram executados no PostgreSQL 19 beta 3 (lançado em 2026-08-13), e a saída reflete o que esse servidor realmente imprimiu.

As consultas de grafos de propriedades são o recurso em destaque desta versão. O PostgreSQL 19 implementa o SQL/PGQ, a parte de grafo de propriedades do SQL:2023. Os usuários podem declarar um grafo de propriedades sobre tabelas existentes e consultá-lo usando correspondência de padrões em vez de escrever junções manualmente. Duas tabelas comuns podem ser configuradas como vértices e arestas, permitindo a correspondência de padrões com GRAPH_TABLE onde as arestas direcionadas são correspondidas usando a sintaxe -[...]->. O benefício é a capacidade de realizar padrões de múltiplos saltos; encadear duas arestas recupera amigos-de-amigos sem a necessidade de auto-junção, e um () vazio significa "algum vértice cujo nome eu não me importo". Uma limitação importante é que caminhos de comprimento variável não são suportados; quantificadores como -[IS follows]->{1,3} são analisados, mas rejeitados, exigindo que cada salto seja especificado explicitamente. A consulta GRAPH_TABLE é reescrita como uma consulta relacional simples, o que significa que o planejador, as estatísticas e as escolhas de índice já conhecidas pelo usuário ainda se aplicam.

As atualizações e exclusões temporais introduzem a nova cláusula FOR PORTION OF nas instruções UPDATE e DELETE. Essa cláusula permite especificar um período de tempo válido para a operação, permitindo uma manipulação de dados mais precisa dentro de tabelas bitemporais. Esse recurso se integra com tabelas versionadas pelo sistema para garantir que as atualizações e exclusões afetem apenas as linhas dentro do intervalo de tempo especificado, melhorando a integridade dos dados para aplicações que exigem rastreamento histórico.

Esta versão também aprimora os recursos de JSON e consulta. Novos operadores e funções melhoram o manuseio de tipos de dados JSON, permitindo uma consulta e manipulação mais eficientes. Esses aprimoramentos reduzem a necessidade de subconsultas complexas ou processamento externo ao trabalhar com dados semiestruturados, proporcionando melhor desempenho e sintaxe mais simples para operações comuns de JSON.

Entidades-chave: Empresas: PostgreSQL | Pessoas: Peter Eisentraut, Ashutosh Bapat