Skip to content

chore(deps): update dependency timescale/timescaledb to v2.27.0#102

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/timescale-timescaledb-2.x
Open

chore(deps): update dependency timescale/timescaledb to v2.27.0#102
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/timescale-timescaledb-2.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 15, 2025

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
timescale/timescaledb minor 2.19.32.27.0

Release Notes

timescale/timescaledb (timescale/timescaledb)

v2.27.0: (2026-05-12)

Compare Source

This release contains performance improvements and bug fixes since the 2.26.4 release. We recommend that you upgrade at the next available opportunity.

⚠️ Due to a problem during release process the Window's releases artifacts attached to this release are not valid.

Download valid Windows binaries from:

Highlighted features in TimescaleDB v2.27.0

  • The Hypercore engine now supports a vectorized implementation of filters by evaluating them inline through the standard Postgres function path. This expands the set of queries (including continuous aggregate refreshes) that can take the faster path through the columnstore, yielding speedups ranging from 30% up to 2x in benchmarks.
  • UPDATE and DELETE statements with equality predicates can now use bloom filters to skip decompressing batches whose compressed rows can't match. When multiple bloom filters apply, they are evaluated in decreasing order of column count (most selective first), and EXPLAIN now reports filtering activity via the new "Compressed batches filtered" and "Batches filtered after decompression counters". The query performance increases in some case up to 160 times.
  • UPSERT queries can now leverage bloom filters (including composite ones) to skip decompressing batches when the arbiter values are guaranteed not to be present, with the most-selective filter chosen automatically when multiple apply. EXPLAIN output adds new statistics — batches checked by bloom, batches pruned by bloom, batches without bloom, and bloom false positives — for visibility into pruning effectiveness.

Upcoming PostgreSQL 15 EOL announcement
As a reminder, the upcoming TimescaleDB release in June 2026 will officially be the last version with support for PostgreSQL 15. This deprecation was initially announced in the v2.23.0 changelog on October 29, 2025, to provide users ample time to prepare. To ensure uninterrupted access to new features, bugfixes and performance enhancements, all instances must be upgraded to PostgreSQL 16 or greater.

Backward-Incompatible Changes

  • #​9579 The bloom filter sparse indexes on compressed int2 columns could lead to SELECT queries not returning the rows that actually match the WHERE condition. The upgrade is blocked for the affected databases, and the incorrect indexes have to be dropped manually before the upgrade.
  • This release introduces a new naming convention for composite bloom filter metadata. While this change will not disrupt query processing, v2.27 cannot automatically utilize composite bloom filters generated in v2.26. To convert your existing v2.26 composite bloom filters, the legacy metadata columns must be renamed. This is a lightweight, catalog-only operation requiring zero data recompression, which can be done with this migration script.

Features

  • #​8868 Use PG_MODULE_MAGIC_EXT for PG18
  • #​8967 Rewriting queries with continuous aggregates exactly matching query aggregation
  • #​9192 Push down scalar array operations into the columnar metadata scan by transforming them into an OR/AND clause.
  • #​9355 Defer segmentby default for direct compress
  • #​9374 Use bloom filters to eliminate decompression of unrelated compressed batches during UPSERTs.
  • #​9396 Analyze and get segmentby during direct compress
  • #​9398 Fix chunk exclusion for IN/ANY on open (time) dimensions
  • #​9399 Use bloom filters to reduce decompression during UPDATE/DELETE commands.
  • #​9403 Set default segmentby during direct compress flush
  • #​9437 Allow running compression as part of refresh policy for compressed continuous aggregates
  • #​9443 Enable vectorized aggregation in some cases when the WHERE clause contains filters not handled through the "Vectorized Filters" facility. This includes e.g. filters on time_bucket().
  • #​9458 Remove _timescaledb_functions.repair_relation_acls
  • #​9475 Calculate hashes for bloom filter predicates at planning time.
  • #​9504 Allow ALTER TABLE RESET on materialization hypertables
  • #​9521 Add support for reporting index creation progress
  • #​9559 Notice on compression settings change
  • #​9569 For nullable orderby columns do segmentwise decompress-compress instead of segmentwise recompress.
  • #​9583 Drop existing sparse indexes when dropping columns
  • #​9648 Support ENABLE/DISABLE TRIGGER on hypertables
  • #​9702 Allow Batch Sorted Merge for unordered chunks with no segmentby or when all segmentby columns are pinned to a Const

Bugfixes

  • #​9363 Change compression job status when chunks could be compressed
  • #​9413 Fix incorrect decompress markers on full batch delete
  • #​9414 Fix NULL compression handling in estimate_uncompressed_size
  • #​9417 Fix segfault in bloom1_contains
  • #​9479 Disallow sub-day offset for time-bucket on Date
  • #​9482 Forbid Batch Sort Merge on nullable orderby columns
  • #​9490 Disallow negative interval as chunk_interval
  • #​9500 Fix off-by-one error when building object name
  • #​9519 Remove self-referential FOREIGN KEY constraints from catalog
  • #​9561 Simplify job history retention by replacing binary search and temp table
  • #​9590 Fix policy skipping uncompressed chunks
  • #​9596 Remove unused process_hypertable_invalidations policy code
  • #​9604 Remove dead post_parse_analyze_hook capture in loader
  • #​9610 Fix use-after-free crash in cache_destroy during transaction abort
  • #​9632 Preserve chunk settings during recompress
  • #​9640 Fix NULL datumCopy crash in segmentby analysis
  • #​9680 Fix segfault in direct compress insert on hypertable with dropped column
  • #​9692 Fix internal "invalid perminfoindex 0 in RTE" error on MERGE NOT MATCHED INSERT into a hypertable
  • #​9705 Avoid double TOAST delete when DELETE-after-compression is enabled
  • #​9705 Only freeze compressed rows when truncating uncompressed chunk
  • #​9706 Use bigint in estimate_uncompressed_size calculations
  • #​9709 Reject mismatched element type in bool/uuid decompression
  • #​9710 Return bigint from compressed_data_column_size
  • #​9711 Fix registration row leak when continuous aggregate refresh fails
  • #​9697 Improve pathkey handling for compressed sub-paths during sort transformation
  • #​9743 Fix the composite bloom metadata column naming scheme
  • #​9767 Skip dropped chunks when trying to remove ts_cagg_invalidation_trigger
  • #​9747 Reject inheriting from a hypertable
  • #​9744 Use a fixed call string for the telemetry job in ts_stat_statements recording
  • #​9736 Do logical sparse index comparison
  • #​9731 Avoid creating overlapping batches during recompression for multi orderby configurations
  • #​9717 Reject non-positive time bucket width on cagg creation
  • #​9707 Fix policy name comparison in remove_policies

New Settings

  • enable_cagg_rewrites: enables rewriting queries with CAggs. Off by default. cagg_rewrites_debug_info: prints CAgg rewrites diagnostics. Off by default.
  • enable_columnar_scan_filter_pushdown: enables pushing the filters on columnar scan down to the compressed scan level. On by default.

Thanks

v2.26.4

Compare Source

This release contains bug fixes since the 2.26.3 release. We recommend that you upgrade at the next available opportunity.

Bugfixes

  • #​9360 Sanitize DT_NOBEGIN next_start to recover jobs stuck after primary failover
  • #​9515 Fix now() constification for continuous aggregate queries
  • #​9550 Fix out of memory when propagating ALTER TABLE to many chunks
  • #​9605 Fix InstrStartNode called twice in a row
  • #​9607 Fix use-after-free of PlaceHolderVar.phrels in cached ChunkAppend plans
  • #​9612 Fix PlaceHolderVar error in runtime chunk exclusion
  • #​9614 Remove stale hypertable entries during upgrade
  • #​9615 Fix segfault with transition tables after column drop
  • #​9616 Use DROP CASCADE for trigger removal
  • #​9623 Error when querying compressed chunks under Apache license
  • #​9625 Make timescaledb_post_restore() reliably restart background workers in a single call
  • #​9639 Fix lost orderby sparse index
  • #​9646 Replace ERRCODE_INTERNAL_ERROR on user-reachable error paths
  • #​9652 Add Error on missing custom job function in ts_bgw_job_get_funci
  • #​9655 Fix data corruption when merging chunks with different compression settings
  • #​9654 Fix sort_transform crash with hypertable on nullable side of outer join
  • #​9656 Fix concurrent merge of compressed chunks dropping the new heap
  • #​9641 Fix COPY path with transition tables after column drop
  • #​9660 Fix incremental continuous aggregate refresh so that extend_last_bucket only applies to the boundary batch
  • #​9674 Fix segmentby crash in cagg invalidation tracking

Thanks

  • @​GetsuDer and @​WeiJie-JL for reporting an error with timescaledb and extensions using Explain
  • @​igor2x for reporting a problem when trying to query compressed data with the Apache license
  • @​ivaaaan for reporting an issue with constraint pushdown in continuous aggregate queries
  • @​patstrom for reporting a segfault with transition table triggers after dropping a column
  • @​patstrom for reporting an out-of-memory error when dropping constraints
  • @​pcayen for reporting an issue with GROUP BY ROLLUP on views over hypertables

v2.26.3

Compare Source

This release contains bug fixes since the 2.26.2 release. We recommend that you upgrade at the next available opportunity.

Bugfixes

  • #​9511 Fix alter_job failing for retention policy with drop_created_before argument
  • #​9557 Clean up orphaned compression_chunk_size entries during the extension upgrade
  • #​9551 Fix resource leaks on error paths for during a continuous aggregate refresh
  • #​9563 Fix gapfill out-of-order bucket creation during DST shift
  • #​9571 Fix concurrent refreshes of continuous aggregates

Thanks

v2.26.2

Compare Source

This release contains bug fixes since the 2.26.1 release. We recommend that you upgrade at the next available opportunity.

Bugfixes

  • #​9460 Fix WAL record tracking in EXPLAIN for direct compress
  • #​9485 Fix use-after-free of invalidation in tsl_compressor_free
  • #​9486 Fix use-after-free in job owner validation
  • #​9487 Fix use-after-free in reorder_chunk
  • #​9392 Fix wrong result when performing chunk exclusion by a mutable expression
  • #​9510 Fix chunk skipping with dropped columns
  • #​9522 Fix GROUP BY ROLLUP on compressed continuous aggregates

Thanks

  • @​pcayen for reporting an issue with GROUP BY ROLLUP
  • @​PiotrCiechomski for reporting the wrong result with chunk exclusion by a mutable expression

v2.26.1

Compare Source

This release contains bug fixes since the 2.26.0 release. We recommend that you upgrade at the next available opportunity.

Bugfixes

  • #​9455 Fix memory leak in ColumnarScan

v2.26.0

Compare Source

This release contains performance improvements and bug fixes since the 2.25.2 release. We recommend that you upgrade at the next available opportunity.

Highlighted features in TimescaleDB v2.26.0

  • The vectorized aggregation engine now evaluates PostgreSQL functions directly on columnar arguments and stores the results in a columnar format to preserve the high-speed execution pipeline. For analytical queries that leverage functions like time_bucket() in grouping or aggregation expressions, the function is evaluated natively without falling back to standard row-based processing. This enhancement ensures that the remainder of the query can seamlessly continue using the highly efficient columnar pipeline, yielding performance improvements of 3.5 times faster.
  • The query execution engine now supports composite bloom filters for SELECT and UPSERT operations, pushing down multi-column predicates directly to compressed table scans. This optimization bypasses costly batch decompression by automatically selecting the most restrictive bloom filter to quickly verify if target values are present. Showing over two times faster query performance when a composite bloom filter is used. Additionally, query profiling now includes detailed EXPLAIN statistics to monitor batch pruning and false-positive rates.
  • The custom node ColumnarIndexScan adjusts the query plan to fetch values from the sparse minmax indexes, improving query performance on the columnstore by up to 70x. For analytical queries that leverage functions like COUNT, MIN, MAX, FIRST (limited), and LAST (limited), the sparse index is being read instead of decompressing the batch.

Features

  • #​9104 Support min(text), max(text) for C collation in columnar aggregation pipeline
  • #​9117 Support functions like time_bucket in the columnar aggregation and grouping pipeline.
  • #​9142 Remove column dropped from _timescaledb_catalog.chunk
  • #​9238 Support non-partial aggregates with vectorized aggregation
  • #​9253 Support VectorAgg in subqueries and CTEs
  • #​9266 Add support for HAVING to vectorized aggregation
  • #​9267 Enable ColumnarIndexScan custom scan
  • #​9312 Remove advisory locks from bgw jobs and add graceful cancellation
  • #​8983 Add GUC for default chunk time interval
  • #​9334 Fix out-of-range timestamp error in WHERE clauses
  • #​9368 Enable runtime chunk exclusion on inner side of nested loop join
  • #​9372 Push down composite bloom filter checks to SELECT execution
  • #​9374 Use bloom filters to eliminate decompression of unrelated compressed batches during UPSERT statements
  • #​9382 Fix chunk creation failure after replica identity invalidation
  • #​9398 Fix chunk exclusion for IN/ANY on open (time) dimensions

Bugfixes

  • #​9401 Fix forced refresh not consuming invalidations
  • #​7629 Forbid non-constant timezone parameter in time_bucket_gapfill
  • #​9344 Wrong result or crash on cross-type comparison of partitioning column
  • #​9356 Potential crash when using a hypertable with partial compression or space partitioning in a nested loop join
  • #​9376 Allow CREATE EXTENSION after drop in the same session
  • #​9378 Fix foreign key constraint failure when inserting into hypertable with referencing a foreign key
  • #​9381 Data loss with direct compress with client-ordered data in an INSERT SELECT from a compressed hypertable
  • #​9413 Fix incorrect decompress markers on full batch delete
  • #​9414 Fix NULL compression handling in estimate_uncompressed_size
  • #​9417 Fix segfault in bloom1_contains

GUCs

  • default_chunk_time_interval: Default chunk time interval for new hypertables. This is an expert configuration, please do not alter unless recommended from Tiger Data.
  • enable_composite_bloom_indexes: Enable creation of bloom composite indexes on compressed chunks. Default: true

Thanks

  • @​bronzinni for reporting an issue with foreign keys on hypertables
  • @​janpio for reporting an issue with CREATE EXTENSION after dropping and recreating schema
  • @​leppaott for reporting a deadlock when deleting jobs

v2.25.2

Compare Source

This release contains performance improvements and bug fixes since the 2.25.1 release and a fix for a security vulnerability (#​9331). You can check the security advisory for more information on the vulnerability and the platforms that are affected. We recommend that you upgrade as soon as possible.

Bugfixes

  • #​9276 Fix NULL and DEFAULT handling in uniqueness check on compressed chunks
  • #​9277 Fix SSL-related build errors
  • #​9279 Fix EXPLAIN VERBOSE corrupting targetlist of cached ModifyHypertable plans
  • #​9281 Fix real-time continuous aggregates on UUID hypertables
  • #​9283 Fix plan-time error when using enum in orderby compression setting
  • #​9290 Propagate ALTER <object> OWNER TO to policy jobs
  • #​9292 Fix continuous aggregate column rename
  • #​9293 Fix time_bucket_gapfill inside LATERAL subqueries
  • #​9294 Fix DELETEand UPDATE with WHERE EXISTS on hypertables
  • #​9303 Fix segfault in continuous aggregate creation on Postgres 18
  • #​9308 Fix continuous aggregate offset/origin not applied in watermark and refresh window calculations
  • #​9314 Fix generated columns always NULL in compressed chunks
  • #​9321 Fix segfault when using OLD/NEW refs in RETURNING clause on Postgres 18
  • #​9324 Potential violation of a foreign key constraint referencing a hypertable caused by concurrent DELETE of the key record
  • #​9327 Fix handling of generated columns with NOT NULL domain type
  • #​9331 Ensure search_path is set before anything else in SQL scripts
  • #​9339 Fix segmentwise recompression clearing unordered flag

Thanks

  • @​CaptainCuddleCube for reporting an issue with time_bucket_gapfill and LATERAL subqueries
  • @​JacobBrejnbjerg for reporting an issue with generated columns in compressed chunks
  • @​Kusumoto for reporting an issue with continuous aggregates on hypertables with UUID columns
  • @​arfathyahiya for reporting an issue with renaming columns in continuous aggregates
  • @​desertmark for reporting an issue with DELETE/UPDATE and subqueries
  • @​flaviofernandes004 for reporting an issue with RETURNING clause and references to OLD/NEW
  • @​tureba for fixing SSL-related build errors

v2.25.1

Compare Source

This release contains performance improvements and bug fixes since the 2.25.1 release and a fix for a security vulnerability (#​9331). You can check the security advisory for more information on the vulnerability and the platforms that are affected. We recommend that you upgrade as soon as possible.

Bugfixes

  • #​9276 Fix NULL and DEFAULT handling in uniqueness check on compressed chunks
  • #​9277 Fix SSL-related build errors
  • #​9279 Fix EXPLAIN VERBOSE corrupting targetlist of cached ModifyHypertable plans
  • #​9281 Fix real-time continuous aggregates on UUID hypertables
  • #​9283 Fix plan-time error when using enum in orderby compression setting
  • #​9290 Propagate ALTER <object> OWNER TO to policy jobs
  • #​9292 Fix continuous aggregate column rename
  • #​9293 Fix time_bucket_gapfill inside LATERAL subqueries
  • #​9294 Fix DELETEand UPDATE with WHERE EXISTS on hypertables
  • #​9303 Fix segfault in continuous aggregate creation on Postgres 18
  • #​9308 Fix continuous aggregate offset/origin not applied in watermark and refresh window calculations
  • #​9314 Fix generated columns always NULL in compressed chunks
  • #​9321 Fix segfault when using OLD/NEW refs in RETURNING clause on Postgres 18
  • #​9324 Potential violation of a foreign key constraint referencing a hypertable caused by concurrent DELETE of the key record
  • #​9327 Fix handling of generated columns with NOT NULL domain type
  • #​9331 Ensure search_path is set before anything else in SQL scripts
  • #​9339 Fix segmentwise recompression clearing unordered flag

Thanks

  • @​CaptainCuddleCube for reporting an issue with time_bucket_gapfill and LATERAL subqueries
  • @​JacobBrejnbjerg for reporting an issue with generated columns in compressed chunks
  • @​Kusumoto for reporting an issue with continuous aggregates on hypertables with UUID columns
  • @​arfathyahiya for reporting an issue with renaming columns in continuous aggregates
  • @​desertmark for reporting an issue with DELETE/UPDATE and subqueries
  • @​flaviofernandes004 for reporting an issue with RETURNING clause and references to OLD/NEW
  • @​tureba for fixing SSL-related build errors

v2.25.0

Compare Source

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 compression index key limits
  • #​9024 Recompress some chunks on VACUUM FULL
  • #​9045 Fix missing UUID check in compression policy
  • #​9056 Fix split chunk relfrozenxid
  • #​9058 Fix missing chunk column stats bug
  • #​9061 Fix update race with background worker jobs
  • #​9069 Fix applying multikey sort for columnstore when one numeric key is pinned to a Const of different type
  • #​9102 Support retention policies on UUIDv7-partitioned hypertables
  • #​9120 Fix for pre Postgres 17, where a DELETE from a partially compressed chunk may miss records if BitmapHeapScan is being used
  • #​9121 Allow any immutable constant expressions as default values for compressed columns
  • #​9121 Fix a potential "unexpected column type 'bool'" error for compressed bool columns with missing value
  • #​9144 Fix handling implicit constraints in ALTER TABLE
  • #​9155 Fix column generation during compressed chunk insert
  • #​9129 Fix time_bucket with timezone during DST
  • #​9177 Add alias for bgw_job
  • #​9176 Handle NULL values in continuous aggregate invalidation more gracefully
  • #​9175 Do not remove dimension constraints for OSM chunks

GUCs

  • enable_columnarindexscan: Enable returning results directly from compression metadata without decompression. This feature is experimental, and in development towards a GA release. Not for production environments. Default: false
  • enable_direct_compress_on_cagg_refresh: Enable experimental support for direct compression during Continuous Aggregate refresh. Default: false
  • enable_qual_filtering: Filter qualifiers on chunks when complete chunk would be included by filter. Default: true

Thanks

  • @​t-aistleitner for reporting the planning performance regression on PG16 and later on some join queries.
  • @​vahnrr for reporting a crash when adding columns and constraints to a hypertable at the same time
  • @​cracksalad and @​eyadmba for reporting a bug with timezone handling in time_bucket

v2.24.0

Compare Source

This release contains performance improvements and bug fixes since the 2.23.1 release. We recommend that you upgrade at the next available opportunity.

Highlighted features in TimescaleDB v2.24.0

  • Direct Compress just got smarter and faster: it now works seamlessly with hypertables generating continuous aggregates. Invalidation ranges are computed directly in-memory based on the ingested batches and written efficiently at transaction commit. This change reduces the IO footprint drastically by removing the write amplification of the invalidation logs.
  • Continuous aggregates now speak UUIDv7: hypertables partitioned by UUIDv7 are fully supported through an enhanced time_bucket that accepts UUIDv7 values and returns precise, timezone-aware timestamps — unlocking powerful time-series analytics on modern UUID-driven table schemas.
  • Lightning-fast recompression: the new recompress := true option on the convert_to_columnstore API enables pure in-memory recompression, delivering a 4–5× speed boost over the previous disk-based process.

ARM support for bloom filters
The sparse bloom filter indexes will stop working after upgrade to 2.24. If you are affected by this problem, the warning "bloom filter sparse indexes require action to re-enable" will appear in the Postgres log during upgrade.

In versions before 2.24, the hashing scheme of the bloom filter sparse indexes used to depend on the build options of the TimescaleDB executables. These options are set by the package publishers and might differ between different package sources or even versions. After upgrading to a version with different options, the queries that use the bloom filter lookups could erroneously stop returning the rows that should in fact match the query conditions. The 2.24 release fixes this by using distinct column names for each hashing scheme.

The bloom filter sparse indexes will be disabled on the compressed chunks created before upgrading to 2.24. To re-enable them, you have to decompress and then compress the affected chunks.

If you were running the official APT package on AMD64 architecture, the hashing scheme did not change, and it is safe to use the existing bloom filter sparse indexes. To enable this, set the GUC timescaledb.read_legacy_bloom1_v1 = on in the server configuration.

The chunks compressed after upgrade to 2.24 will use the new index format, and the bloom filter sparse indexes will continue working as usual for these chunks without any intervention.

For more details, refer to the pull request #​8761.

Deprecations

Backward-Incompatible Changes

  • #​8761 Fix matching rows in queries using the bloom filter sparse indexes potentially not returned after extension upgrade. The version of the bloom filter sparse indexes is changed. The existing indexes will stop working and will require action to re-enable. See the section above for details.

Features

  • #​8465 Speed up the filters like x = any(array[...]) using bloom filter sparse indexes.
  • #​8569 In-memory recompression
  • #​8754 Add concurrent mode for merging chunks
  • #​8786 Display chunks view range as timestamps for UUIDv7
  • #​8819 Refactor chunk compression logic
  • #​8840 Allow ALTER COLUMN TYPE when compression is enabled but no compressed chunks exist
  • #​8908 Add time bucketing support for UUIDv7
  • #​8909 Support direct compress on hypertables with continuous aggregates
  • #​8939 Support continuous aggregates on UUIDv7-partitioned hypertables
  • #​8959 Cap continuous aggregate invalidation interval range at chunk boundary
  • #​8975 Exclude date/time columns from default segmentby
  • #​8993 Add GUC for in-memory recompression

Bugfixes

  • #​8839 Improve _timescaledb_functions.cagg_watermark error handling
  • #​8853 Change log level of continuous aggregate refresh messages to DEBUG1
  • #​8933 Potential crash or seemingly random errors when querying the compressed chunks created on releases before 2.15 and using the minmax sparse indexes.
  • #​8942 Fix lateral join handling for compressed chunks
  • #​8958 Fix if_not_exists behaviour when adding refresh policy
  • #​8969 Gracefully handle missing job stat in background worker
  • #​8988 Don't ignore additional filters on same column when building scankeys

GUCs

  • direct_compress_copy_tuple_sort_limit: Number of tuples that can be sorted at once in a COPY operation.
  • direct_compress_insert_tuple_sort_limit: Number of tuples that can be sorted at once in an INSERT operation.
  • read_legacy_bloom1_v1: Enable reading the legacy bloom1 version 1 sparse indexes for SELECT queries.
  • enable_in_memory_recompression: Enable in-memory recompression functionality.

Thanks

  • @​bezpechno for implementing ALTER COLUMN TYPE for hypertable with columnstore when no compressed chunks exist

v2.23.1

Compare Source

This release contains performance improvements and bug fixes since the 2.23.0 release. We recommend that you upgrade at the next available opportunity.

Bugfixes

  • #​8873 Don't error on failure to update job stats
  • #​8875 Fix decoding of UUID v7 timestamp microseconds
  • #​8879 Fix blocker for multiple hierarchical continuous aggregate policies
  • #​8882 Fix crash in policy creation

Thanks

v2.23.0

Compare Source

This release contains performance improvements and bug fixes since the 2.22.1 release. We recommend that you upgrade at the next available opportunity.

Highlighted features in TimescaleDB v2.23.0

  • This release introduces full PostgreSQL 18 support for all existing features. TimescaleDB v2.23 is available for PostgreSQL 15, 16, 17, and 18.
  • UUIDv7 compression is now enabled by default on the columnstore. This feature was shipped in v2.22.0. It saves you at least 30% of storage and delivers ~2× faster query performance with UUIDv7 columns in the filter conditions.
  • Added the ability to set hypertables to unlogged, addressing an open community request #​836. This allows the tradeoff between durability and performance, with the latter being favourable for larger imports.
  • By allowing set-returning functions in continuous aggregates, this releases addresses a long standing blocker, raised by the community #​1717.

PostgreSQL 15 deprecation announcement

We will continue supporting PostgreSQL 15 until June 2026. Closer to that time, we will announce the specific TimescaleDB version in which PostgreSQL 15 support will not be included going forward.

Features

  • #​8373 More precise estimates of row numbers for columnar storage based on Postgres statistics.
  • #​8581 Allow mixing Postgres and TimescaleDB options in ALTER TABLE SET.
  • #​8582 Make partition_column in CREATE TABLE WITH optional.
  • #​8588 Automatically create a columnstore policy when a hypertable with columnstore enabled is created via CREATE TABLE WITH statement.
  • #​8606 Add job history config parameters for maximum successes and failures to keep for each job.
  • #​8632 Remove ChunkDispatch custom node.
  • #​8637 Add INSERT support for direct compress.
  • #​8661 Allow ALTER TABLE ONLY to change reloptions to apply setting changes only to future chunks.
  • #​8703 Allow set-returning functions in continuous aggregates.
  • #​8734 Support direct compress when inserting into a chunk.
  • #​8741 Add support for unlogged hypertables.
  • #​8769 Remove continuous aggregate invalidation trigger.
  • #​8798 Enable UUIDv7 compression by default.
  • #​8804 Remove insert_blocker trigger.

Bugfixes

  • #​8561 Show warning when direct compress is skipped due to triggers or unique constraints.
  • [#​8567](ht

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot requested a review from a team as a code owner May 15, 2025 15:23
@renovate renovate Bot enabled auto-merge (squash) May 15, 2025 15:23
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 3 times, most recently from 3077e07 to 41c6af3 Compare May 27, 2025 16:00
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.20.0 chore(deps): update dependency timescale/timescaledb to v2.20.1 May 27, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 3 times, most recently from aca7c5d to 38d3756 Compare June 2, 2025 16:24
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.20.1 chore(deps): update dependency timescale/timescaledb to v2.20.2 Jun 2, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 2 times, most recently from 1d33a8d to d7168be Compare June 11, 2025 15:44
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.20.2 chore(deps): update dependency timescale/timescaledb to v2.20.3 Jun 11, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 5 times, most recently from 1777b72 to 0daec5b Compare June 19, 2025 00:53
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 2 times, most recently from 6772d81 to 3deb82a Compare June 30, 2025 14:47
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 3 times, most recently from a472898 to 97e4908 Compare July 8, 2025 15:36
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.20.3 chore(deps): update dependency timescale/timescaledb to v2.21.0 Jul 8, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 4 times, most recently from c1bed9e to a294a2d Compare August 12, 2025 08:55
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.21.2 chore(deps): update dependency timescale/timescaledb to v2.21.3 Aug 12, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch from a294a2d to 329bbe6 Compare September 2, 2025 14:06
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.21.3 chore(deps): update dependency timescale/timescaledb to v2.22.0 Sep 2, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch from 329bbe6 to 2c223c4 Compare September 4, 2025 04:38
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 2 times, most recently from b4866bc to 036ca64 Compare September 30, 2025 11:45
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.22.0 chore(deps): update dependency timescale/timescaledb to v2.22.1 Sep 30, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch from 036ca64 to e661092 Compare October 2, 2025 02:49
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch from e661092 to 246328e Compare October 29, 2025 09:03
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.22.1 chore(deps): update dependency timescale/timescaledb to v2.23.0 Oct 29, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 2 times, most recently from 1b4fc27 to 289adb1 Compare November 5, 2025 23:48
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 2 times, most recently from b9e1071 to fbfee3c Compare November 13, 2025 17:36
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.23.0 chore(deps): update dependency timescale/timescaledb to v2.23.1 Nov 13, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 2 times, most recently from 54402fb to 93ac355 Compare November 20, 2025 22:55
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch 3 times, most recently from 0a89071 to 0fd0f0b Compare December 3, 2025 11:42
@renovate renovate Bot changed the title chore(deps): update dependency timescale/timescaledb to v2.23.1 chore(deps): update dependency timescale/timescaledb to v2.24.0 Dec 3, 2025
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch from 0fd0f0b to d3c79f4 Compare December 19, 2025 16:05
Comment thread .github/workflows/build.yaml Outdated
@renovate renovate Bot force-pushed the renovate/timescale-timescaledb-2.x branch from d3c79f4 to 38dcfba Compare January 22, 2026 14:52
Comment thread .github/workflows/build.yaml Outdated
env:
# renovate datasource=github-releases depName=timescale/timescaledb
TIMESCALE_VERSION: 2.19.3
TIMESCALE_VERSION: 2.25.2
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The build matrix includes PostgreSQL 14, but the updated TimescaleDB version 2.25.2 is incompatible, which will cause the build to fail.
Severity: CRITICAL

Suggested Fix

Either remove PostgreSQL 14 from the build matrix in .github/workflows/build.yaml or, for the PostgreSQL 14 job, pin the TIMESCALE_VERSION to a compatible version like 2.19.3.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: .github/workflows/build.yaml#L7

Potential issue: The GitHub Actions workflow in `.github/workflows/build.yaml` includes
PostgreSQL 14 in its build matrix. The pull request updates TimescaleDB to version
`2.25.2`, which is incompatible with PostgreSQL 14, as support was dropped after
TimescaleDB version `2.19.3`. During the build process, the Dockerfile attempts to
install the package `timescaledb-2-postgresql-14=2.25.2~debian*`, which does not exist
in the package repository. This will result in a "package not found" error, causing the
build to fail for the PostgreSQL 14 matrix entry.

Did we get this right? 👍 / 👎 to inform future reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants