TimescaleDB is a database for making SQL more scalable for
time-series data. It is engineered up from PostgreSQL, providing
automatic partitioning across time and space (partitioning key), as
well as full SQL support.
TimescaleDB is packaged as a PostgreSQL extension.
This build includes only Apache2 modules;
TSL (timescale licenced modules are not built).
Provides
Requires
License
Apache-2.0
Changelog
* Thu Jan 29 2026 Marcus Rueckert <mrueckert@suse.de>
- Update to version 2.25.0
This release contains performance improvements and bug fixes
since the 2.24.0 release. We recommend that you upgrade at the
next available opportunity.
Highlighted features in TimescaleDB v2.25.0
This release features multiple improvements for continuous
aggregates on the columnstore:
- Faster refreshes: You can now utilize direct compress during
materialized view refreshes, resulting in higher throughput and
reduced I/O usage.
- Efficiency: The enablement of delete optimizations
significantly lowers system resource requirements.
- Smaller transactions: Adjusted defaults for buckets_per_batch
to 10 reduces transaction sizes, requiring less WAL holding
time.
- Faster queries: Smarter defaults for segmentby and orderby
yield improved query performance and better compression ratio
on the columnstore.
Sunsetting announcements
- This release removes the WAL-based invalidation of continuous
aggregates. This feature was introduced in 2.22.0 as tech
preview to use logical decoding for building the invalidation
logs. The feature was designed for high ingest workloads,
reducing the write amplification. With the upcoming stream of
improvements to continuous aggregates, this feature was
deprioritized and removed.
- The old continuous aggregate format, deprecated in version
2.10.0, has been fully removed from TimescaleDB in this
release. Users still on the old format should read the
migration documentation to migrate to the new format. Users of
Tiger Cloud have already been automatically migrated.
- Features
- #8777 Enable direct compress on continuous aggregate refresh
using new GUC
timescaledb.enable_direct_compress_on_cagg_refresh
- #9031 Change default buckets_per_batch on continuous
aggregate refresh policy to 10
- #9032 Add in-memory recompression for unordered chunks
- #9017 Move bgw_job table into schema _timescaledb_catalog
- #9033 Add rebuild_columnstore procedure
- #9038 Change default configuration for compressed continuous
aggregates
- #9042 Enable batch sorted merge on unordered compressed
chunks
- #9046 Allow non timescaledb namespace SET option for
continuous aggregates
- #9059 Allow configuring work_mem for background worker jobs
- #9074 Add function to estimate uncompressed size of
compressed chunk
- #9085 Don't register timescaledb-tune specific GUCs
- #9088 Add ColumnarIndexScan custom node
- #9090 Support direct batch delete on hypertables with
continuous aggregates
- #9094 Enable the columnar pipeline for grouping without
aggregation to speed up the queries of the form select column
from table group by column.
- #9103 Support FIRST and LAST in ColumnarIndexScan
- #9108 Support multiple aggregates in ColumnarIndexScan
- #9111 Allow recompression with orderby/index changes
- #9113 Use enable_columnarscan to control columnarscan
- #9127 Remove primary dimension constraints from fully covered
chunks
- #8710 Add SQL function to fetch continuous aggregate grouping
columns
- #9133 Allow pushing down sort into columnar unordered chunks
when it is possible
- #8229 Removed time_bucket_ng function
- #8859 Remove support for partial continuous aggregate format
- #9022 Remove WAL based invalidation
- #9016 Remove _timescaledb_debug schema
- #9030 Add new chunks to hypertable publication
- Bug fixes
- #8706 Fix planning performance regression on Postgres 16 and
later on some join queries.
- #8986 Add pathkey replacement for ColumnarScanPath
- #8989 Ensure no XID is assigned during chunk query
- #8990 Fix EquivalenceClass index update for RelOptInfo
- #9007 Add validation for co