Skip to content

Releases: timescale/timescaledb

2.16.1 (2024-08-06)

06 Aug 15:22
7c78574
Compare
Choose a tag to compare

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

Bugfixes

  • #7182 Fix untier_chunk for hypertables with foreign keys

2.16.0 (2024-07-31)

31 Jul 18:16
4fd2a87
Compare
Choose a tag to compare

This release contains significant performance improvements when working with compressed data, extended join
support in continuous aggregates, and the ability to define foreign keys from regular tables towards hypertables.
We recommend that you upgrade at the next available opportunity.

In TimescaleDB v2.16.0 we:

  • Introduce multiple performance focused optimizations for data manipulation operations (DML) over compressed chunks.
    Improved upsert performance by more than 100x in some cases and more than 1000x in some update/delete scenarios.
  • Add the ability to define chunk skipping indexes on non-partitioning columns of compressed hypertables
    TimescaleDB v2.16.0 extends chunk exclusion to use those skipping (sparse) indexes when queries filter on the relevant columns,
    and prune chunks that do not include any relevant data for calculating the query response.
  • Offer new options for use cases that require foreign keys defined.
    You can now add foreign keys from regular tables towards hypertables. We have also removed
    some really annoying locks in the reverse direction that blocked access to referenced tables
    while compression was running.
  • Extend Continuous Aggregates to support more types of analytical queries.
    More types of joins are supported, additional equality operators on join clauses, and
    support for joins between multiple regular tables.

Highlighted features in this release

  • Improved query performance through chunk exclusion on compressed hypertables.
    You can now define chunk skipping indexes on compressed chunks for any column with one of the following
    integer data types: smallint, int, bigint, serial, bigserial, date, timestamp, timestamptz.

    After you call enable_chunk_skipping on a column, TimescaleDB tracks the min and max values for
    that column. TimescaleDB uses that information to exclude chunks for queries that filter on that
    column, and would not find any data in those chunks.

  • Improved upsert performance on compressed hypertables.
    By using index scans to verify constraints during inserts on compressed chunks, TimescaleDB speeds
    up some ON CONFLICT clauses by more than 100x.

  • Improved performance of updates, deletes, and inserts on compressed hypertables.
    By filtering data while accessing the compressed data and before decompressing, TimescaleDB has
    improved performance for updates and deletes on all types of compressed chunks, as well as inserts
    into compressed chunks with unique constraints.

    By signaling constraint violations without decompressing, or decompressing only when matching
    records are found in the case of updates, deletes and upserts, TimescaleDB v2.16.0 speeds
    up those operations more than 1000x in some update/delete scenarios, and 10x for upserts.

  • You can add foreign keys from regular tables to hypertables, with support for all types of cascading options.
    This is useful for hypertables that partition using sequential IDs, and need to reference those IDs from other tables.

  • Lower locking requirements during compression for hypertables with foreign keys
    Advanced foreign key handling removes the need for locking referenced tables when new chunks are compressed.
    DML is no longer blocked on referenced tables while compression runs on a hypertable.

  • Improved support for queries on Continuous Aggregates
    INNER/LEFT and LATERAL joins are now supported. Plus, you can now join with multiple regular tables,
    and you can have more than one equality operator on join clauses.

PostgreSQL 13 support removal announcement

Following the deprecation announcement for PostgreSQL 13 in TimescaleDB v2.13,
PostgreSQL 13 is no longer supported in TimescaleDB v2.16.

The Currently supported PostgreSQL major versions are 14, 15 and 16.

Features

  • #6880: Add support for the array operators used for compressed DML batch filtering.
  • #6895: Improve the compressed DML expression pushdown.
  • #6897: Add support for replica identity on compressed hypertables.
  • #6918: Remove support for PG13.
  • #6920: Rework compression activity wal markers.
  • #6989: Add support for foreign keys when converting plain tables to hypertables.
  • #7020: Add support for the chunk column statistics tracking.
  • #7048: Add an index scan for INSERT DML decompression.
  • #7075: Reduce decompression on the compressed INSERT.
  • #7101: Reduce decompressions for the compressed UPDATE/DELETE.
  • #7108 Reduce decompressions for INSERTs with UNIQUE constraints
  • #7116 Use DELETE instead of TRUNCATE after compression
  • #7134 Refactor foreign key handling for compressed hypertables
  • #7161 Fix mergejoin input data is out of order

Bugfixes

  • #6987 Fix REASSIGN OWNED BY for background jobs
  • #7018: Fix search_path quoting in the compression defaults function.
  • #7046: Prevent locking for compressed tuples.
  • #7055: Fix the scankey for segment by columns, where the type constant is different to variable.
  • #7064: Fix the bug in the default order by calculation in compression.
  • #7069: Fix the index column name usage.
  • #7074: Fix the bug in the default segment by calculation in compression.

Thanks

  • @jledentu For reporting a problem with mergejoin input order

2.15.3 (2024-07-02)

02 Jul 14:33
777f726
Compare
Choose a tag to compare

This release contains bug fixes since the 2.15.2 release.
Best practice is to upgrade at the next available opportunity.

Migrating from self-hosted TimescaleDB v2.14.x and earlier

After you run ALTER EXTENSION, you must run this SQL script. For more details, see the following pull request #6797.

If you are migrating from TimescaleDB v2.15.0, v2.15.1 or v2.15.2, no changes are required.

Bugfixes

  • #7061: Fix the handling of multiple unique indexes in a compressed INSERT.
  • #7080: Fix the corresponding equivalence member not found error.
  • #7088: Fix the leaks in the DML functions.
  • #7035: Fix the error when acquiring a tuple lock on the OSM chunks on the replica.
  • #7091: Fix ORDER BY/GROUP BY expression not found in targetlist on PG16

Thanks

  • @Kazmirchuk for reporting the issue about leaks with the functions in DML.

Release 2.15.2 (2024-06-07)

07 Jun 14:17
903847e
Compare
Choose a tag to compare

This release contains bug fixes since the 2.15.1 release. Best practice is to upgrade at the next available opportunity.

Migrating from self-hosted TimescaleDB v2.14.x and earlier

After you run ALTER EXTENSION, you must run this SQL script. For more details, see the following pull request #6797.

If you are migrating from TimescaleDB v2.15.0 or v2.15.1, no changes are required.

Bugfixes

  • #6975: Fix sort pushdown for partially compressed chunks.
  • #6976: Fix removal of metadata function and update script.
  • #6978: Fix segfault in compress_chunk with a primary space partition.
  • #6993: Disallow hash partitioning on primary column.

Thanks

  • @gugu for reporting the issue with catalog corruption due to update.
  • @srieding for reporting an issue with partially compressed chunks and ordering on joined columns.

Release 2.15.1 (2024-05-28)

28 May 21:10
6a8b31f
Compare
Choose a tag to compare

This release contains bug fixes since the 2.15.0 release.
Best practice is to upgrade at the next available opportunity.

Migrating from self-hosted TimescaleDB v2.14.x and earlier

After you run ALTER EXTENSION, you must run this SQL script. For more details, see the following pull request #6797.

If you are migrating from TimescaleDB v2.15.0, no changes are required.

Bugfixes

  • #6540: Segmentation fault when you backfill data using COPY into a compressed chunk.
  • #6858: BEFORE UPDATE trigger not working correctly.
  • #6908: Fix time_bucket_gapfill() with timezone behaviour around daylight savings time (DST) switches.
  • #6911: Fix dropped chunk metadata removal in the update script.
  • #6940: Fix pg_upgrade failure by removing regprocedure from the catalog table.
  • #6957: Fix then segfault in UNION queries that contain ordering on compressed chunks.

Thanks

2.15.0 (2024-05-08)

08 May 15:34
Compare
Choose a tag to compare

This release contains the performance improvements and bug fixes introduced since
TimescaleDB v2.14.2. Best practice is to upgrade at the next available opportunity.

Highlighted features in this release

  • Continuous Aggregate now supports time_bucket with origin and/or offset.
  • The following improvements have been introduced for hypertable compression:
    • Recommend optimized defaults for segment by and order by when configuring compression through analysis of table configuration and statistics.
    • Added planner support to check more kinds of WHERE conditions before decompression.
      This reduces the number of rows that have to be decompressed.
    • You can now use minmax sparse indexes when you compress columns with btree indexes.
    • Vectorize filters in the WHERE clause that contain text equality operators and LIKE expressions.

Deprecation warning

For self-hosted TimescaleDB v2.15.0 deployments only

After you run ALTER EXTENSION, you must run this SQL script. For more details, see the following pull requests #6797.

Complete list of features

  • #6382 Support for time_bucket with origin and offset in CAggs.
  • #6696 Improve the defaults for compression segment_by and order_by.
  • #6705 Add sparse minmax indexes for compressed columns that have uncompressed btree indexes.
  • #6754 Allow DROP CONSTRAINT on compressed hypertables.
  • #6767 Add metadata table _timestaledb_internal.bgw_job_stat_history for tracking job execution history.
  • #6798 Prevent usage of the deprecated time_bucket_ng in the CAgg definition.
  • #6810 Add telemetry for access methods.
  • #6811 Remove the no longer relevant timescaledb.allow_install_without_preload GUC.
  • #6837 Add migration path for CAggs using time_bucket_ng.
  • #6865 Update the watermark when truncating a CAgg.

Complete list of bugfixes

  • #6617 Fix error in show_chunks.
  • #6621 Remove metadata when dropping chunks.
  • #6677 Fix snapshot usage in CAgg invalidation scanner.
  • #6698 Define meaning of 0 retries for jobs as no retries.
  • #6717 Fix handling of compressed tables with primary or unique index in COPY path.
  • #6726 Fix constify cagg_watermark using window function when querying a CAgg.
  • #6729 Fix NULL start value handling in CAgg refresh.
  • #6732 Fix CAgg migration with custom timezone / date format settings.
  • #6752 Remove custom autovacuum setting from compressed chunks.
  • #6770 Fix plantime chunk exclusion for OSM chunk.
  • #6789 Fix deletes with subqueries and compression.
  • #6796 Fix a crash involving a view on a hypertable.
  • #6797 Fix foreign key constraint handling on compressed hypertables.
  • #6816 Fix handling of chunks with no constraints.
  • #6820 Fix a crash when the ts_hypertable_insert_blocker was called directly.
  • #6849 Use non-orderby compressed metadata in compressed DML.
  • #6867 Clean up compression settings when deleting compressed CAgg.
  • #6869 Fix compressed DML with constraints of form value OP column.
  • #6870 Fix bool expression pushdown for queries on compressed chunks.

Acknowledgments

  • @brasic for reporting a crash when ts_hypertable_insert_blocker was called directly.
  • @bvanelli for reporting an issue with the jobs retry count.
  • @djzurawski for reporting an error about dropping chunks.
  • @Dzuzepppe for reporting the issue that DELETEs using a subquery on compressed chunks was working incorrectly.
  • @hongquan for reporting a 'timestamp out of range' error during CAgg migrations.
  • @kevcenteno for reporting that the show_chunks API returned an incorrect output when 'created_before/created_after' was used with time-partitioned columns.
  • @mahipv for starting working on the job history PR.
  • @rovo89 for reporting that constify cagg_watermark was not working using the window function when querying a CAgg.

2.14.2 (2024-02-20)

20 Feb 09:38
Compare
Choose a tag to compare

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

Bugfixes

  • #6655 Fix segfault in cagg_validate_query
  • #6660 Fix refresh on empty CAgg with variable bucket
  • #6670 Don't try to compress osm chunks

Thanks

  • @kav23alex for reporting a segfault in cagg_validate_query

2.14.1 (2024-02-14)

14 Feb 18:10
Compare
Choose a tag to compare

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

Features

  • #6630 Add views for per chunk compression settings

Bugfixes

  • #6636 Fixes extension update of compressed hypertables with dropped columns
  • #6637 Reset sequence numbers on non-rollup compression
  • #6639 Disable default indexscan for compression
  • #6651 Fix DecompressChunk path generation with per chunk settings

Thanks

  • @anajavi for reporting an issue with extension update of compressed hypertables

2.14.0 (2024-02-08)

08 Feb 15:15
Compare
Choose a tag to compare

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

In addition, it includes these noteworthy features:

  • Ability to change compression settings on existing compressed hypertables at any time.
    New compression settings take effect on any new chunks that are compressed after the change.
  • Reduced locking requirements during chunk recompression
  • Limiting tuple decompression during DML operations to avoid decompressing a lot of tuples and causing storage issues (100k limit, configurable)
  • Helper functions for determining compression settings
  • Plan-time chunk exclusion for real-time Continuous Aggregate by constifying the cagg_watermark function call, leading to faster queries using real-time continuous aggregates

For this release only, you will need to restart the database before running ALTER EXTENSION

Multi-node support removal announcement
Following the deprecation announcement for Multi-node in TimescaleDB 2.13,
Multi-node is no longer supported starting with TimescaleDB 2.14.

TimescaleDB 2.13 is the last version that includes multi-node support. Learn more about it here.

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB, read the
migration documentation.

Deprecation notice: recompress_chunk procedure
TimescaleDB 2.14 is the last version that will include the recompress_chunk procedure. Its
functionality will be replaced by the compress_chunk function, which, starting on TimescaleDB 2.14,
works on both uncompressed and partially compressed chunks.
The compress_chunk function should be used going forward to fully compress all types of chunks or even recompress
old fully compressed chunks using new compression settings (through the newly introduced recompress optional parameter).

Features

  • #6325 Add plan-time chunk exclusion for real-time CAggs
  • #6360 Remove support for creating Continuous Aggregates with old format
  • #6386 Add functions for determining compression defaults
  • #6410 Remove multinode public API
  • #6440 Allow SQLValueFunction pushdown into compressed scan
  • #6463 Support approximate hypertable size
  • #6513 Make compression settings per chunk
  • #6529 Remove reindex_relation from recompression
  • #6531 Fix if_not_exists behavior for CAgg policy with NULL offsets
  • #6545 Remove restrictions for changing compression settings
  • #6566 Limit tuple decompression during DML operations
  • #6579 Change compress_chunk and decompress_chunk to idempotent version by default
  • #6608 Add LWLock for OSM usage in loader
  • #6609 Deprecate recompress_chunk
  • #6609 Add optional recompress argument to compress_chunk

Bugfixes

  • #6541 Inefficient join plans on compressed hypertables.
  • #6491 Enable now() plantime constification with BETWEEN
  • #6494 Fix create_hypertable referenced by fk succeeds
  • #6498 Suboptimal query plans when using time_bucket with query parameters
  • #6507 time_bucket_gapfill with timezones doesn't handle daylight savings
  • #6509 Make extension state available through function
  • #6512 Log extension state changes
  • #6522 Disallow triggers on CAggs
  • #6523 Reduce locking level on compressed chunk index during segmentwise recompression
  • #6531 Fix if_not_exists behavior for CAgg policy with NULL offsets
  • #6571 Fix pathtarget adjustment for MergeAppend paths in aggregation pushdown code
  • #6575 Fix compressed chunk not found during upserts
  • #6592 Fix recompression policy ignoring partially compressed chunks
  • #6610 Ensure qsort comparison function is transitive

Thanks

  • @coney21 and @GStechschulte for reporting the problem with inefficient join plans on compressed hypertables.
  • @HollowMan6 for reporting triggers not working on materialized views of
    CAggs
  • @jbx1 for reporting suboptimal query plans when using time_bucket with query parameters
  • @JerkoNikolic for reporting the issue with gapfill and DST
  • @pdipesh02 for working on removing the old Continuous Aggregate format
  • @raymalt and @martinhale for reporting very slow query plans on realtime CAggs queries

2.13.1 (2024-01-09)

09 Jan 10:24
Compare
Choose a tag to compare

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

Bugfixes

  • #6365 Use numrows_pre_compression in approximate row count
  • #6377 Use processed group clauses in PG16
  • #6384 Change bgw_log_level to use PGC_SUSET
  • #6393 Disable vectorized sum for expressions.
  • #6405 Read CAgg watermark from materialized data
  • #6408 Fix groupby pathkeys for gapfill in PG16
  • #6428 Fix index matching during DML decompression
  • #6439 Fix compressed chunk permission handling on PG16
  • #6443 Fix lost concurrent CAgg updates
  • #6454 Fix unique expression indexes on compressed chunks
  • #6465 Fix use of freed path in decompression sort logic

Thanks

  • @MA-MacDonald for reporting an issue with gapfill in PG16
  • @aarondglover for reporting an issue with unique expression indexes on compressed chunks
  • @adriangb for reporting an issue with security barrier views on pg16