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

Use %u to format Oid instead of %d #3112

Merged
merged 1 commit into from Apr 14, 2021
Merged

Use %u to format Oid instead of %d #3112

merged 1 commit into from Apr 14, 2021

Conversation

svenklemm
Copy link
Member

Since Oid is unsigned int we have to use %u to print it otherwise
oids >= 2^31 will not work correctly.

@svenklemm svenklemm requested a review from a team as a code owner April 13, 2021 09:49
@svenklemm svenklemm requested review from erimatnor, k-rus, gayyappan, mfundul and mkindahl and removed request for a team April 13, 2021 09:49
@svenklemm svenklemm force-pushed the oid_format branch 3 times, most recently from 573e8ac to 42df53b Compare April 13, 2021 14:36
aggref->aggfnoid,
sort_oid);
"Can't resolve sort operator oid for function \"%s\" and type \"%s\"",
format_procedure(aggref->aggfnoid),
Copy link
Contributor

Choose a reason for hiding this comment

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

The result is supposed to be a palloced string. Should we maybe explicitly deallocate this or is this a non issue with the current memory context?

Copy link
Member Author

Choose a reason for hiding this comment

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

It is a non-issue. All those allocations are on error pathes meaning the memory context will be reset anyway.

Copy link
Contributor

Choose a reason for hiding this comment

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

I guess in many cases, errors return numerical OIDs because the reason for the error was that some of those OIDs didn't correspond to actual types or objects. So, I am wondering if it is a good idea in general to turn lots of error calls into format_... instead of printing numerical values. I think in case of format_procedure it is handled by that function, but is this always the case?

This is the reason why cache lookup failures print something like:

cache lookup failed for attribute %d of relation %u

since the whole reason for the cache lookup failure likely was that the relation or attribute didn't exist.

Copy link
Member Author

Choose a reason for hiding this comment

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

actually most of these errors are around datatypes not supported with our functions not about general bogus type ids. e.g. time_bucket with decimal or with domains/custom types

@svenklemm svenklemm self-assigned this Apr 13, 2021
@@ -442,7 +443,9 @@ dimension_values_create_from_array(Const *c, bool user_or)
/* it's an array type, lets get the base element type */
base_el_type = get_element_type(c->consttype);
if (base_el_type == InvalidOid)
elog(ERROR, "Couldn't get base element type from array type: %d", c->consttype);
elog(ERROR,
"Couldn't get base element type from array type: \"%s\"",
Copy link
Contributor

Choose a reason for hiding this comment

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

This change and error doesn't make sense because the type was determined to be InvalidOid so there is no string representation available. Neither is there any point in printing the OID number. Might as well fix this error string to be conformant as well:

Suggested change
"Couldn't get base element type from array type: \"%s\"",
"invalid base element type for array type \"%s\"",

Still, it is not clear to me this error is even possible. Is it possible to have an array type of invalid types? This should probably be an assertion if anything.

Copy link
Member Author

Choose a reason for hiding this comment

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

in theory yes, array types have their own type id and they could have the type of the array elements be something invalid

@@ -453,7 +453,7 @@ compress_chunk_populate_sort_info_for_column(Oid table, const ColumnCompressionI

tp = SearchSysCacheAttName(table, NameStr(column->attname));
if (!HeapTupleIsValid(tp))
elog(ERROR, "table %d does not have column \"%s\"", table, NameStr(column->attname));
elog(ERROR, "table %u does not have column \"%s\"", table, NameStr(column->attname));
Copy link
Contributor

Choose a reason for hiding this comment

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

I find it a bit strange to print the column name but not the table name. Cache lookup errors are normally formatted similar to:

cache lookup failed for attribute %d of relation %u

because the reason for the cache lookup is often that either the relation does not exist or the attribute doesn't. I think we should use a similar message for this case.

Otherwise, if we know that the table is valid we should print the table name as well.

Copy link
Member Author

Choose a reason for hiding this comment

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

the table is valid at this point

tsl/src/compression/compression.c Outdated Show resolved Hide resolved
src/plan_agg_bookend.c Outdated Show resolved Hide resolved
aggref->aggfnoid,
sort_oid);
"Can't resolve sort operator oid for function \"%s\" and type \"%s\"",
format_procedure(aggref->aggfnoid),
Copy link
Contributor

Choose a reason for hiding this comment

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

I guess in many cases, errors return numerical OIDs because the reason for the error was that some of those OIDs didn't correspond to actual types or objects. So, I am wondering if it is a good idea in general to turn lots of error calls into format_... instead of printing numerical values. I think in case of format_procedure it is handled by that function, but is this always the case?

This is the reason why cache lookup failures print something like:

cache lookup failed for attribute %d of relation %u

since the whole reason for the cache lookup failure likely was that the relation or attribute didn't exist.

src/time_bucket.c Show resolved Hide resolved
src/utils.c Show resolved Hide resolved
@svenklemm svenklemm force-pushed the oid_format branch 5 times, most recently from 8c54c9a to a80dfcd Compare April 14, 2021 18:08
@codecov
Copy link

codecov bot commented Apr 14, 2021

Codecov Report

Merging #3112 (0eb37d5) into master (796bf3e) will increase coverage by 0.12%.
The diff coverage is 5.55%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3112      +/-   ##
==========================================
+ Coverage   90.16%   90.29%   +0.12%     
==========================================
  Files         215      215              
  Lines       35304    35254      -50     
==========================================
  Hits        31833    31833              
+ Misses       3471     3421      -50     
Impacted Files Coverage Δ
src/hypertable_restrict_info.c 95.58% <0.00%> (ø)
src/plan_agg_bookend.c 92.30% <ø> (ø)
src/time_bucket.c 96.93% <0.00%> (ø)
src/utils.c 78.93% <0.00%> (ø)
tsl/src/bgw_policy/job_api.c 97.43% <ø> (ø)
tsl/src/compression/compression.c 95.23% <0.00%> (ø)
tsl/src/compression/create.c 95.89% <0.00%> (ø)
tsl/src/compression/deltadelta.c 95.58% <0.00%> (ø)
tsl/src/compression/gorilla.c 91.50% <0.00%> (ø)
tsl/src/continuous_aggs/create.c 96.89% <0.00%> (ø)
... and 3 more

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 796bf3e...0eb37d5. Read the comment docs.

Since Oid is unsigned int we have to use %u to print it otherwise
oids >= 2^31 will not work correctly. This also switches the places
that print type oid to use format helper functions to resolve the
oids.
@svenklemm svenklemm merged commit d26c744 into master Apr 14, 2021
@svenklemm svenklemm deleted the oid_format branch April 14, 2021 19:14
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Apr 28, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release adds support for Skip Scan on multinode by enabling the
pushdown of `DISTINCT` to data nodes and also fixes a number of bugs
in the implementation of Skip Scan.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on DELETE
* timescale#3155 Inherit CFLAGS from PostgreSQL
* timescale#3109 Copy recreated object permissions on update
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3102 Fix REINDEX TABLE for distributed hypertables
* timescale#3118 Fix use after free in cache
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
@mkindahl mkindahl mentioned this pull request Apr 28, 2021
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Apr 28, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release adds support for Skip Scan on multinode by enabling the
pushdown of `DISTINCT` to data nodes and also fixes a number of bugs
in the implementation of Skip Scan.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on DELETE
* timescale#3155 Inherit CFLAGS from PostgreSQL
* timescale#3109 Copy recreated object permissions on update
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3102 Fix REINDEX TABLE for distributed hypertables
* timescale#3118 Fix use after free in cache
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Apr 29, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release adds support for Skip Scan on multinode by enabling the
pushdown of `DISTINCT` to data nodes and also fixes a number of bugs
in the implementation of Skip Scan.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on DELETE
* timescale#3155 Inherit CFLAGS from PostgreSQL
* timescale#3109 Copy recreated object permissions on update
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3102 Fix REINDEX TABLE for distributed hypertables
* timescale#3118 Fix use after free in cache
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Apr 29, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release adds support for Skip Scan on multinode by enabling the
pushdown of `DISTINCT` to data nodes and also fixes a number of bugs
in the implementation of Skip Scan.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on DELETE
* timescale#3155 Inherit CFLAGS from PostgreSQL
* timescale#3109 Copy recreated object permissions on update
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3102 Fix REINDEX TABLE for distributed hypertables
* timescale#3118 Fix use after free in cache
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request Apr 30, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release adds support for Skip Scan on multinode by enabling the
pushdown of `DISTINCT` to data nodes and also fixes a number of bugs
in the implementation of Skip Scan.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on DELETE
* timescale#3155 Inherit CFLAGS from PostgreSQL
* timescale#3109 Copy recreated object permissions on update
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3102 Fix REINDEX TABLE for distributed hypertables
* timescale#3118 Fix use after free in cache
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request May 3, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release extends Skip Scan to multinode by enabling the pushdown
of `DISTINCT` to data nodes. It also fixes a number of bugs in the
implementation of Skip Scan.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip
  Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3102 Fix `REINDEX TABLE` for distributed hypertables
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3109 Copy recreated object permissions on update
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3118 Fix use after free in cache
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on `DELETE`
* timescale#3155 Inherit `CFLAGS` from PostgreSQL
* timescale#3169 Fix incorrect type cast in compression policy

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with
  multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
* @nathanloisel for reporting an issue with compression on hypertables
  with integer-based timestamps
* @xin-hedera for fixing an issue with compression on hypertables with
  integer-based timestamps
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request May 3, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release extends Skip Scan to multinode by enabling the pushdown
of `DISTINCT` to data nodes. It also fixes a number of bugs in the
implementation of Skip Scan.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip
  Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3102 Fix `REINDEX TABLE` for distributed hypertables
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3109 Copy recreated object permissions on update
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3118 Fix use after free in cache
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on `DELETE`
* timescale#3155 Inherit `CFLAGS` from PostgreSQL
* timescale#3169 Fix incorrect type cast in compression policy

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with
  multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
* @nathanloisel for reporting an issue with compression on hypertables
  with integer-based timestamps
* @xin-hedera for fixing an issue with compression on hypertables with
  integer-based timestamps
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request May 4, 2021
This maintenance release contains bugfixes since the 2.1.0 release. We
deem it high priority for upgrading.

This release extends Skip Scan to multinode by enabling the pushdown
of `DISTINCT` to data nodes. It also fixes a number of bugs in the
implementation of Skip Scan, in distributed hypertables, in creation
of indexes, in compression, and in policies.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip
  Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3102 Fix `REINDEX TABLE` for distributed hypertables
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3109 Copy recreated object permissions on update
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3118 Fix use after free in cache
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries with
  expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on `DELETE`
* timescale#3155 Inherit `CFLAGS` from PostgreSQL
* timescale#3169 Fix incorrect type cast in compression policy

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with
  multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
* @nathanloisel for reporting an issue with compression on hypertables
  with integer-based timestamps
* @xin-hedera for fixing an issue with compression on hypertables with
  integer-based timestamps
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request May 4, 2021
This maintenance release contains bugfixes since the 2.2.0 release. We
deem it high priority for upgrading.

This release extends Skip Scan to multinode by enabling the pushdown
of `DISTINCT` to data nodes. It also fixes a number of bugs in the
implementation of Skip Scan, in distributed hypertables, in creation
of indexes, in compression, and in policies.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip
  Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3102 Fix `REINDEX TABLE` for distributed hypertables
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3109 Copy recreated object permissions on update
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3118 Fix use after free in cache
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries
  with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on `DELETE`
* timescale#3155 Inherit `CFLAGS` from PostgreSQL
* timescale#3169 Fix incorrect type cast in compression policy
* timescale#3183 Fix segfault in calculate_chunk_interval
* timescale#3185 Fix wrong datatype in integer based retention policy

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with
  multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
* @nathanloisel for reporting an issue with compression on hypertables
  with integer-based timestamps
* @xin-hedera for fixing an issue with compression on hypertables with
  integer-based timestamps
mkindahl added a commit that referenced this pull request May 5, 2021
This maintenance release contains bugfixes since the 2.2.0 release. We
deem it high priority for upgrading.

This release extends Skip Scan to multinode by enabling the pushdown
of `DISTINCT` to data nodes. It also fixes a number of bugs in the
implementation of Skip Scan, in distributed hypertables, in creation
of indexes, in compression, and in policies.

**Features**
* #3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip
  Scan

**Bugfixes**
* #3101 Use commit date in `get_git_commit()`
* #3102 Fix `REINDEX TABLE` for distributed hypertables
* #3104 Fix use after free in `add_reorder_policy`
* #3106 Fix use after free in `chunk_api_get_chunk_stats`
* #3109 Copy recreated object permissions on update
* #3111 Fix `CMAKE_BUILD_TYPE` check
* #3112 Use `%u` to format Oid instead of `%d`
* #3118 Fix use after free in cache
* #3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* #3135 Fix SkipScan path generation in `DISTINCT` queries
  with expressions
* #3146 Fix SkipScan for IndexPaths without pathkeys
* #3147 Skip ChunkAppend if AppendPath has no children
* #3148 Make `SELECT DISTINCT` handle non-var targetlists
* #3151 Fix `fdw_relinfo_get` assertion failure on `DELETE`
* #3155 Inherit `CFLAGS` from PostgreSQL
* #3169 Fix incorrect type cast in compression policy
* #3183 Fix segfault in calculate_chunk_interval
* #3185 Fix wrong datatype in integer based retention policy

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with
  multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
* @nathanloisel for reporting an issue with compression on hypertables
  with integer-based timestamps
* @xin-hedera for fixing an issue with compression on hypertables with
  integer-based timestamps
mkindahl added a commit to mkindahl/timescaledb that referenced this pull request May 5, 2021
This maintenance release contains bugfixes since the 2.2.0 release. We
deem it high priority for upgrading.

This release extends Skip Scan to multinode by enabling the pushdown
of `DISTINCT` to data nodes. It also fixes a number of bugs in the
implementation of Skip Scan, in distributed hypertables, in creation
of indexes, in compression, and in policies.

**Features**
* timescale#3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip
  Scan

**Bugfixes**
* timescale#3101 Use commit date in `get_git_commit()`
* timescale#3102 Fix `REINDEX TABLE` for distributed hypertables
* timescale#3104 Fix use after free in `add_reorder_policy`
* timescale#3106 Fix use after free in `chunk_api_get_chunk_stats`
* timescale#3109 Copy recreated object permissions on update
* timescale#3111 Fix `CMAKE_BUILD_TYPE` check
* timescale#3112 Use `%u` to format Oid instead of `%d`
* timescale#3118 Fix use after free in cache
* timescale#3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* timescale#3135 Fix SkipScan path generation in `DISTINCT` queries
  with expressions
* timescale#3146 Fix SkipScan for IndexPaths without pathkeys
* timescale#3147 Skip ChunkAppend if AppendPath has no children
* timescale#3148 Make `SELECT DISTINCT` handle non-var targetlists
* timescale#3151 Fix `fdw_relinfo_get` assertion failure on `DELETE`
* timescale#3155 Inherit `CFLAGS` from PostgreSQL
* timescale#3169 Fix incorrect type cast in compression policy
* timescale#3183 Fix segfault in calculate_chunk_interval
* timescale#3185 Fix wrong datatype in integer based retention policy

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with
  multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
* @nathanloisel for reporting an issue with compression on hypertables
  with integer-based timestamps
* @xin-hedera for fixing an issue with compression on hypertables with
  integer-based timestamps
mkindahl added a commit that referenced this pull request May 5, 2021
This maintenance release contains bugfixes since the 2.2.0 release. We
deem it high priority for upgrading.

This release extends Skip Scan to multinode by enabling the pushdown
of `DISTINCT` to data nodes. It also fixes a number of bugs in the
implementation of Skip Scan, in distributed hypertables, in creation
of indexes, in compression, and in policies.

**Features**
* #3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip
  Scan

**Bugfixes**
* #3101 Use commit date in `get_git_commit()`
* #3102 Fix `REINDEX TABLE` for distributed hypertables
* #3104 Fix use after free in `add_reorder_policy`
* #3106 Fix use after free in `chunk_api_get_chunk_stats`
* #3109 Copy recreated object permissions on update
* #3111 Fix `CMAKE_BUILD_TYPE` check
* #3112 Use `%u` to format Oid instead of `%d`
* #3118 Fix use after free in cache
* #3123 Fix crash while using `REINDEX TABLE CONCURRENTLY`
* #3135 Fix SkipScan path generation in `DISTINCT` queries
  with expressions
* #3146 Fix SkipScan for IndexPaths without pathkeys
* #3147 Skip ChunkAppend if AppendPath has no children
* #3148 Make `SELECT DISTINCT` handle non-var targetlists
* #3151 Fix `fdw_relinfo_get` assertion failure on `DELETE`
* #3155 Inherit `CFLAGS` from PostgreSQL
* #3169 Fix incorrect type cast in compression policy
* #3183 Fix segfault in calculate_chunk_interval
* #3185 Fix wrong datatype in integer based retention policy

**Thanks**
* @Dead2, @dv8472 and @einsibjarni for reporting an issue with
  multinode queries and views
* @hperez75 for reporting an issue with Skip Scan
* @nathanloisel for reporting an issue with compression on hypertables
  with integer-based timestamps
* @xin-hedera for fixing an issue with compression on hypertables with
  integer-based timestamps
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants