What timescale/timescaledb shipped
Written by FoxPlug from the repository's own releases; not affiliated with Tigerdata. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/timescale/timescaledb; Tigerdata did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Continuous aggregate refresh now runs as the continuous aggregate owner role in a restricted context. Pull request #10922
- The continuous aggregate refresh context restriction was backported to the 2.31.x branch. Pull request #10936
- Creating a continuous aggregate now checks schema CREATE privilege as the calling user before switching to the catalog owner for the internal schema. Pull request #10919
- The refresh policy procedure now checks continuous aggregate ownership to prevent unprivileged users from moving the invalidation threshold. Pull request #10923
- Recompression now checks that the caller owns the hypertable in both the policy procedure and segmentwise recompression. Pull request #10932
- Create_compressed_chunk now requires the caller to own the table that becomes chunk storage. Pull request #10933
- Create_compressed_chunk now validates that its argument is a real uncompressed table. Pull request #10937
- The default segmentby function now has additional validation for segmentby and orderby columns. Pull request #10938
- Serialized hash grouping strategy now zeroes out key bytes in the null bitmap tail to avoid incomplete partial aggregation and Valgrind warnings. Pull request #10916
- Padding bytes in bool compressed data are now initialized to avoid leaking server memory contents and Valgrind warnings. Pull request #10907
Why it matters
This week focuses on security and stability: ownership and privilege checks were added to continuous aggregate refresh, recompression, and compressed chunk creation, reducing the risk of unprivileged users affecting internal state. Several fixes address uninitialized memory in compression and grouping code, which improves correctness and satisfies Valgrind. Together these changes make the extension safer and more reliable for developers who use it.
Changelog entry
- Execute continuous aggregate refresh as the continuous aggregate owner role in a restricted context. Pull request #10922
- Backport to 2.31.x: restrict continuous aggregate refresh context. Pull request #10936
- Check schema CREATE privilege as the calling user when creating a continuous aggregate. Pull request #10919
- Check continuous aggregate ownership in the refresh policy procedure. Pull request #10923
- Check hypertable ownership in recompression. Pull request #10932
- Require table ownership in
create_compressed_chunk. Pull request #10933 - Validate that
create_compressed_chunkargument is a real uncompressed table. Pull request #10937 - Add validation to the default segmentby function for segmentby and orderby columns. Pull request #10938
- Zero out key bytes in serialized hash grouping strategy to avoid incomplete partial aggregation. Pull request #10916
- Initialize padding bytes in bool compressed data to avoid leaking server memory contents. Pull request #10907
- Initialize debug fields in Gorilla decompression iterator. Pull request #10908
- Fix columnar typo in README. Pull request #10893
This week: continuous aggregate refresh now runs as the cagg owner in a restricted context; ownership checks added to refresh policy, recompression, and create_compressed_chunk; schema CREATE privilege checked when creating a cagg; and uninitialized memory fixes in hash grouping
This week in TimescaleDB: continuous aggregate refresh now executes as the continuous aggregate owner role in a restricted context, and that change was backported to 2.31.x. We added ownership checks to the refresh policy procedure, recompression, and create_compressed_chunk, and now check schema CREATE privilege when creating a continuous aggregate. The default segmentby function received more validation, and create_compressed_chunk now requires a real uncompressed table. We also fixed uninitialized memory in serialized hash grouping and bool compression padding, improving stability and addressing Valgrind warnings. These changes strengthen security and reliability for developers using the extension.
Week of October 26, 2026
What shipped
- Hypertable row updates now recheck concurrent modifications so an UPDATE or DELETE waiting on a row lock acts on the new row version. Pull request #10906
- Closed an unprivileged information leak where
create_chunkerrors could reveal details about the chunk source table before privileges were checked. Pull request #10912 - Fixed COPY FROM handling when ON_ERROR ignore and REJECT_LIMIT are used, preventing bogus values for skipped rows. Pull request #10856
- Fixed buffer sizing in the simple8b size estimate to prevent compression failures with repalloc invalid pointer errors. Pull request #10891
- Removed the SQL callable
bloom1_containsfunction, since the planner now usesbloom1_contains_any_hashes. Pull request #10904 - Quoted identifiers in the 2.17.0 to 2.16.1 downgrade script. Pull request #10884
- Switched PostgreSQL 19 tests to 19rc1. Pull request #10882
- Cached the timezone string when initializing the gapfill executor and checked for non-const NULL time zone. Pull request #10883
- Fixed an uninitialized Name struct in background worker job creation that wrote server memory to disk and triggered Valgrind complaints. Pull request #10903
- Retired the obsolete
ts_dumpandts_restoreroutines, which were replaced bypg_dumpandpg_restoresince 2.x. Pull request #10921
Why it matters
This week brings correctness fixes for UPDATE/DELETE on hypertables under READ COMMITTED, a privilege check ordering fix, and COPY FROM behavior with ON_ERROR ignore and REJECT_LIMIT. It also removes obsolete functions and improves internal buffer and timezone handling for more reliable operation.
Changelog entry
- Hypertables: recheck concurrent row updates so UPDATE and DELETE wait on and act on the new row version. Pull request #10906
- Fix privilege check order in
create_chunkto prevent unprivileged information leaks via error messages. Pull request #10912 - Fix COPY FROM when ON_ERROR ignore and REJECT_LIMIT are present. Pull request #10856
- Fix buffer sizing in simple8b size estimate to avoid repalloc invalid pointer failures. Pull request #10891
- Remove the SQL callable
bloom1_containsfunction. Pull request #10904 - Quote identifiers in the 2.17.0 to 2.16.1 downgrade script. Pull request #10884
- Cache the timezone string when initializing the gapfill executor. Pull request #10883
- Initialize the Name struct in background worker job creation to avoid writing server memory to disk. Pull request #10903
- Retire the obsolete
ts_dumpandts_restoreroutines. Pull request #10921 - Switch PostgreSQL 19 tests to 19rc1. Pull request #10882
This week: concurrent UPDATE/DELETE on hypertables now act on the new row version, create_chunk no longer leaks info via errors, COPY FROM handles ON_ERROR ignore with REJECT_LIMIT, and simple8b buffer sizing is fixed.
This week in timescale/timescaledb: concurrent UPDATE and DELETE on hypertables now recheck the updated row and act on the new version under READ COMMITTED. We closed an unprivileged information leak in create_chunk error messages and fixed COPY FROM when ON_ERROR ignore and REJECT_LIMIT are present. Buffer sizing in the simple8b size estimate was corrected to avoid compression failures. We also removed the SQL callable bloom1_contains function, retired the obsolete ts_dump and ts_restore routines, and switched PostgreSQL 19 tests to 19rc1.
Week of October 19, 2026
What shipped
- Released version 2.31.0 with performance improvements and bug fixes since 2.30.2, including faster UPDATE and DELETE on the columnstore through vectorized key processing. Release
- Merged the pull request that prepared the 2.31.0 release notes and version bump. Pull request #10815
- Prepared the 2.31.1 release. Pull request #10861
- Fixed continuous aggregate refresh so an invalidation ending exactly on a bucket start no longer skips the last variable bucket. Pull request #10419
- Backported the continuous aggregate variable bucket refresh fix to the 2.31.x branch. Pull request #10888
- Changing a hypertable owner now leaves user-defined jobs with their own owner, so only policy jobs follow the hypertable owner. Pull request #10844
- Backported the user-defined job ownership fix to the 2.31.x branch. Pull request #10857
- Changed continuous aggregate refresh to update the watermark once per batch instead of after every invalidation entry. Pull request #10864
- Enabled the AIC compressor by default for the upcoming 2.32.0 release. Pull request #10878
- Added a test that DROP TABLE without CASCADE on a hypertable with compressed chunks leaves no compressed chunk tables behind. Pull request #10848
Why it matters
This week brought the 2.31.0 release with performance improvements and bug fixes, plus preparation for 2.31.1. Two correctness fixes matter for users: continuous aggregate refresh no longer drops the last variable bucket on certain invalidations, and hypertable owner changes no longer hand user-defined jobs to the new owner. A test also closes a gap where compressed chunk tables could be left behind after DROP TABLE.
Changelog entry
- Release 2.31.0 with performance improvements and bug fixes since 2.30.2, including faster UPDATE and DELETE on the columnstore with vectorized key processing. Release
- Prepare and publish the 2.31.0 release. Pull request #10815
- Prepare the 2.31.1 release. Pull request #10861
- Fix continuous aggregate refresh skipping the last variable bucket when an invalidation ends exactly on a bucket start. Pull request #10419
- Backport the continuous aggregate variable bucket refresh fix to 2.31.x. Pull request #10888
- Keep the owner of user-defined jobs when a hypertable owner changes; only policy jobs follow the hypertable owner. Pull request #10844
- Backport the user-defined job ownership fix to 2.31.x. Pull request #10857
- Update the continuous aggregate watermark once per refresh batch rather than after every invalidation entry. Pull request #10864
- Enable the AIC compressor by default for the upcoming 2.32.0 release. Pull request #10878
- Add a test that DROP TABLE without CASCADE removes compressed chunk tables. Pull request #10848
- Add a loader changes section to the changelog. Pull request #10831
- Bump pglast to 7.21 (backported to 2.31.x). Pull request #10851
TimescaleDB 2.31.0 is out with performance improvements and bug fixes, including faster UPDATE and DELETE on the columnstore via vectorized key processing. Also this week: a fix for continuous aggregate refresh skipping the last variable bucket, and user-defined jobs now keep the
TimescaleDB 2.31.0 is released, with performance improvements and bug fixes since 2.30.2, including faster UPDATE and DELETE queries on the columnstore through vectorized key processing. We recommend upgrading at the next available opportunity, and work on 2.31.1 is already underway. This week also fixed continuous aggregate refresh skipping the last variable bucket when an invalidation ended exactly on a bucket start, and changed hypertable ownership so only policy jobs follow the hypertable owner while user-defined jobs keep their own. A new test also verifies that dropping a hypertable without CASCADE removes its compressed chunk tables.
Week of October 12, 2026
What shipped
- Implemented a new Adaptive Integer Compressor that is faster and compresses better than deltadelta, with better tolerance for small batches and unordered data, currently disabled by default. Pull request #10626
- Enabled vectorized aggregation for single-chunk expression grouping such as time_bucket() by keeping the ColumnarScan directly below the aggregation. Pull request #10705
- Fixed splitting of compressed chunks so that columns added with a default after compression keep their default values instead of becoming NULL in split batches. Pull request #10797
- Fixed wrong results in single-chunk ChunkAppend with a projection by no longer removing Result nodes that compute expressions. Pull request #10819
- Fixed a use-after-free when pushing projections below single-chunk appends by limiting the planner hook to run only at the appropriate stages. Pull request #10833
- Fixed the
search_pathused for planning DeferredChunkAppend chunk queries so user code running during planning can find unqualified names in other schemas. Pull request #10818 - Fixed missing continuous aggregate invalidations during MERGE UPDATE/DELETE by integrating
continuous_agg_dml_invalidateinto the ExecMerge path and using the ModifyHypertable path. Pull request #10508 - Fixed column rename on composite bloom filters by checking chunk settings rather than hypertable settings so no bloom filters are missed. Pull request #10838
- Avoided a full
pg_constraintscan on chunk creation when looking up foreign keys that reference the hypertable. Pull request #10808 - Fixed parallel chunkwise aggregation with unsafe aggregates such as a correlated subquery in a FILTER clause. Pull request #10806
Why it matters
This week brings a new integer compressor option and vectorized aggregation for single-chunk expression grouping, both aimed at better compression and faster queries. It also closes a set of correctness bugs: wrong results with single-chunk ChunkAppend, missing continuous aggregate invalidations on MERGE, bad values when splitting compressed chunks, and a planning search_path problem. The 2.31.0 release was prepared and many of these fixes were backported to 2.31.x.
Changelog entry
- Implement a new Adaptive Integer Compressor (AIC), faster and better compressing than deltadelta, disabled by default. Pull request #10626
- Use vectorized aggregation for single-chunk expression grouping. Pull request #10705
- Fix wrong results for single-chunk ChunkAppend with a projection. Pull request #10819
- Fix use-after-free when pushing projections below single-chunk appends. Pull request #10833
- Fix
search_pathused for planning DeferredChunkAppend chunk queries. Pull request #10818 - Fix missing continuous aggregate invalidations during MERGE UPDATE/DELETE. Pull request #10508
- Fix column rename on composite bloom filters by checking chunk settings. Pull request #10838
- Fix split of compressed chunks with columns added with a default. Pull request #10797
- Fix parallel chunkwise aggregation with unsafe aggregates. Pull request #10806
- Avoid full
pg_constraintscan on chunk creation. Pull request #10808 - Fix continuous aggregate invalidation when dropping a chunk by unqualified name. Pull request #10783
- Remove the move to columnstore flush limit, making it a configurable opt-in option. Pull request #10816
This week: a new Adaptive Integer Compressor, vectorized aggregation for single-chunk expression grouping, and fixes for single-chunk ChunkAppend results, MERGE invalidations, compressed chunk splits, and DeferredChunkAppend planning. 2.31.0 is prepared and fixes are backported.
This week in the repository: a new Adaptive Integer Compressor was implemented, faster and with better compression than deltadelta, disabled by default for now. Vectorized aggregation now works for single-chunk expression grouping like time_bucket(). Several correctness fixes landed: wrong results in single-chunk ChunkAppend with a projection, a use-after-free when pushing projections below single-chunk appends, missing continuous aggregate invalidations on MERGE UPDATE/DELETE, wrong values when splitting compressed chunks with defaulted columns, bloom filter column renames missing some chunks, and the search_path used to plan DeferredChunkAppend queries. The 2.31.0 release was prepared and notable fixes were backported to 2.31.x.
Week of October 5, 2026
What shipped
- LIMIT 1 queries on compressed chunks can now be answered from metadata without decompression when output columns meet specific segmentby or orderby conditions. Pull request #10770
- Compression sort order is fixed for columns added with a default, preventing out-of-order batches and query errors. Pull request #10795
- Data loss in direct compress automatic segmentby is fixed by preventing the rebuild of the compressed chunk when a direct compress insert returns to an already written chunk. Pull request #10791
- SkipScan now bails when a gating qualifier is applied to its result, avoiding incorrect results. Pull request #10778
- ConstraintAwareAppend rescan now passes changed parameters to its child plan, fixing wrong results for subqueries that depend on an outer query. Pull request #10748
- ColumnarIndexScan rescan now passes changed parameters to its child plan, fixing wrong results for subqueries that depend on an outer query. Pull request #10747
- Continuous aggregate refresh loop with negative bucket offset no longer spins forever because the next bucket start now advances correctly. Pull request #10749
- Time_bucket() on dates now accepts negative whole-day offsets instead of rejecting them with a sub-day precision error. Pull request #10765
- ChunkAppend now properly tracks parameters present in itself but not in children, preventing a segfault due to uninitialized parameters. Pull request #10763
- Performance regression for
ts_find_ems_for_relon PG18_LT is fixed by exiting early after finding all equivalence members on a chunk. Pull request #10766
Why it matters
This week focused on fixing correctness and performance issues that affect queries on compressed and continuous aggregate data. Users benefit from fewer wrong results, less data loss, and faster queries without decompression in specific cases.
Changelog entry
- Answer LIMIT 1 queries on compressed chunks from metadata without decompression. Pull request #10770
- Fix compression sort order for columns added with a default. Pull request #10795
- Fix data loss in direct compress automatic segmentby. Pull request #10791
- Bail on SkipScan when a gating qualifier is applied to its result. Pull request #10778
- Fix ConstraintAwareAppend rescan with changed parameters. Pull request #10748
- Fix ColumnarIndexScan rescan with changed parameters. Pull request #10747
- Fix CAgg refresh loop with negative bucket offset. Pull request #10749
- Allow negative day offsets for Date type in time_bucket(). Pull request #10765
- Fix handling of parameters present in ChunkAppend but not in children. Pull request #10763
- Fix performance regression on PG18_LT access to equivalent distinct keys for SkipScan. Pull request #10766
- Do not allow SkipScan over subqueries. Pull request #10789
- Allow chunk-wise aggregation for gapfill. Pull request #9737
This week: LIMIT 1 queries on compressed chunks answered from metadata, compression sort order fixed for columns added with a default, data loss in direct compress automatic segmentby fixed, and rescan parameter fixes for ConstraintAwareAppend and ColumnarIndexScan.
This week in TimescaleDB: LIMIT 1 queries on compressed chunks can now be answered from metadata without decompression in specific cases. Compression sort order is fixed for columns added with a default. Data loss in direct compress automatic segmentby is fixed. ConstraintAwareAppend and ColumnarIndexScan rescans now correctly pass changed parameters, fixing wrong results for subqueries. Also, a continuous aggregate refresh loop with negative bucket offset no longer spins forever, and time_bucket on dates now accepts negative whole-day offsets.
Week of September 28, 2026
What shipped
- Version 2.30.2 released with bug fixes including crash when merging chunks with different column layouts, DROP SCHEMA CASCADE leaving orphaned compressed chunks, and vectorized text comparison issues. Release
- Hash partitioned columns now skip chunks at runtime by checking join qualifications, improving query performance when filtering across partitions. Pull request #10630
- TRUNCATE CASCADE on hypertables no longer incorrectly drops foreign keys that reference the hypertable. Pull request #10718
- TRUNCATE on partially compressed chunks now removes both compressed and uncompressed data instead of leaving uncompressed rows behind. Pull request #10715
- New informational view
timescaledb_information.hypertable_granular_refresh_settingsadded for granular refresh settings, withgranular_refreshcolumn added tocontinuous_aggregatesview. Pull request #10589 - Continuous aggregate refresh now logs a notice with the number of batches processed and refresh window. Pull request #10647
- Fixed silent dropping of compressed segmentby sortkeys for child hypertables in PostgreSQL 18 and later. Pull request #10729
- Chunk skipping now correctly handles date and integer columns at type boundaries instead of skipping valid rows. Pull request #10558
- Unique index collation is now used for duplicate checking on compressed chunks instead of column collation. Pull request #10693
- Adding dimensions to tables with data tiering enabled is now prevented. Pull request #10671
Why it matters
Version 2.30.2 addresses critical issues with chunk operations, compression, and partitioning that affect data correctness and query performance. Improvements to continuous aggregate refresh reporting and chunk skipping logic make the system more reliable for production use.
Changelog entry
- Fix crash when merging chunks with different column layouts Release
- Fix TRUNCATE CASCADE dropping foreign keys to hypertable Pull request #10718
- Fix TRUNCATE on partially compressed chunk Pull request #10715
- Exclude chunks of hash partitioned column at runtime via ChunkAppend with join qualifications Pull request #10630
- Fix chunk skipping missing rows for date and integer columns at type boundaries Pull request #10558
- Fix silently dropping segmentby sortkeys for child hypertables in PostgreSQL 18+ Pull request #10729
- Report continuous aggregate refresh statistics with batch count and refresh window Pull request #10647
- Use collation of unique index on compressed chunks for duplicate checking Pull request #10693
- Add informational view for granular refresh settings Pull request #10589
- Prevent adding dimensions to tables with data tiering enabled Pull request #10671
TimescaleDB 2.30.2 is out. Fixes for chunk merging crashes, compressed chunk handling, partition skipping, and continuous aggregate refresh reporting. Upgrade recommended.
TimescaleDB 2.30.2 is now available. This release includes critical fixes for chunk merging with different column layouts, improved handling of partially compressed chunks during truncation, corrected partition skipping for date and integer columns, and better continuous aggregate refresh visibility. Several issues with compressed chunk operations and collation handling in PostgreSQL 18+ have also been resolved.
Week of September 21, 2026
What shipped
- Added move_to_columnstore() function that converts chunks to columnstore with ShareUpdateExclusiveLock instead of ExclusiveLock, allowing concurrent INSERT, UPDATE, and DELETE operations during conversion. Pull request #10632
- Fixed DROP SCHEMA CASCADE to properly drop compressed chunks by mapping already-dropped relation IDs using compression settings. Pull request #10668
- Fixed SkipScan planner to use distinct Pathkeys instead of distinct expressions when processing equivalent skip keys on chunks. Pull request #10454
- Fixed first and last aggregates to use the btree sort operator from the type's default operator class instead of resolving by name. Pull request #10635
- Optimized tenant tracking by resolving the tracking column once per transaction instead of per chunk. Pull request #10609
- Fixed granular refresh by deleting stale tenant trackings when re-enabling the feature to prevent conflicts from previous configurations. Pull request #10615
- Fixed recompression and compaction operations to preserve DML statistics instead of overwriting them. Pull request #10628
- Improved error reporting when concurrent DML operations encounter chunks being converted to columnstore. Pull request #10639
- Improved chunkwise aggregation by adding hashed execution paths before sorted paths to allow GUC-based plan control. Pull request #10605
- Removed PostgreSQL 17.2 merge workaround and set minimum supported PostgreSQL 17 version to 17.3. Pull request #10669
Why it matters
This week includes improvements to columnstore operations that reduce blocking during chunk conversion, fixes for schema dropping with compressed chunks, and optimizations to planning and aggregation. Query planning and execution are more robust with fixes to SkipScan, aggregate operators, and aggregation strategies.
Changelog entry
- Added move_to_columnstore() function for incremental columnstore conversion with reduced lock contention Pull request #10632
- Fixed DROP SCHEMA CASCADE to drop compressed chunks Pull request #10668
- Fixed SkipScan planner equivalent skip keys processing Pull request #10454
- Fixed first and last aggregates to use btree sort operator from default operator class Pull request #10635
- Optimized tenant tracking column resolution to once per transaction Pull request #10609
- Fixed granular refresh by removing stale tenant trackings on re-enable Pull request #10615
- Fixed compression operations to preserve DML statistics Pull request #10628
- Improved error reporting for concurrent DML during columnstore conversion Pull request #10639
- Improved chunkwise aggregation path ordering for better GUC control Pull request #10605
This week: move_to_columnstore() now converts chunks without blocking concurrent DML, DROP SCHEMA CASCADE properly handles compressed chunks, and SkipScan planner improvements.
Week of improvements to columnstore and query planning. The new move_to_columnstore() function converts chunks while allowing concurrent INSERT/UPDATE/DELETE. Schema dropping now correctly handles compressed chunks. SkipScan planner uses Pathkeys for better coverage. First/last aggregates now use correct sort operators. Tenant tracking optimization reduces per-transaction overhead.
Week of September 14, 2026
What shipped
- Released 2.30.1 with bug fixes including corrections for INSERT... ON CONFLICT with multiple unique constraints, NULL conflict resolution in bloom filtering, and DeferredChunkAppend issues. Release
- Fixed query planning where explicit casts on segmentby columns prevented join conditions from being pushed down to compressed chunk indexes, causing full chunk scans. Pull request #10617
- Fixed duplicate rows returned by DeferredChunkAppend when LIMIT is non-constant and cannot be pushed to per-chunk queries, such as with parameterized prepared statements. Pull request #10592
- Implemented endian-independent pack/unpack in FastLanes to ensure consistent integer compression encoding across platforms regardless of system architecture. Pull request #10621
- Added explicit flag requirement timescaledb.cagg_enable_granular_refresh that must be set to TRUE to enable granular tracking on hypertables along with valid offset specifications. Pull request #10610
- Blocked ALTER and DROP operations on hypertable columns used for granular refresh tracking to prevent unintended schema modifications. Pull request #10512
- Enabled changing granular start and end offset settings on hypertables that previously had granular tracking enabled. Pull request #10588
- Refactored FastLanes with inlined sizing functions as a precursor to the integer compressor, improving measurable performance. Pull request #10620
- Hardened DeferredChunkAppend to handle float output rounding based on
extra_float_digitssetting during WHERE clause deparse and parse cycles. Pull request #10616 - Completed internal naming updates from DeferredChunkScan to DeferredChunkAppend across remaining functions. Pull request #10622
Why it matters
Version 2.30.1 addresses critical query planning issues with compressed chunks and parameterized queries that affect data retrieval accuracy and performance. The granular refresh enhancements add safety controls and flexibility for continuous aggregate configurations. These fixes improve reliability for both query execution and schema management in production deployments.
Changelog entry
- Fix: Explicit casts on segmentby columns now properly recognized in join condition pushdown to compressed chunk indexes Pull request #10617
- Fix: Prevent duplicate rows in DeferredChunkAppend when LIMIT is non-constant, such as in parameterized prepared statements Pull request #10592
- Fix: Handle float output rounding in DeferredChunkAppend WHERE clause deparse based on
extra_float_digitssetting Pull request #10616 - Fix: Skip DeferredChunkAppend for pseudotype constants to ensure WHERE clause survives deparse/parse round trip Pull request #10593
- Improvement: FastLanes pack/unpack now uses endian-independent encoding for integer compression Pull request #10621
- Improvement: Inlined FastLanes sizing functions for measurable performance improvement Pull request #10620
- Improvement: Require explicit flag timescaledb.cagg_enable_granular_refresh to enable granular tracking on hypertables Pull request #10610
- Improvement: Block ALTER/DROP operations on granular refresh tracking columns Pull request #10512
- Improvement: Allow changing granular start and end offsets on hypertables with existing granular tracking Pull request #10588
2.30.1 shipped with fixes for compressed chunk query planning, duplicate rows in parameterized LIMIT queries, and safer granular refresh controls for continuous aggregates.
TimescaleDB 2.30.1 is now available. This release addresses critical issues including query planning with explicit casts on compressed chunks, duplicate row handling in parameterized queries, and enhanced safety for granular refresh configurations. Additional improvements include endian-independent compression encoding and expanded flexibility for adjusting granular offset settings on hypertables.