mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-20 04:35:00 +08:00
Fix downgrade files for 2.3.1
The cagg rebuild was required for a fix introduced in 2.3.1 but was not removed from reverse-dev.sql when that version got released.
This commit is contained in:
parent
bad2fc14e2
commit
ded8e82ebb
@ -28,7 +28,8 @@ set(MOD_FILES
|
||||
updates/2.2.1--2.3.0.sql
|
||||
updates/2.3.0--2.3.1.sql)
|
||||
|
||||
# Files for downgrade scripts.
|
||||
# Files for downgrade scripts. This should only include files for downgrade to
|
||||
# previous version since we do not support skipping versions when downgrading
|
||||
set(REV_FILES)
|
||||
|
||||
set(MODULE_PATHNAME "$libdir/timescaledb-${PROJECT_VERSION_MOD}")
|
||||
|
28
sql/updates/2.3.1--2.3.0.sql
Normal file
28
sql/updates/2.3.1--2.3.0.sql
Normal file
@ -0,0 +1,28 @@
|
||||
-- We need to rewrite all continuous aggregates to make sure that the
|
||||
-- queries do not contain qualification. They will be re-written in
|
||||
-- the post-update script as well, but the previous version does not
|
||||
-- process all continuous aggregates, leaving some with qualification
|
||||
-- for the standard functions. To make this work, we need to
|
||||
-- temporarily set the update stage to the post-update stage, which
|
||||
-- will allow the ALTER MATERIALIZED VIEW to rewrite the query. If
|
||||
-- that is not done, the TimescaleDB-specific hooks will not be used
|
||||
-- and you will get an error message saying that, for example,
|
||||
-- `conditions_summary` is not a materialized view.
|
||||
SET timescaledb.update_script_stage TO 'post';
|
||||
DO $$
|
||||
DECLARE
|
||||
vname regclass;
|
||||
materialized_only bool;
|
||||
altercmd text;
|
||||
ts_version TEXT;
|
||||
BEGIN
|
||||
FOR vname, materialized_only IN select format('%I.%I', cagg.user_view_schema, cagg.user_view_name)::regclass, cagg.materialized_only from _timescaledb_catalog.continuous_agg cagg
|
||||
LOOP
|
||||
altercmd := format('ALTER MATERIALIZED VIEW %s SET (timescaledb.materialized_only=%L) ', vname::text, materialized_only);
|
||||
EXECUTE altercmd;
|
||||
END LOOP;
|
||||
EXCEPTION WHEN OTHERS THEN RAISE;
|
||||
END
|
||||
$$;
|
||||
RESET timescaledb.update_script_stage;
|
||||
|
@ -2,32 +2,3 @@ DROP SCHEMA IF EXISTS timescaledb_experimental CASCADE;
|
||||
DROP FUNCTION IF EXISTS _timescaledb_internal.block_new_chunks;
|
||||
DROP FUNCTION IF EXISTS _timescaledb_internal.allow_new_chunks;
|
||||
DROP FUNCTION IF EXISTS _timescaledb_internal.refresh_continuous_aggregate;
|
||||
|
||||
-- We need to rewrite all continuous aggregates to make sure that the
|
||||
-- queries do not contain qualification. They will be re-written in
|
||||
-- the post-update script as well, but the previous version does not
|
||||
-- process all continuous aggregates, leaving some with qualification
|
||||
-- for the standard functions. To make this work, we need to
|
||||
-- temporarily set the update stage to the post-update stage, which
|
||||
-- will allow the ALTER MATERIALIZED VIEW to rewrite the query. If
|
||||
-- that is not done, the TimescaleDB-specific hooks will not be used
|
||||
-- and you will get an error message saying that, for example,
|
||||
-- `conditions_summary` is not a materialized view.
|
||||
SET timescaledb.update_script_stage TO 'post';
|
||||
DO $$
|
||||
DECLARE
|
||||
vname regclass;
|
||||
materialized_only bool;
|
||||
altercmd text;
|
||||
ts_version TEXT;
|
||||
BEGIN
|
||||
FOR vname, materialized_only IN select format('%I.%I', cagg.user_view_schema, cagg.user_view_name)::regclass, cagg.materialized_only from _timescaledb_catalog.continuous_agg cagg
|
||||
LOOP
|
||||
altercmd := format('ALTER MATERIALIZED VIEW %s SET (timescaledb.materialized_only=%L) ', vname::text, materialized_only);
|
||||
EXECUTE altercmd;
|
||||
END LOOP;
|
||||
EXCEPTION WHEN OTHERS THEN RAISE;
|
||||
END
|
||||
$$;
|
||||
RESET timescaledb.update_script_stage;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user