storage_engine v2.4.0 improves real colcompress performance on TPC-H without benchmark-masking SQL rewrites, adds safer reread cache reuse for both storage engines, and closes the release with a fully green PostgreSQL 15–19 validation matrix.
Highlights
Planner-hook improvements for real TPC-H workloads
- Official TPC-H Q21 now retries planning with
enable_nestloop=offonly for the canonical colcompress shape, avoiding the bad nested-loop plan that dominated PG18. - Official TPC-H Q7 gets the same narrow nested-loop avoidance after extending relation-touch detection through
RTE_SUBQUERY. - Official TPC-H Q18 on PG18 keeps the narrow rewrite but now forces
max_parallel_workers_per_gather=0for that rewritten shape, avoiding repeated worker-side execution and spill-heavy regressions. - Decorrelated scalar-aggregate paths on PG16+ now widen the
enable_nestloop=offsteering for shapes such as Q20 and add a narrow replan for bad final nested loops in Q9-style post-join aggregates over colcompress scans.
Cache reuse and observability
rowcompressrepeated index probes now reuse backend-local metadata and safely cached decompressed batches across statements.engine.rowcompress_scan_stats()now reports reliable metadata-cache hits/misses, batch-cache hits/misses, and decompression counts even for plainIndex Scanpaths.colcompressreread cache entries now stay alive for the backend across repeated scans, with invalidation on destructive DDL and rewrite paths.- Added focused benchmark scripts for synthetic rereads, real
col.lineitemrereads, real TPCH Q14 rereads, androwcompressindex-cache probes.
Validation and build hygiene
- Removed the remaining warning-causing dead planner-hook code and aligned version guards so PG15 builds cleanly.
- Repaired the PG19 system test environment and reran the official multi-version target.
- Final validation matrix:
- PG15: 294/294 tests passed
- PG16: 293/293 tests passed
- PG17: 293/293 tests passed
- PG18: 293/293 tests passed
- PG19: 297/297 tests passed
Upgrade
This release publishes the official extension upgrade path from 2.3.0 to 2.4.0 via storage_engine--2.3.0--2.4.0.sql.