diff --git a/CHANGELOG.md b/CHANGELOG.md index c932248448d..0f2ec2b5ee0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,53 +4,33 @@ `psql` with the `-X` flag to prevent any `.psqlrc` commands from accidentally triggering the load of a previous DB version.** -## Unreleased - -**Features** -* #5212 Allow pushdown of reference table joins -* #5312 Add timeout support to the ping_data_node() -* #5361 Add parallel support for partialize_agg() -* #5252 Improve unique constraint support on compressed hypertables -* #5312 Add timeout support to ping_data_node() -* #5454 Add support for ON CONFLICT DO UPDATE for compressed hypertables -* #5344 Enable JOINS for Hierarchical Continuous Aggregates +## 2.10.2 (2023-04-20) **Bugfixes** -* #5396 Fix SEGMENTBY columns predicates to be pushed down -* #5410 Fix file trailer handling in the COPY fetcher * #5410 Fix file trailer handling in the COPY fetcher -* #5233 Out of on_proc_exit slots on guc license change -* #5427 Handle user-defined FDW options properly -* #5428 Use consistent snapshots when scanning metadata -* #5442 Decompression may have lost DEFAULT values * #5446 Add checks for malloc failure in libpq calls -* #5410 Fix file trailer handling in the COPY fetcher * #5233 Out of on_proc_exit slots on guc license change -* #5459 Fix issue creating dimensional constraints +* #5428 Use consistent snapshots when scanning metadata * #5499 Do not segfault on large histogram() parameters * #5470 Ensure superuser perms during copy/move chunk -* #5497 Allow named time_bucket arguments in Cagg definition * #5500 Fix when no FROM clause in continuous aggregate definition -* #5544 Fix refresh from beginning of Continuous Aggregate with variable time bucket -* #5556 Fix duplicated entries on timescaledb_experimental.policies view * #5433 Fix join rte in CAggs with joins +* #5556 Fix duplicated entries on timescaledb_experimental.policies view * #5462 Fix segfault after column drop on compressed table * #5543 Copy scheduled_jobs list before sorting it * #5497 Allow named time_bucket arguments in Cagg definition -* #5570 Improve interpolate error message on datatype mismatch -* #5558 Use regrole for job owner * #5544 Fix refresh from beginning of Continuous Aggregate with variable time bucket - +* #5558 Use regrole for job owner * #5542 Enable indexscan on uncompressed part of partially compressed chunks **Thanks** * @nikolaps for reporting an issue with the COPY fetcher * @S-imo-n for reporting the issue on Background Worker Scheduler crash -* @kovetskiy and @DZDomi for reporting peformance regression in Realtime Continuous Aggregates * @geezhu for reporting issue on segfault in historgram() -* @H25E for reporting error refreshing from beginning of a Continuous Aggregate with variable time bucket +* @mwahlhuetter for reporting the issue with joins in CAggs * @mwahlhuetter for reporting issue with duplicated entries on timescaledb_experimental.policies view -* @mwahlthuetter for reporting the issue with joins in CAggs +* @H25E for reporting error refreshing from beginning of a Continuous Aggregate with variable time bucket + ## 2.10.1 (2023-03-07) @@ -68,13 +48,14 @@ We recommend that you upgrade at the next available opportunity. * #5364 Fix num_chunks inconsistency in hypertables view * #5367 Fix column name handling in old-style continuous aggregates * #5378 Fix multinode DML HA performance regression -* #5304 Fix sub-second intervals in hierarchical caggs +* #5384 Fix Hierarchical Continuous Aggregates chunk_interval_size **Thanks** * @justinozavala for reporting an issue with PL/Python procedures in the background worker * @Medvecrab for discovering an issue with copying NameData when forming heap tuples. * @pushpeepkmonroe for discovering an issue in upgrading old-style continuous aggregates with renamed columns + ## 2.10.0 (2023-02-21) This release contains new features and bug fixes since the 2.9.3 release. @@ -102,10 +83,6 @@ Sooner to that time, we will announce the specific version of TimescaleDB in whi * #5246 Make connection establishment interruptible * #5253 Make data node command execution interruptible * #5262 Extend enabling compression on a continuous aggregrate with 'compress_segmentby' and 'compress_orderby' parameters -* #5343 Set PortalContext when starting job -* #5312 Add timeout support to the ping_data_node() -* #5212 Allow pushdown of reference table joins -* #5344 Enable JOINS for Hierarchical continuous aggregates **Bugfixes** * #5214 Fix use of prepared statement in async module @@ -115,7 +92,7 @@ Sooner to that time, we will announce the specific version of TimescaleDB in whi **Thanks** * @henriquegelio for reporting the issue on fixed schedules -* #5336 Use NameData and namestrcpy for names + ## 2.9.3 (2023-02-03) @@ -2818,4 +2795,3 @@ the next release. * [72f754a] use PostgreSQL's own `hash_any` function as default partfunc (thanks @robin900) * [39f4c0f] Remove sample data instructions and point to docs site * [9015314] Revised the `get_general_index_definition` function to handle cases where indexes have definitions other than just `CREATE INDEX` (thanks @bricklen) - diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index f6919c221db..b12d35b046d 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -45,11 +45,12 @@ set(MOD_FILES updates/2.9.1--2.9.2.sql updates/2.9.2--2.9.3.sql updates/2.9.3--2.10.0.sql - updates/2.10.0--2.10.1.sql) + updates/2.10.0--2.10.1.sql + updates/2.10.1--2.10.2.sql) # The downgrade file to generate a downgrade script for the current version, as # specified in version.config -set(CURRENT_REV_FILE reverse-dev.sql) +set(CURRENT_REV_FILE 2.10.2--2.10.1.sql) # Files for generating old downgrade scripts. This should only include files for # downgrade from one version to its previous version since we do not support @@ -74,7 +75,8 @@ set(OLD_REV_FILES 2.9.2--2.9.1.sql 2.9.3--2.9.2.sql 2.10.0--2.9.3.sql - 2.10.1--2.10.0.sql) + 2.10.1--2.10.0.sql + 2.10.2--2.10.1.sql) set(MODULE_PATHNAME "$libdir/timescaledb-${PROJECT_VERSION_MOD}") set(LOADER_PATHNAME "$libdir/timescaledb") diff --git a/sql/updates/2.10.1--2.10.2.sql b/sql/updates/2.10.1--2.10.2.sql new file mode 100644 index 00000000000..56ad15acd78 --- /dev/null +++ b/sql/updates/2.10.1--2.10.2.sql @@ -0,0 +1,75 @@ +DROP FUNCTION _timescaledb_internal.ping_data_node(NAME); + +CREATE OR REPLACE FUNCTION _timescaledb_internal.ping_data_node(node_name NAME, timeout INTERVAL = NULL) RETURNS BOOLEAN +AS '@MODULE_PATHNAME@', 'ts_data_node_ping' LANGUAGE C VOLATILE; + +-- drop dependent views +DROP VIEW IF EXISTS timescaledb_information.job_errors; +DROP VIEW IF EXISTS timescaledb_information.job_stats; +DROP VIEW IF EXISTS timescaledb_information.jobs; +DROP VIEW IF EXISTS timescaledb_experimental.policies; + +ALTER TABLE _timescaledb_config.bgw_job + ALTER COLUMN owner DROP DEFAULT, + ALTER COLUMN owner TYPE regrole USING owner::regrole, + ALTER COLUMN owner SET DEFAULT current_role::regrole; +CREATE TABLE _timescaledb_config.bgw_job_tmp AS SELECT * FROM _timescaledb_config.bgw_job; + +ALTER EXTENSION timescaledb DROP TABLE _timescaledb_config.bgw_job; +ALTER EXTENSION timescaledb DROP SEQUENCE _timescaledb_config.bgw_job_id_seq; +ALTER TABLE _timescaledb_internal.bgw_job_stat + DROP CONSTRAINT IF EXISTS bgw_job_stat_job_id_fkey; +ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats + DROP CONSTRAINT IF EXISTS bgw_policy_chunk_stats_job_id_fkey; +CREATE TABLE _timescaledb_internal.tmp_bgw_job_seq_value AS + SELECT last_value, is_called FROM _timescaledb_config.bgw_job_id_seq; +DROP TABLE _timescaledb_config.bgw_job; + +CREATE SEQUENCE _timescaledb_config.bgw_job_id_seq MINVALUE 1000; +SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job_id_seq', ''); +SELECT pg_catalog.setval('_timescaledb_config.bgw_job_id_seq', last_value, is_called) + FROM _timescaledb_internal.tmp_bgw_job_seq_value; +DROP TABLE _timescaledb_internal.tmp_bgw_job_seq_value; + +CREATE TABLE _timescaledb_config.bgw_job ( + id integer NOT NULL DEFAULT nextval('_timescaledb_config.bgw_job_id_seq'), + application_name name NOT NULL, + schedule_interval interval NOT NULL, + max_runtime interval NOT NULL, + max_retries integer NOT NULL, + retry_period interval NOT NULL, + proc_schema name NOT NULL, + proc_name name NOT NULL, + owner regrole NOT NULL DEFAULT current_role::regrole, + scheduled bool NOT NULL DEFAULT TRUE, + fixed_schedule bool not null default true, + initial_start timestamptz, + hypertable_id integer, + config jsonb, + check_schema name, + check_name name, + timezone text, + CONSTRAINT bgw_job_pkey PRIMARY KEY (id), + CONSTRAINT bgw_job_hypertable_id_fkey FOREIGN KEY (hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE +); + +ALTER SEQUENCE _timescaledb_config.bgw_job_id_seq OWNED BY _timescaledb_config.bgw_job.id; +CREATE INDEX bgw_job_proc_hypertable_id_idx + ON _timescaledb_config.bgw_job(proc_schema,proc_name,hypertable_id); +INSERT INTO _timescaledb_config.bgw_job + SELECT * FROM _timescaledb_config.bgw_job_tmp ORDER BY id; +DROP TABLE _timescaledb_config.bgw_job_tmp; +ALTER TABLE _timescaledb_internal.bgw_job_stat + ADD CONSTRAINT bgw_job_stat_job_id_fkey + FOREIGN KEY(job_id) + REFERENCES _timescaledb_config.bgw_job(id) + ON DELETE CASCADE; +ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats + ADD CONSTRAINT bgw_policy_chunk_stats_job_id_fkey + FOREIGN KEY(job_id) + REFERENCES _timescaledb_config.bgw_job(id) + ON DELETE CASCADE; + +SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job', 'WHERE id >= 1000'); +GRANT SELECT ON _timescaledb_config.bgw_job TO PUBLIC; +GRANT SELECT ON _timescaledb_config.bgw_job_id_seq TO PUBLIC; diff --git a/sql/updates/2.10.2--2.10.1.sql b/sql/updates/2.10.2--2.10.1.sql new file mode 100644 index 00000000000..24b4952b199 --- /dev/null +++ b/sql/updates/2.10.2--2.10.1.sql @@ -0,0 +1,75 @@ +DROP FUNCTION _timescaledb_internal.ping_data_node(NAME, INTERVAL); + +CREATE OR REPLACE FUNCTION _timescaledb_internal.ping_data_node(node_name NAME) RETURNS BOOLEAN +AS '@MODULE_PATHNAME@', 'ts_data_node_ping' LANGUAGE C VOLATILE; + +-- drop dependent views +DROP VIEW IF EXISTS timescaledb_information.job_errors; +DROP VIEW IF EXISTS timescaledb_information.job_stats; +DROP VIEW IF EXISTS timescaledb_information.jobs; +DROP VIEW IF EXISTS timescaledb_experimental.policies; + +ALTER TABLE _timescaledb_config.bgw_job + ALTER COLUMN owner DROP DEFAULT, + ALTER COLUMN owner TYPE name USING owner::name, + ALTER COLUMN owner SET DEFAULT current_role; +CREATE TABLE _timescaledb_config.bgw_job_tmp AS SELECT * FROM _timescaledb_config.bgw_job; + +ALTER EXTENSION timescaledb DROP TABLE _timescaledb_config.bgw_job; +ALTER EXTENSION timescaledb DROP SEQUENCE _timescaledb_config.bgw_job_id_seq; +ALTER TABLE _timescaledb_internal.bgw_job_stat + DROP CONSTRAINT IF EXISTS bgw_job_stat_job_id_fkey; +ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats + DROP CONSTRAINT IF EXISTS bgw_policy_chunk_stats_job_id_fkey; +CREATE TABLE _timescaledb_internal.tmp_bgw_job_seq_value AS + SELECT last_value, is_called FROM _timescaledb_config.bgw_job_id_seq; +DROP TABLE _timescaledb_config.bgw_job; + +CREATE SEQUENCE _timescaledb_config.bgw_job_id_seq MINVALUE 1000; +SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job_id_seq', ''); +SELECT pg_catalog.setval('_timescaledb_config.bgw_job_id_seq', last_value, is_called) + FROM _timescaledb_internal.tmp_bgw_job_seq_value; +DROP TABLE _timescaledb_internal.tmp_bgw_job_seq_value; + +CREATE TABLE _timescaledb_config.bgw_job ( + id integer NOT NULL DEFAULT nextval('_timescaledb_config.bgw_job_id_seq'), + application_name name NOT NULL, + schedule_interval interval NOT NULL, + max_runtime interval NOT NULL, + max_retries integer NOT NULL, + retry_period interval NOT NULL, + proc_schema name NOT NULL, + proc_name name NOT NULL, + owner name NOT NULL DEFAULT current_role, + scheduled bool NOT NULL DEFAULT TRUE, + fixed_schedule bool not null default true, + initial_start timestamptz, + hypertable_id integer, + config jsonb, + check_schema name, + check_name name, + timezone text, + CONSTRAINT bgw_job_pkey PRIMARY KEY (id), + CONSTRAINT bgw_job_hypertable_id_fkey FOREIGN KEY (hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE +); + +ALTER SEQUENCE _timescaledb_config.bgw_job_id_seq OWNED BY _timescaledb_config.bgw_job.id; +CREATE INDEX bgw_job_proc_hypertable_id_idx + ON _timescaledb_config.bgw_job(proc_schema,proc_name,hypertable_id); +INSERT INTO _timescaledb_config.bgw_job + SELECT * FROM _timescaledb_config.bgw_job_tmp ORDER BY id; +DROP TABLE _timescaledb_config.bgw_job_tmp; +ALTER TABLE _timescaledb_internal.bgw_job_stat + ADD CONSTRAINT bgw_job_stat_job_id_fkey + FOREIGN KEY(job_id) + REFERENCES _timescaledb_config.bgw_job(id) + ON DELETE CASCADE; +ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats + ADD CONSTRAINT bgw_policy_chunk_stats_job_id_fkey + FOREIGN KEY(job_id) + REFERENCES _timescaledb_config.bgw_job(id) + ON DELETE CASCADE; + +SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job', 'WHERE id >= 1000'); +GRANT SELECT ON _timescaledb_config.bgw_job TO PUBLIC; +GRANT SELECT ON _timescaledb_config.bgw_job_id_seq TO PUBLIC; diff --git a/sql/updates/latest-dev.sql b/sql/updates/latest-dev.sql index 56ad15acd78..e69de29bb2d 100644 --- a/sql/updates/latest-dev.sql +++ b/sql/updates/latest-dev.sql @@ -1,75 +0,0 @@ -DROP FUNCTION _timescaledb_internal.ping_data_node(NAME); - -CREATE OR REPLACE FUNCTION _timescaledb_internal.ping_data_node(node_name NAME, timeout INTERVAL = NULL) RETURNS BOOLEAN -AS '@MODULE_PATHNAME@', 'ts_data_node_ping' LANGUAGE C VOLATILE; - --- drop dependent views -DROP VIEW IF EXISTS timescaledb_information.job_errors; -DROP VIEW IF EXISTS timescaledb_information.job_stats; -DROP VIEW IF EXISTS timescaledb_information.jobs; -DROP VIEW IF EXISTS timescaledb_experimental.policies; - -ALTER TABLE _timescaledb_config.bgw_job - ALTER COLUMN owner DROP DEFAULT, - ALTER COLUMN owner TYPE regrole USING owner::regrole, - ALTER COLUMN owner SET DEFAULT current_role::regrole; -CREATE TABLE _timescaledb_config.bgw_job_tmp AS SELECT * FROM _timescaledb_config.bgw_job; - -ALTER EXTENSION timescaledb DROP TABLE _timescaledb_config.bgw_job; -ALTER EXTENSION timescaledb DROP SEQUENCE _timescaledb_config.bgw_job_id_seq; -ALTER TABLE _timescaledb_internal.bgw_job_stat - DROP CONSTRAINT IF EXISTS bgw_job_stat_job_id_fkey; -ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats - DROP CONSTRAINT IF EXISTS bgw_policy_chunk_stats_job_id_fkey; -CREATE TABLE _timescaledb_internal.tmp_bgw_job_seq_value AS - SELECT last_value, is_called FROM _timescaledb_config.bgw_job_id_seq; -DROP TABLE _timescaledb_config.bgw_job; - -CREATE SEQUENCE _timescaledb_config.bgw_job_id_seq MINVALUE 1000; -SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job_id_seq', ''); -SELECT pg_catalog.setval('_timescaledb_config.bgw_job_id_seq', last_value, is_called) - FROM _timescaledb_internal.tmp_bgw_job_seq_value; -DROP TABLE _timescaledb_internal.tmp_bgw_job_seq_value; - -CREATE TABLE _timescaledb_config.bgw_job ( - id integer NOT NULL DEFAULT nextval('_timescaledb_config.bgw_job_id_seq'), - application_name name NOT NULL, - schedule_interval interval NOT NULL, - max_runtime interval NOT NULL, - max_retries integer NOT NULL, - retry_period interval NOT NULL, - proc_schema name NOT NULL, - proc_name name NOT NULL, - owner regrole NOT NULL DEFAULT current_role::regrole, - scheduled bool NOT NULL DEFAULT TRUE, - fixed_schedule bool not null default true, - initial_start timestamptz, - hypertable_id integer, - config jsonb, - check_schema name, - check_name name, - timezone text, - CONSTRAINT bgw_job_pkey PRIMARY KEY (id), - CONSTRAINT bgw_job_hypertable_id_fkey FOREIGN KEY (hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE -); - -ALTER SEQUENCE _timescaledb_config.bgw_job_id_seq OWNED BY _timescaledb_config.bgw_job.id; -CREATE INDEX bgw_job_proc_hypertable_id_idx - ON _timescaledb_config.bgw_job(proc_schema,proc_name,hypertable_id); -INSERT INTO _timescaledb_config.bgw_job - SELECT * FROM _timescaledb_config.bgw_job_tmp ORDER BY id; -DROP TABLE _timescaledb_config.bgw_job_tmp; -ALTER TABLE _timescaledb_internal.bgw_job_stat - ADD CONSTRAINT bgw_job_stat_job_id_fkey - FOREIGN KEY(job_id) - REFERENCES _timescaledb_config.bgw_job(id) - ON DELETE CASCADE; -ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats - ADD CONSTRAINT bgw_policy_chunk_stats_job_id_fkey - FOREIGN KEY(job_id) - REFERENCES _timescaledb_config.bgw_job(id) - ON DELETE CASCADE; - -SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job', 'WHERE id >= 1000'); -GRANT SELECT ON _timescaledb_config.bgw_job TO PUBLIC; -GRANT SELECT ON _timescaledb_config.bgw_job_id_seq TO PUBLIC; diff --git a/sql/updates/reverse-dev.sql b/sql/updates/reverse-dev.sql index 24b4952b199..e69de29bb2d 100644 --- a/sql/updates/reverse-dev.sql +++ b/sql/updates/reverse-dev.sql @@ -1,75 +0,0 @@ -DROP FUNCTION _timescaledb_internal.ping_data_node(NAME, INTERVAL); - -CREATE OR REPLACE FUNCTION _timescaledb_internal.ping_data_node(node_name NAME) RETURNS BOOLEAN -AS '@MODULE_PATHNAME@', 'ts_data_node_ping' LANGUAGE C VOLATILE; - --- drop dependent views -DROP VIEW IF EXISTS timescaledb_information.job_errors; -DROP VIEW IF EXISTS timescaledb_information.job_stats; -DROP VIEW IF EXISTS timescaledb_information.jobs; -DROP VIEW IF EXISTS timescaledb_experimental.policies; - -ALTER TABLE _timescaledb_config.bgw_job - ALTER COLUMN owner DROP DEFAULT, - ALTER COLUMN owner TYPE name USING owner::name, - ALTER COLUMN owner SET DEFAULT current_role; -CREATE TABLE _timescaledb_config.bgw_job_tmp AS SELECT * FROM _timescaledb_config.bgw_job; - -ALTER EXTENSION timescaledb DROP TABLE _timescaledb_config.bgw_job; -ALTER EXTENSION timescaledb DROP SEQUENCE _timescaledb_config.bgw_job_id_seq; -ALTER TABLE _timescaledb_internal.bgw_job_stat - DROP CONSTRAINT IF EXISTS bgw_job_stat_job_id_fkey; -ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats - DROP CONSTRAINT IF EXISTS bgw_policy_chunk_stats_job_id_fkey; -CREATE TABLE _timescaledb_internal.tmp_bgw_job_seq_value AS - SELECT last_value, is_called FROM _timescaledb_config.bgw_job_id_seq; -DROP TABLE _timescaledb_config.bgw_job; - -CREATE SEQUENCE _timescaledb_config.bgw_job_id_seq MINVALUE 1000; -SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job_id_seq', ''); -SELECT pg_catalog.setval('_timescaledb_config.bgw_job_id_seq', last_value, is_called) - FROM _timescaledb_internal.tmp_bgw_job_seq_value; -DROP TABLE _timescaledb_internal.tmp_bgw_job_seq_value; - -CREATE TABLE _timescaledb_config.bgw_job ( - id integer NOT NULL DEFAULT nextval('_timescaledb_config.bgw_job_id_seq'), - application_name name NOT NULL, - schedule_interval interval NOT NULL, - max_runtime interval NOT NULL, - max_retries integer NOT NULL, - retry_period interval NOT NULL, - proc_schema name NOT NULL, - proc_name name NOT NULL, - owner name NOT NULL DEFAULT current_role, - scheduled bool NOT NULL DEFAULT TRUE, - fixed_schedule bool not null default true, - initial_start timestamptz, - hypertable_id integer, - config jsonb, - check_schema name, - check_name name, - timezone text, - CONSTRAINT bgw_job_pkey PRIMARY KEY (id), - CONSTRAINT bgw_job_hypertable_id_fkey FOREIGN KEY (hypertable_id) REFERENCES _timescaledb_catalog.hypertable (id) ON DELETE CASCADE -); - -ALTER SEQUENCE _timescaledb_config.bgw_job_id_seq OWNED BY _timescaledb_config.bgw_job.id; -CREATE INDEX bgw_job_proc_hypertable_id_idx - ON _timescaledb_config.bgw_job(proc_schema,proc_name,hypertable_id); -INSERT INTO _timescaledb_config.bgw_job - SELECT * FROM _timescaledb_config.bgw_job_tmp ORDER BY id; -DROP TABLE _timescaledb_config.bgw_job_tmp; -ALTER TABLE _timescaledb_internal.bgw_job_stat - ADD CONSTRAINT bgw_job_stat_job_id_fkey - FOREIGN KEY(job_id) - REFERENCES _timescaledb_config.bgw_job(id) - ON DELETE CASCADE; -ALTER TABLE _timescaledb_internal.bgw_policy_chunk_stats - ADD CONSTRAINT bgw_policy_chunk_stats_job_id_fkey - FOREIGN KEY(job_id) - REFERENCES _timescaledb_config.bgw_job(id) - ON DELETE CASCADE; - -SELECT pg_catalog.pg_extension_config_dump('_timescaledb_config.bgw_job', 'WHERE id >= 1000'); -GRANT SELECT ON _timescaledb_config.bgw_job TO PUBLIC; -GRANT SELECT ON _timescaledb_config.bgw_job_id_seq TO PUBLIC; diff --git a/version.config b/version.config index 8745c3a5dc7..44a0e6a42f6 100644 --- a/version.config +++ b/version.config @@ -1,3 +1,3 @@ -version = 2.10.2-dev +version = 2.10.2 update_from_version = 2.10.1 downgrade_to_version = 2.10.1