O que é o PostgreSQL e por que o 19 importa

O PostgreSQL, carinhosamente chamado de Postgres, e o banco de dados relacional open source mais avançado do mundo. Usado por empresas como Apple, Instagram, Spotify e praticamente toda startup moderna, ele combina conformidade com os padrões SQL, extensibilidade e confiabilidade em um pacote que continua evoluindo rapidamente.

Com o PostgreSQL 18 lançado recentemente, a comunidade já colocou os olhos no que vem a seguir. O Snowflake Engineering Blog publicou uma análise detalhada dos recursos esperados para o Postgres 19, que ainda esta em desenvolvimento ativo com previsão de lançamento no segundo semestre de 2026.

Para desenvolvedores que usam Postgres no dia a dia, entender o que esta por vir ajuda a planejar migrações, aprovechar betas e influenciar o processo de desenvolvimento contribuindo com feedback.

Como o desenvolvimento do PostgreSQL funciona

O Postgres segue um ciclo de lançamento anual. Cada versão passa por um CommitFest, onde patches são discutidos e aceitos, seguido de um período de beta testing com a comunidade e finalmente o lançamento estável.

O que faz o Postgres diferente e que o desenvolvimento e conduzido por voluntários e empresas como Amazon, Google, Microsoft, Crunchy Data e EDB, que contribuem com engenheiros em tempo integral. Isso garante um ritmo constante de inovação sem depender de um único vendor.

Vários dos recursos previstos para o Postgres 19 já tem patches submetidos e em revisão, o que aumenta a probabilidade de chegar na versão final.

Principais recursos esperados no Postgres 19

Com base na análise do Snowflake e nas discussões das listas de desenvolvimento, os recursos mais relevantes incluem:

  • Melhorias no query planner: algoritmos mais precisos para estimar cardinalidade em joins complexos, reduzindo o número de vezes que o Postgres escolhe planos de execução sub-ótimos
  • Suporte aprimorado ao SQL 2023: novas funções de janela, melhorias no MERGE e suporte a novos tipos de dados do padrão ISO
  • Paralelismo em mais operações: expansão do uso de workers paralelos para operações que ainda rodam de forma sequencial
  • Logical replication aprimorada: melhorias na replicação lógica que facilitam migrações de zero-downtime e setups de alta disponibilidade
  • Gerenciamento de particionamento: novos comandos e otimizações para tabelas particionadas com muitas partições

Além desses, ha discussões em andamento sobre melhorias no VACUUM, no autovacuum e na forma como o Postgres gerência memoria em sistemas com muita RAM.

Mudanças no query planner

Uma das áreas mais esperadas e a melhoria no planner, o componente responsável por decidir como executar cada query. Hoje, em queries com múltiplos joins ou em tabelas sem estatísticas atualizadas, o Postgres pode escolher planos ruins que causam performance degradada.

O Postgres 19 deve incluir um novo algoritmo de estimativa de cardinalidade que usa informações de histogramas de forma mais eficaz, além de melhorias no join ordering para queries com mais de 8 tabelas.

Na prática, isso significa que muitas queries que hoje precisam de hints manuais ou índices adicionais para performar bem devem funcionar melhor por padrão, reduzindo a necessidade de tuning fino.

Novidades em SQL

O comité ISO de SQL lançou o SQL 2023 com vários recursos novos, e o Postgres 19 deve implementar parte deles:

  • JSON_TABLE: função para transformar JSON em linhas e colunas de forma mais expressiva que o operador -> atual
  • ANY_VALUE: função de agregação que retorna qualquer valor do grupo, útil em GROUP BY sem precisar de MAX ou MIN arbitrários
  • GREATEST e LEAST em agregação: melhorias na forma como essas funções se comportam em contextos de agregação
  • PERIOD predicates: suporte a predicados temporais do padrão SQL para trabalhar com dados históricos

Essas adições tornam o Postgres mais aderente ao padrão SQL, facilitando a portabilidade de queries entre bancos de dados.

Melhorias em particionamento

Tabelas particionadas são um recurso poderoso do Postgres para lidar com datasets grandes, mas o gerenciamento atual exige comandos verbosos. O Postgres 19 deve simplificar a criação e o gerenciamento de partições com nova sintaxe e melhorar a performance de queries que envolvem muitas partições.

Uma das mudanças esperadas e o suporte a partições DEFAULT mais flexíveis e melhorias no pruning de partições durante a execução, o que reduz o número de partições que o planner precisa considerar.

Comparação com versões anteriores

Cada versão do Postgres traz melhorias incrementais, mas algumas versões se destacam por mudanças de maior impacto:

  • Postgres 14: pipeline mode para libpq, melhorias em range types
  • Postgres 15: MERGE, compressão ZSTD para WAL e tabelas
  • Postgres 16: paralelismo em FULL JOINS, logical replication de standby
  • Postgres 17: MERGE mais completo, vacuum incremental, melhorias no planner
  • Postgres 18: autenticação OAuth, melhorias em logical replication
  • Postgres 19 (previsto): planner aprimorado, SQL 2023, particionamento melhorado

Pontos positivos e limitações

Os recursos esperados são positivos, mas e importante ter expectativas realistas:

  • Positivo: melhorias no planner vao beneficiar a maioria das aplicações sem nenhuma mudança de código
  • Positivo: SQL 2023 aumenta portabilidade e expressividade das queries
  • Limitação: recursos ainda em desenvolvimento podem não chegar na versão final se patches não forem aceitos
  • Limitação: migrações de versão sempre exigem testes extensivos, especialmente em schemas complexos

Como acompanhar o desenvolvimento

Se você quer acompanhar o Postgres 19 de perto:

  • Acompanhe as listas de email do PostgreSQL em PostgreSQL.org/list/ para ver patches em discussão
  • Siga o PostgreSQL commitfest em commitfest.PostgreSQL.org para ver o status de cada feature
  • Teste betas quando disponíveis: a comunidade valoriza feedback de casos de uso reais
  • Use o pg_upgrade para testar a migração da sua aplicação antes do lançamento final

Vale atualizar quando sair?

Para a grande maioria dos usuários, sim. O PostgreSQL tem um histórico excelente de retrocompatibilidade, e as melhorias de performance no planner beneficiam aplicações existentes sem nenhuma mudança de código.

A recomendação prática e testar em staging com sua carga real de queries assim que o beta estiver disponível, identificar qualquer mudança de comportamento e planejar a atualização com antecedência para aproveitar os ganhos de desempenho no momento do lançamento estável.