PostgreSQL 19: Upcoming Features and Community Expectations
PostgreSQL 19: Upcoming Features and Community Expectations
PostgreSQL 19 aims to refine developer ergonomics and expand the database's capabilities into graph processing and more efficient data movement. The upcoming release focuses on reducing boilerplate in SQL queries and improving the operational overhead of backups and replication.
Key Feature Enhancements
Simplified Query Syntax with GROUP BY ALL
PostgreSQL 19 introduces GROUP BY ALL, a feature inspired by DuckDB that allows users to group by all non-aggregated columns without explicitly listing them. This reduces query verbosity and minimizes errors when modifying column selections in complex reports.
Graph Database Integration
The release introduces GRAPH_TABLE syntax, enabling graph-like queries within the relational model. This allows users to match patterns across tables using a syntax similar to Neo4j, though some community members have expressed concerns regarding the verbosity and performance of this specific implementation.
Logical Replication and COPY Improvements
Operational workflows are improved through enhancements to the COPY command and logical replication. These changes target the reduction of overhead during data migration and backup processes, addressing a common pain point for users managing large-scale deployments.
Community Technical Critique and Missing Features
While the planned features are welcomed, experienced PostgreSQL users have identified several critical gaps in the current roadmap:
Storage Engine Limitations
There is a strong demand for native columnar storage to handle increasingly large datasets. Users have noted that while extensions like Citus exist, native support would reduce architectural complexity and dependency risks.
"As the datasets become bigger and bigger, the limitations of PG's storage are becoming more and more significant. I know there are various extensions... but then you depend on that extension being supported in the future."
Additionally, users are requesting native block compression to replace the current row-level compression, which is often insufficient for high-volume data.
Temporal Data and Standard Compliance
Some developers are highlighting the absence of native application-time temporal data support based on the SQL:2011 standard, which would allow for more robust historical data tracking.
Operational and Architectural Requests
Several technical requirements remain unaddressed in the current trajectory of the project:
- In-place Upgrades: A request for native in-place upgrades between successive major versions to eliminate the complexity of
pg_upgradein containerized (Docker) environments. - Connection Overhead: Concerns persist regarding the high memory footprint per concurrent connection, suggesting a need for more lightweight connection handling.
- Synchronous Materialized Views: A desire for "indexed views" (similar to SQL Server) that update synchronously to ensure correctness in complex data scenarios.
- Pluggable Storage Engines: Interest in a MariaDB-style architecture that supports multiple storage engines (e.g., RocksDB) to optimize for OLTP, OLAP, or append-only workloads.
Performance Concerns
Despite the feature additions, some users remain cautious about the PostgreSQL planner's behavior. Specifically, there are reports that Row-Level Security (RLS) can cause the planner to default to per-row matching, which significantly degrades performance in production environments.