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 SkipScan distinct column identification #3345

Merged
merged 3 commits into from Jun 23, 2021
Merged

Fix SkipScan distinct column identification #3345

merged 3 commits into from Jun 23, 2021

Conversation

svenklemm
Copy link
Member

@svenklemm svenklemm commented Jun 19, 2021

The SkipScan code assumed the first entry in PathKeys would match the distinct column. This is not always true as postgres will remove entries from PathKeys it considers constant leading to SkipScan operating on the wrong column under those circumstances. This did most likely not cause any wrong results as the other constraints for SkipScan to apply still had to be satisfied but resulted in very inefficient query execution for those affected
queries.
This patch refactors the SkipScan code to use the distinctClause from the Query instead.

Fixes #3330

Disable-check: commit-count

@svenklemm svenklemm requested a review from a team as a code owner June 19, 2021 23:47
@svenklemm svenklemm requested review from erimatnor, mfundul and gayyappan and removed request for a team June 19, 2021 23:48
@codecov
Copy link

codecov bot commented Jun 20, 2021

Codecov Report

Merging #3345 (a1986b3) into master (33dfdcf) will decrease coverage by 0.00%.
The diff coverage is 92.85%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3345      +/-   ##
==========================================
- Coverage   90.61%   90.60%   -0.01%     
==========================================
  Files         212      212              
  Lines       35588    35616      +28     
==========================================
+ Hits        32248    32271      +23     
- Misses       3340     3345       +5     
Impacted Files Coverage Δ
src/compat.h 100.00% <ø> (ø)
tsl/src/nodes/skip_scan/planner.c 95.51% <92.18%> (+0.09%) ⬆️
src/func_cache.c 91.01% <100.00%> (ø)
src/hypertable_compression.c 96.26% <100.00%> (+0.03%) ⬆️
src/nodes/chunk_insert_state.c 98.00% <100.00%> (ø)
src/loader/bgw_launcher.c 89.47% <0.00%> (-2.48%) ⬇️
tsl/src/nodes/data_node_dispatch.c 97.08% <0.00%> (-0.25%) ⬇️
tsl/src/nodes/skip_scan/exec.c 96.12% <0.00%> (+0.77%) ⬆️
src/loader/bgw_message_queue.c 88.15% <0.00%> (+2.63%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7b67f72...a1986b3. Read the comment docs.

@svenklemm svenklemm force-pushed the skipscan_fix branch 3 times, most recently from a37c7b1 to 8f990d7 Compare June 20, 2021 06:17
@svenklemm svenklemm self-assigned this Jun 20, 2021
@svenklemm svenklemm added the bug label Jun 20, 2021
@svenklemm svenklemm requested a review from mkindahl June 21, 2021 05:08
@svenklemm svenklemm changed the title Fix SkipScan distinct column detection Fix SkipScan distinct column identification Jun 21, 2021
Copy link
Contributor

@mkindahl mkindahl left a comment

Choose a reason for hiding this comment

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

LGTM. Please check the comments.

tsl/src/nodes/skip_scan/planner.c Outdated Show resolved Hide resolved
tsl/src/nodes/skip_scan/planner.c Outdated Show resolved Hide resolved
@svenklemm svenklemm force-pushed the skipscan_fix branch 5 times, most recently from bd3d37f to dfd28e1 Compare June 22, 2021 20:21
PG13 removes the msg parameter for convert_tuples_by_name so this
patch provides a compatibility macro that abstracts the version
differences away.
Copy link
Contributor

@gayyappan gayyappan left a comment

Choose a reason for hiding this comment

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

LGTM. Minor comments about names

tsl/src/nodes/skip_scan/planner.c Outdated Show resolved Hide resolved
@@ -83,7 +90,7 @@ skip_scan_plan_create(PlannerInfo *root, RelOptInfo *relopt, CustomPath *best_pa
CustomScan *skip_plan = makeNode(CustomScan);
IndexPath *index_path = path->index_path;

OpExpr *op = fix_indexqual(index_path->indexinfo, path->skip_clause, path->distinct_column);
OpExpr *op = fix_indexqual(index_path->indexinfo, path->skip_clause, path->table_attno);
Copy link
Contributor

Choose a reason for hiding this comment

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

path->index_attno instead of path->table_attno here after mod to fix_indexqual?

{
/* technically our placeholder col > NULL is unsatisfiable, and in some instances
* the planner will realize this and use is as an excuse to remove other quals.
* in order to prevent this, we prepare this qual ourselves.
*/

/* fix_indexqual_references */
int indexcol = get_idx_key(index, distinct_column);
int indexcol = get_idx_key(index, table_attno);
Copy link
Contributor

Choose a reason for hiding this comment

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

could pass the index_attno directly instead of lookup here. Don't see table_attno being used.

The SkipScan code assumed the first entry in PathKeys would match
the distinct column. This is not always true as postgres will remove
entries from PathKeys it considers constant leading to SkipScan
operating on the wrong column under those circumstances.
This did most likely not cause any wrong results as the other
constraints for SkipScan to apply still had to be satisfied but
resulted in very inefficient query execution for those affected
queries.
This patch refactors the SkipScan code to use the distinctClause
from the Query instead.

Fixes #3330
Remove the chunk name completely from output as the name might have
different length leading to different output as table headers are
adjusted to the length of the field values.
@svenklemm svenklemm deleted the skipscan_fix branch June 24, 2021 09:58
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
@mkindahl mkindahl mentioned this pull request Jul 1, 2021
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 1, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit that referenced this pull request Jul 2, 2021
**Bugfixes**
* #3279 Add some more randomness to chunk assignment
* #3288 Fix failed update with parallel workers
* #3300 Improve trigger handling on distributed hypertables
* #3304 Remove paths that reference parent relids for compressed chunks
* #3305 Fix pull_varnos miscomputation of relids set
* #3310 Generate downgrade script
* #3314 Fix heap buffer overflow in hypertable expansion
* #3317 Fix heap buffer overflow in remote connection cache.
* #3327 Make aggregate in caggs fully qualified
* #3327 Make aggregates in caggs fully qualified
* #3336 Fix pg_init_privs objsubid handling
* #3345 Fix SkipScan distinct column identification
* #3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* #3367 Improve DecompressChunk qual pushdown
* #3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 2, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 2, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 2, 2021
**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 2, 2021
This maintenance release contains bugfixes since the 2.3.0 release. We
deem it moderate priority for upgrading.

**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 5, 2021
This maintenance release contains bugfixes since the 2.3.0 release. We
deem it moderate priority for upgrading.

**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 5, 2021
This maintenance release contains bugfixes since the 2.3.0 release. We
deem it moderate priority for upgrading. The release introduces the
possibility of generating downgrade scripts, improves the trigger
handling for distributed hypertables, adds some more randomness to
chunk assignment to avoid thundering herd issues in chunk assignment,
and fixes some issues in update handling as well as some other bugs.

**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Jul 5, 2021
This maintenance release contains bugfixes since the 2.3.0 release. We
deem it moderate priority for upgrading. The release introduces the
possibility of generating downgrade scripts, improves the trigger
handling for distributed hypertables, adds some more randomness to
chunk assignment to avoid thundering herd issues in chunk assignment,
and fixes some issues in update handling as well as some other bugs.

**Bugfixes**
* timescale#3279 Add some more randomness to chunk assignment
* timescale#3288 Fix failed update with parallel workers
* timescale#3300 Improve trigger handling on distributed hypertables
* timescale#3304 Remove paths that reference parent relids for compressed chunks
* timescale#3305 Fix pull_varnos miscomputation of relids set
* timescale#3310 Generate downgrade script
* timescale#3314 Fix heap buffer overflow in hypertable expansion
* timescale#3317 Fix heap buffer overflow in remote connection cache.
* timescale#3327 Make aggregate in caggs fully qualified
* timescale#3327 Make aggregates in caggs fully qualified
* timescale#3336 Fix pg_init_privs objsubid handling
* timescale#3345 Fix SkipScan distinct column identification
* timescale#3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* timescale#3367 Improve DecompressChunk qual pushdown
* timescale#3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
mkindahl added a commit that referenced this pull request Jul 6, 2021
This maintenance release contains bugfixes since the 2.3.0 release. We
deem it moderate priority for upgrading. The release introduces the
possibility of generating downgrade scripts, improves the trigger
handling for distributed hypertables, adds some more randomness to
chunk assignment to avoid thundering herd issues in chunk assignment,
and fixes some issues in update handling as well as some other bugs.

**Bugfixes**
* #3279 Add some more randomness to chunk assignment
* #3288 Fix failed update with parallel workers
* #3300 Improve trigger handling on distributed hypertables
* #3304 Remove paths that reference parent relids for compressed chunks
* #3305 Fix pull_varnos miscomputation of relids set
* #3310 Generate downgrade script
* #3314 Fix heap buffer overflow in hypertable expansion
* #3317 Fix heap buffer overflow in remote connection cache.
* #3327 Make aggregate in caggs fully qualified
* #3327 Make aggregates in caggs fully qualified
* #3336 Fix pg_init_privs objsubid handling
* #3345 Fix SkipScan distinct column identification
* #3355 Fix heap buffer overflow when renaming compressed hypertable columns.
* #3367 Improve DecompressChunk qual pushdown
* #3377 Fix bad use of repalloc

**Thanks**
* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw
* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path
* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script
* @fvannee for reporting a performance regression with SkipScan
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Performance regression with skip scan enabled
4 participants