From f8da382c91655fcdf4681ea47b1e33ae92ed73d8 Mon Sep 17 00:00:00 2001 From: Pallavi Sontakke Date: Fri, 20 Sep 2024 14:31:22 +0530 Subject: [PATCH] ## 2.17.0 This release contains performance improvements and bug fixes since the 2.16.1 release. We recommend that you upgrade at the next available opportunity. **Features** * #6882: Allow DELETE on the compressed chunks without decompression. * #7033 Use MERGE statement on CAgg Refresh * #7126: Add functions to show the compression information. * #7147: Vectorize partial aggregation for `sum * #7204: Track additional extensions in telemetry. * #7207: Refactor the `decompress_batches_scan` functions for easier maintenance. * #7209: Add a function to drop the `osm` chunk. **Bugfixes** * #7187: Fix the string literal length for the `compressed_data_info` function. * #7191: Fix creating default indexes on chunks when migrating the data. * #7195: Fix the `segment by` and `order by` checks when dropping a column from a compressed hypertable. * #7201: Use the generic extension description when building `apt` and `rpm` loader packages. * #7227: Add an index to the `compression_chunk_size` catalog table. * #7229: Fix the foreign key constraints where the index and the constraint column order are different. * #7230: Do not propagate the foreign key constraints to the `osm` chunk. * #7234: Release the cache after accessing the cache entry. * #7258 Force English in the pg_config command executed by cmake to avoid unexpected building errors * #7270 Fix memory leak in compressed DML batch filtering **Thanks** * @MiguelTubio for reporting and fixing a Windows build error * @posuch for reporting the misleading extension description in the generic loader packages. --- .unreleased/group_by_segmentby | 1 - .unreleased/pr_6882 | 1 - .unreleased/pr_7033 | 1 - .unreleased/pr_7126 | 1 - .unreleased/pr_7187 | 1 - .unreleased/pr_7191 | 1 - .unreleased/pr_7195 | 1 - .unreleased/pr_7201 | 2 -- .unreleased/pr_7204 | 1 - .unreleased/pr_7207 | 1 - .unreleased/pr_7209 | 1 - .unreleased/pr_7227 | 1 - .unreleased/pr_7229 | 1 - .unreleased/pr_7230 | 1 - .unreleased/pr_7234 | 1 - .unreleased/pr_7258 | 2 -- .unreleased/pr_7270 | 1 - CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ sql/CMakeLists.txt | 8 +++++--- sql/updates/2.16.1--2.17.0.sql | 11 +++++++++++ sql/updates/2.17.0--2.16.1.sql | 3 +++ sql/updates/latest-dev.sql | 11 ----------- sql/updates/reverse-dev.sql | 3 --- version.config | 2 +- 24 files changed, 53 insertions(+), 37 deletions(-) delete mode 100644 .unreleased/group_by_segmentby delete mode 100644 .unreleased/pr_6882 delete mode 100644 .unreleased/pr_7033 delete mode 100644 .unreleased/pr_7126 delete mode 100644 .unreleased/pr_7187 delete mode 100644 .unreleased/pr_7191 delete mode 100644 .unreleased/pr_7195 delete mode 100644 .unreleased/pr_7201 delete mode 100644 .unreleased/pr_7204 delete mode 100644 .unreleased/pr_7207 delete mode 100644 .unreleased/pr_7209 delete mode 100644 .unreleased/pr_7227 delete mode 100644 .unreleased/pr_7229 delete mode 100644 .unreleased/pr_7230 delete mode 100644 .unreleased/pr_7234 delete mode 100644 .unreleased/pr_7258 delete mode 100644 .unreleased/pr_7270 create mode 100644 sql/updates/2.16.1--2.17.0.sql create mode 100644 sql/updates/2.17.0--2.16.1.sql diff --git a/.unreleased/group_by_segmentby b/.unreleased/group_by_segmentby deleted file mode 100644 index 3858940d167..00000000000 --- a/.unreleased/group_by_segmentby +++ /dev/null @@ -1 +0,0 @@ -Implements: #7147: Vectorize partial aggregation for `sum(int4)` with grouping on `segment by` columns. diff --git a/.unreleased/pr_6882 b/.unreleased/pr_6882 deleted file mode 100644 index 1fb4222d433..00000000000 --- a/.unreleased/pr_6882 +++ /dev/null @@ -1 +0,0 @@ -Implements: #6882: Allow DELETE on the compressed chunks without decompression. diff --git a/.unreleased/pr_7033 b/.unreleased/pr_7033 deleted file mode 100644 index 4aae7a76d9c..00000000000 --- a/.unreleased/pr_7033 +++ /dev/null @@ -1 +0,0 @@ -Implements: #7033 Use MERGE statement on CAgg Refresh diff --git a/.unreleased/pr_7126 b/.unreleased/pr_7126 deleted file mode 100644 index 9b6d69ecdf6..00000000000 --- a/.unreleased/pr_7126 +++ /dev/null @@ -1 +0,0 @@ -Implements: #7126: Add functions to show the compression information. diff --git a/.unreleased/pr_7187 b/.unreleased/pr_7187 deleted file mode 100644 index 96052757d86..00000000000 --- a/.unreleased/pr_7187 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7187: Fix the string literal length for the `compressed_data_info` function. diff --git a/.unreleased/pr_7191 b/.unreleased/pr_7191 deleted file mode 100644 index 87c5e23c952..00000000000 --- a/.unreleased/pr_7191 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7191: Fix creating default indexes on chunks when migrating the data. diff --git a/.unreleased/pr_7195 b/.unreleased/pr_7195 deleted file mode 100644 index 752fc195b9b..00000000000 --- a/.unreleased/pr_7195 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7195: Fix the `segment by` and `order by` checks when dropping a column from a compressed hypertable. diff --git a/.unreleased/pr_7201 b/.unreleased/pr_7201 deleted file mode 100644 index b6dcd3599e4..00000000000 --- a/.unreleased/pr_7201 +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: #7201: Use the generic extension description when building `apt` and `rpm` loader packages. -Thanks: @posuch for reporting the misleading extension description in the generic loader packages. diff --git a/.unreleased/pr_7204 b/.unreleased/pr_7204 deleted file mode 100644 index 373de172a55..00000000000 --- a/.unreleased/pr_7204 +++ /dev/null @@ -1 +0,0 @@ -Implements: #7204: Track additional extensions in telemetry. diff --git a/.unreleased/pr_7207 b/.unreleased/pr_7207 deleted file mode 100644 index 151b8f4b524..00000000000 --- a/.unreleased/pr_7207 +++ /dev/null @@ -1 +0,0 @@ -Implements: #7207: Refactor the `decompress_batches_scan` functions for easier maintenance. diff --git a/.unreleased/pr_7209 b/.unreleased/pr_7209 deleted file mode 100644 index 2cffbee100d..00000000000 --- a/.unreleased/pr_7209 +++ /dev/null @@ -1 +0,0 @@ -Implements: #7209: Add a function to drop the `osm` chunk. diff --git a/.unreleased/pr_7227 b/.unreleased/pr_7227 deleted file mode 100644 index aa016c06fca..00000000000 --- a/.unreleased/pr_7227 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7227: Add an index to the `compression_chunk_size` catalog table. diff --git a/.unreleased/pr_7229 b/.unreleased/pr_7229 deleted file mode 100644 index f9801b07d0e..00000000000 --- a/.unreleased/pr_7229 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7229: Fix the foreign key constraints where the index and the constraint column order are different. diff --git a/.unreleased/pr_7230 b/.unreleased/pr_7230 deleted file mode 100644 index e6908018f3b..00000000000 --- a/.unreleased/pr_7230 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7230: Do not propagate the foreign key constraints to the `osm` chunk. diff --git a/.unreleased/pr_7234 b/.unreleased/pr_7234 deleted file mode 100644 index 2b50803977e..00000000000 --- a/.unreleased/pr_7234 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7234: Release the cache after accessing the cache entry. diff --git a/.unreleased/pr_7258 b/.unreleased/pr_7258 deleted file mode 100644 index 79030683c4d..00000000000 --- a/.unreleased/pr_7258 +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: #7258 Force English in the pg_config command executed by cmake to avoid unexpected building errors -Thanks: @MiguelTubio for reporting and fixing a Windows build error diff --git a/.unreleased/pr_7270 b/.unreleased/pr_7270 deleted file mode 100644 index ca437d53bf6..00000000000 --- a/.unreleased/pr_7270 +++ /dev/null @@ -1 +0,0 @@ -Fixes: #7270 Fix memory leak in compressed DML batch filtering diff --git a/CHANGELOG.md b/CHANGELOG.md index b7fe0e2c590..9e7e755436a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,39 @@ `psql` with the `-X` flag to prevent any `.psqlrc` commands from accidentally triggering the load of a previous DB version.** + +## 2.17.0 (2024-09-20) + +This release contains performance improvements and bug fixes since +the 2.16.1 release. We recommend that you upgrade at the next +available opportunity. + + +**Features** +* #6882: Allow DELETE on the compressed chunks without decompression. +* #7033 Use MERGE statement on CAgg Refresh +* #7126: Add functions to show the compression information. +* #7147: Vectorize partial aggregation for `sum(int4)` with grouping on `segment by` columns. +* #7204: Track additional extensions in telemetry. +* #7207: Refactor the `decompress_batches_scan` functions for easier maintenance. +* #7209: Add a function to drop the `osm` chunk. + +**Bugfixes** +* #7187: Fix the string literal length for the `compressed_data_info` function. +* #7191: Fix creating default indexes on chunks when migrating the data. +* #7195: Fix the `segment by` and `order by` checks when dropping a column from a compressed hypertable. +* #7201: Use the generic extension description when building `apt` and `rpm` loader packages. +* #7227: Add an index to the `compression_chunk_size` catalog table. +* #7229: Fix the foreign key constraints where the index and the constraint column order are different. +* #7230: Do not propagate the foreign key constraints to the `osm` chunk. +* #7234: Release the cache after accessing the cache entry. +* #7258 Force English in the pg_config command executed by cmake to avoid unexpected building errors +* #7270 Fix memory leak in compressed DML batch filtering + +**Thanks** +* @MiguelTubio for reporting and fixing a Windows build error +* @posuch for reporting the misleading extension description in the generic loader packages. + ## 2.16.1 (2024-08-06) This release contains bug fixes since the 2.16.0 release. We recommend diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 93f79054a7a..baad98465c6 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -42,11 +42,12 @@ set(MOD_FILES updates/2.15.1--2.15.2.sql updates/2.15.2--2.15.3.sql updates/2.15.3--2.16.0.sql - updates/2.16.0--2.16.1.sql) + updates/2.16.0--2.16.1.sql + updates/2.16.1--2.17.0.sql) # The downgrade file to generate a downgrade script for the current version, as # specified in version.config -set(CURRENT_REV_FILE reverse-dev.sql) +set(CURRENT_REV_FILE 2.17.0--2.16.1.sql) # Files for generating old downgrade scripts. This should only include files for # downgrade from one version to its previous version since we do not support # skipping versions when downgrading. @@ -84,7 +85,8 @@ set(OLD_REV_FILES 2.15.2--2.15.1.sql 2.15.3--2.15.2.sql 2.16.0--2.15.3.sql - 2.16.1--2.16.0.sql) + 2.16.1--2.16.0.sql + 2.17.0--2.16.1.sql) set(MODULE_PATHNAME "$libdir/timescaledb-${PROJECT_VERSION_MOD}") set(LOADER_PATHNAME "$libdir/timescaledb") diff --git a/sql/updates/2.16.1--2.17.0.sql b/sql/updates/2.16.1--2.17.0.sql new file mode 100644 index 00000000000..7a086c6cd1a --- /dev/null +++ b/sql/updates/2.16.1--2.17.0.sql @@ -0,0 +1,11 @@ +CREATE FUNCTION _timescaledb_functions.compressed_data_info(_timescaledb_internal.compressed_data) + RETURNS TABLE (algorithm name, has_nulls bool) + AS '@MODULE_PATHNAME@', 'ts_update_placeholder' + LANGUAGE C STRICT IMMUTABLE SET search_path = pg_catalog, pg_temp; + +CREATE INDEX compression_chunk_size_idx ON _timescaledb_catalog.compression_chunk_size (compressed_chunk_id); + +CREATE FUNCTION _timescaledb_functions.drop_osm_chunk(hypertable REGCLASS) + RETURNS BOOL + AS '@MODULE_PATHNAME@', 'ts_update_placeholder' + LANGUAGE C VOLATILE; diff --git a/sql/updates/2.17.0--2.16.1.sql b/sql/updates/2.17.0--2.16.1.sql new file mode 100644 index 00000000000..daf7d95d38b --- /dev/null +++ b/sql/updates/2.17.0--2.16.1.sql @@ -0,0 +1,3 @@ +DROP FUNCTION _timescaledb_functions.compressed_data_info(_timescaledb_internal.compressed_data); +DROP INDEX _timescaledb_catalog.compression_chunk_size_idx; +DROP FUNCTION IF EXISTS _timescaledb_functions.drop_osm_chunk(REGCLASS); diff --git a/sql/updates/latest-dev.sql b/sql/updates/latest-dev.sql index 7a086c6cd1a..e69de29bb2d 100644 --- a/sql/updates/latest-dev.sql +++ b/sql/updates/latest-dev.sql @@ -1,11 +0,0 @@ -CREATE FUNCTION _timescaledb_functions.compressed_data_info(_timescaledb_internal.compressed_data) - RETURNS TABLE (algorithm name, has_nulls bool) - AS '@MODULE_PATHNAME@', 'ts_update_placeholder' - LANGUAGE C STRICT IMMUTABLE SET search_path = pg_catalog, pg_temp; - -CREATE INDEX compression_chunk_size_idx ON _timescaledb_catalog.compression_chunk_size (compressed_chunk_id); - -CREATE FUNCTION _timescaledb_functions.drop_osm_chunk(hypertable REGCLASS) - RETURNS BOOL - AS '@MODULE_PATHNAME@', 'ts_update_placeholder' - LANGUAGE C VOLATILE; diff --git a/sql/updates/reverse-dev.sql b/sql/updates/reverse-dev.sql index daf7d95d38b..e69de29bb2d 100644 --- a/sql/updates/reverse-dev.sql +++ b/sql/updates/reverse-dev.sql @@ -1,3 +0,0 @@ -DROP FUNCTION _timescaledb_functions.compressed_data_info(_timescaledb_internal.compressed_data); -DROP INDEX _timescaledb_catalog.compression_chunk_size_idx; -DROP FUNCTION IF EXISTS _timescaledb_functions.drop_osm_chunk(REGCLASS); diff --git a/version.config b/version.config index 29576ea3810..f6ed4469910 100644 --- a/version.config +++ b/version.config @@ -1,3 +1,3 @@ -version = 2.17.0-dev +version = 2.17.0 update_from_version = 2.16.1 downgrade_to_version = 2.16.1