Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix index inserts during decompression #6222

Merged
merged 1 commit into from
Oct 24, 2023

Conversation

konskov
Copy link
Contributor

@konskov konskov commented Oct 20, 2023

Since version 2.11.0 we would get a segmentation fault during
decompression when there was an expressional or partial index on the
uncompressed chunk.
This patch fixes this by calling ExecInsertIndexTuples to insert into
indexes during chunk decompression, instead of CatalogIndexInsert.

In addition, when enabling compression on a hypertable, we check the
unique indexes defined on it to provide performance improvement hints
in case the unique index columns are not specified as compression
parameters.
However this check threw an error when expression columns were present
in the index, preventing the user from enabling compression.
This patch fixes this by simply ignoring the expression columns in the
index, since we cannot currently segment by an expression.

Fixes #6205, #6186

@codecov
Copy link

codecov bot commented Oct 20, 2023

Codecov Report

Merging #6222 (708c392) into main (7797c41) will decrease coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #6222      +/-   ##
==========================================
- Coverage   65.11%   65.09%   -0.03%     
==========================================
  Files         246      246              
  Lines       56957    56973      +16     
  Branches    12621    12623       +2     
==========================================
- Hits        37086    37085       -1     
+ Misses      18026    18013      -13     
- Partials     1845     1875      +30     
Files Coverage Δ
tsl/src/compression/api.c 88.15% <100.00%> (+0.01%) ⬆️
tsl/src/compression/compression.c 91.70% <100.00%> (+0.07%) ⬆️
tsl/src/compression/compression.h 40.00% <ø> (ø)
tsl/src/compression/create.c 92.76% <100.00%> (-0.15%) ⬇️

... and 61 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@konskov konskov force-pushed the indexes_support_compressed branch from 543cae4 to 2bb7b3b Compare October 20, 2023 14:50
@konskov konskov marked this pull request as ready for review October 20, 2023 14:54
@github-actions github-actions bot requested review from erimatnor and mahipv October 20, 2023 14:55
@github-actions
Copy link

@mahipv, @erimatnor: please review this pull request.

Powered by pull-review

@konskov konskov changed the title Indexes support compressed Fix index inserts during decompression Oct 23, 2023
@konskov konskov force-pushed the indexes_support_compressed branch 2 times, most recently from c85ae21 to 3342cbb Compare October 23, 2023 07:36
@@ -1590,7 +1590,33 @@ row_decompressor_decompress_row(RowDecompressor *decompressor, Tuplesortstate *t
0 /*=options*/,
decompressor->bistate);

ts_catalog_index_insert(decompressor->indexstate, decompressed_tuple);
EState *estate = CreateExecutorState();
Copy link
Contributor

Choose a reason for hiding this comment

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

If there is any possibility, I would like it if we could avoid creating the estate for every index insertion. Maybe caching it on the decompressor level and reusing is the way to go.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I made some changes wrt this, now we cache the estate in the decompressor.

@konskov konskov force-pushed the indexes_support_compressed branch from b8d8e8b to 907d7c8 Compare October 23, 2023 11:58
@konskov konskov requested a review from antekresic October 23, 2023 12:43
Copy link
Contributor

@antekresic antekresic left a comment

Choose a reason for hiding this comment

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

LGTM 👍

@@ -2107,6 +2131,7 @@ decompress_batches_for_insert(ChunkInsertState *cis, Chunk *chunk, TupleTableSlo
table_endscan(heapScan);

ts_catalog_close_indexes(decompressor.indexstate);
FreeExecutorState(decompressor.estate);
Copy link
Contributor

Choose a reason for hiding this comment

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

Out of scope for this PR: we should create a decompressor finisher/closer function, seems like we have some management at the end of its lifecycle.

Since version 2.11.0 we would get a segmentation fault during
decompression when there was an expressional or partial index on the
uncompressed chunk.
This patch fixes this by calling ExecInsertIndexTuples to insert into
indexes during chunk decompression, instead of CatalogIndexInsert.

In addition, when enabling compression on a hypertable, we check the
unique indexes defined on it to provide performance improvement hints
in case the unique index columns are not specified as compression
parameters.
However this check threw an error when expression columns were present
in the index, preventing the user from enabling compression.
This patch fixes this by simply ignoring the expression columns in the
index, since we cannot currently segment by an expression.

Fixes timescale#6205, timescale#6186
@konskov konskov force-pushed the indexes_support_compressed branch from 907d7c8 to 708c392 Compare October 24, 2023 12:48
@konskov konskov merged commit 7b7722e into timescale:main Oct 24, 2023
36 checks passed
@timescale-automation
Copy link

Automated backport to 2.12.x not done: cherry-pick failed.

Git status

HEAD detached at origin/2.12.x
You are currently cherry-picking commit 7b7722e24.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	new file:   .unreleased/PR_6222
	modified:   tsl/src/compression/api.c
	modified:   tsl/src/compression/compression.h
	modified:   tsl/src/compression/create.c
	modified:   tsl/test/expected/compression_ddl.out
	modified:   tsl/test/sql/compression_ddl.sql

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   tsl/src/compression/compression.c


Job log

@timescale-automation timescale-automation added the auto-backport-not-done Automated backport of this PR has failed non-retriably (e.g. conflicts) label Oct 24, 2023
@jnidzwetzki jnidzwetzki mentioned this pull request Nov 23, 2023
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 23, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**

TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**Starting from TimescaleDB 2.13.0:**

* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 23, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**

TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**Starting from TimescaleDB 2.13.0:**

* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns
* timescale#6339 Fix tablespace with constraints
* timescale#6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 27, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**

TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**Starting from TimescaleDB 2.13.0:**

* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns
* timescale#6339 Fix tablespace with constraints
* timescale#6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 27, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**

TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**PostgreSQL 13 deprecation announcement**
We will continue supporting PostgreSQL 13 until April 2024. Sooner to that time, we will
announce the specific version of TimescaleDB in which PostgreSQL 13 support will not be
included going forward.

**Starting from TimescaleDB 2.13.0:**

* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns
* timescale#6339 Fix tablespace with constraints
* timescale#6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 27, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**
TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**PostgreSQL 13 deprecation announcement**
We will continue supporting PostgreSQL 13 until April 2024. Sooner to that time, we will
announce the specific version of TimescaleDB in which PostgreSQL 13 support will not be
included going forward.

**Starting from TimescaleDB 2.13.0:**
* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns
* timescale#6339 Fix tablespace with constraints
* timescale#6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 27, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**
TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**PostgreSQL 13 deprecation announcement**
We will continue supporting PostgreSQL 13 until April 2024. Sooner to that time, we will
announce the specific version of TimescaleDB in which PostgreSQL 13 support will not be
included going forward.

**Starting from TimescaleDB 2.13.0**
* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns
* timescale#6339 Fix tablespace with constraints
* timescale#6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 27, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**
TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**PostgreSQL 13 deprecation announcement**
We will continue supporting PostgreSQL 13 until April 2024. Sooner to that time, we will
announce the specific version of TimescaleDB in which PostgreSQL 13 support will not be
included going forward.

**Starting from TimescaleDB 2.13.0**
* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns
* timescale#6339 Fix tablespace with constraints
* timescale#6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit that referenced this pull request Nov 27, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**
TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**PostgreSQL 13 deprecation announcement**
We will continue supporting PostgreSQL 13 until April 2024. Sooner to that time, we will
announce the specific version of TimescaleDB in which PostgreSQL 13 support will not be
included going forward.

**Starting from TimescaleDB 2.13.0**
* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* #5575 Add chunk-wise sorted paths for compressed chunks
* #5761 Simplify hypertable DDL API
* #5890 Reduce WAL activity by freezing compressed tuples immediately
* #6050 Vectorized aggregation execution for sum()
* #6062 Add metadata for chunk creation time
* #6077 Make Continous Aggregates materialized only (non-realtime) by default
* #6177 Change show_chunks/drop_chunks using chunk creation time
* #6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* #6185 Keep track of catalog version
* #6227 Use creation time in retention/compression policy
* #6307 Add SQL function cagg_validate_query

**Bugfixes**
* #6188 Add GUC for setting background worker log level
* #6222 Allow enabling compression on hypertable with unique expression index
* #6240 Check if worker registration succeeded
* #6254 Fix exception detail passing in compression_policy_execute
* #6264 Fix missing bms_del_member result assignment
* #6275 Fix negative bitmapset member not allowed in compression
* #6280 Potential data loss when compressing a table with a partial index that matches compression order.
* #6289 Add support for startup chunk exclusion with aggs
* #6290 Repair relacl on upgrade
* #6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* #6305 Make timescaledb_functions.makeaclitem strict
* #6332 Fix typmod and collation for segmentby columns
* #6339 Fix tablespace with constraints
* #6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit to jnidzwetzki/timescaledb that referenced this pull request Nov 27, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**
TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**PostgreSQL 13 deprecation announcement**
We will continue supporting PostgreSQL 13 until April 2024. Sooner to that time, we will
announce the specific version of TimescaleDB in which PostgreSQL 13 support will not be
included going forward.

**Starting from TimescaleDB 2.13.0**
* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* timescale#5575 Add chunk-wise sorted paths for compressed chunks
* timescale#5761 Simplify hypertable DDL API
* timescale#5890 Reduce WAL activity by freezing compressed tuples immediately
* timescale#6050 Vectorized aggregation execution for sum()
* timescale#6062 Add metadata for chunk creation time
* timescale#6077 Make Continous Aggregates materialized only (non-realtime) by default
* timescale#6177 Change show_chunks/drop_chunks using chunk creation time
* timescale#6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* timescale#6185 Keep track of catalog version
* timescale#6227 Use creation time in retention/compression policy
* timescale#6307 Add SQL function cagg_validate_query

**Bugfixes**
* timescale#6188 Add GUC for setting background worker log level
* timescale#6222 Allow enabling compression on hypertable with unique expression index
* timescale#6240 Check if worker registration succeeded
* timescale#6254 Fix exception detail passing in compression_policy_execute
* timescale#6264 Fix missing bms_del_member result assignment
* timescale#6275 Fix negative bitmapset member not allowed in compression
* timescale#6280 Potential data loss when compressing a table with a partial index that matches compression order.
* timescale#6289 Add support for startup chunk exclusion with aggs
* timescale#6290 Repair relacl on upgrade
* timescale#6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* timescale#6305 Make timescaledb_functions.makeaclitem strict
* timescale#6332 Fix typmod and collation for segmentby columns
* timescale#6339 Fix tablespace with constraints
* timescale#6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
jnidzwetzki added a commit that referenced this pull request Nov 28, 2023
This release contains performance improvements, an improved hypertable DDL API
and bug fixes since the 2.12.2 release. We recommend that you upgrade at the next
available opportunity.

In addition, it includes these noteworthy features:

* Full PostgreSQL 16 support for all existing features
* Vectorized aggregation execution for sum()
* Track chunk creation time used in retention/compression policies

**Deprecation notice: Multi-node support**
TimescaleDB 2.13 is the last version that will include multi-node support. Multi-node
support in 2.13 is available for PostgreSQL 13, 14 and 15. Learn more about it
[here](docs/MultiNodeDeprecation.md).

If you want to migrate from multi-node TimescaleDB to single-node TimescaleDB read the
[migration documentation](https://docs.timescale.com/migrate/latest/multi-node-to-timescale-service/).

**PostgreSQL 13 deprecation announcement**
We will continue supporting PostgreSQL 13 until April 2024. Sooner to that time, we will
announce the specific version of TimescaleDB in which PostgreSQL 13 support will not be
included going forward.

**Starting from TimescaleDB 2.13.0**
* No Amazon Machine Images (AMI) are published. If you previously used AMI, please
use another [installation method](https://docs.timescale.com/self-hosted/latest/install/)
* Continuous Aggregates are materialized only (non-realtime) by default

**Features**
* #5575 Add chunk-wise sorted paths for compressed chunks
* #5761 Simplify hypertable DDL API
* #5890 Reduce WAL activity by freezing compressed tuples immediately
* #6050 Vectorized aggregation execution for sum()
* #6062 Add metadata for chunk creation time
* #6077 Make Continous Aggregates materialized only (non-realtime) by default
* #6177 Change show_chunks/drop_chunks using chunk creation time
* #6178 Show batches/tuples decompressed during DML operations in EXPLAIN output
* #6185 Keep track of catalog version
* #6227 Use creation time in retention/compression policy
* #6307 Add SQL function cagg_validate_query

**Bugfixes**
* #6188 Add GUC for setting background worker log level
* #6222 Allow enabling compression on hypertable with unique expression index
* #6240 Check if worker registration succeeded
* #6254 Fix exception detail passing in compression_policy_execute
* #6264 Fix missing bms_del_member result assignment
* #6275 Fix negative bitmapset member not allowed in compression
* #6280 Potential data loss when compressing a table with a partial index that matches compression order.
* #6289 Add support for startup chunk exclusion with aggs
* #6290 Repair relacl on upgrade
* #6297 Fix segfault when creating a cagg using a NULL width in time bucket function
* #6305 Make timescaledb_functions.makeaclitem strict
* #6332 Fix typmod and collation for segmentby columns
* #6339 Fix tablespace with constraints
* #6343 Enable segmentwise recompression in compression policy

**Thanks**
* @fetchezar for reporting an issue with compression policy error messages
* @jflambert for reporting the background worker log level issue
* @torazem for reporting an issue with compression and large oids
* @fetchezar for reporting an issue in the compression policy
* @lyp-bobi for reporting an issue with tablespace with constraints
* @pdipesh02 for contributing to the implementation of the metadata for chunk creation time,
             the generalized hypertable API, and show_chunks/drop_chunks using chunk creation time
* @lkshminarayanan for all his work on PG16 support
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-backport-not-done Automated backport of this PR has failed non-retriably (e.g. conflicts)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Error enabling compression on hypertable with unique expression index
4 participants