From d065bb495d1787fa97f0924fc028b4e98360db72 Mon Sep 17 00:00:00 2001 From: Nils Dijk Date: Fri, 6 Nov 2020 16:00:49 +0100 Subject: [PATCH] Prepare downgrade script and bump development version to 10.0-1 --- .../columnar/sql/columnar--9.5-1--10.0-1.sql | 2 +- .../downgrades/columnar--10.0-1--9.5-1.sql | 45 +++++++++++++++++++ .../sql/downgrades/citus--10.0-1--9.5-1.sql | 2 + src/test/regress/expected/multi_extension.out | 23 ++++++++-- src/test/regress/sql/multi_extension.sql | 4 +- 5 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 src/backend/columnar/sql/downgrades/columnar--10.0-1--9.5-1.sql diff --git a/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql b/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql index b80239f6a..7c6ee9111 100644 --- a/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql +++ b/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql @@ -26,7 +26,7 @@ CREATE EVENT TRIGGER cstore_ddl_event_end ON ddl_command_end EXECUTE PROCEDURE cstore_ddl_event_end_trigger(); -CREATE FUNCTION public.cstore_table_size(relation regclass) +CREATE FUNCTION pg_catalog.cstore_table_size(relation regclass) RETURNS bigint AS 'MODULE_PATHNAME' LANGUAGE C STRICT; diff --git a/src/backend/columnar/sql/downgrades/columnar--10.0-1--9.5-1.sql b/src/backend/columnar/sql/downgrades/columnar--10.0-1--9.5-1.sql new file mode 100644 index 000000000..4e6826d0c --- /dev/null +++ b/src/backend/columnar/sql/downgrades/columnar--10.0-1--9.5-1.sql @@ -0,0 +1,45 @@ +/* columnar--10.0-1--9.5-1.sql */ + +SET search_path TO cstore; + +DO $proc$ +BEGIN + +IF substring(current_Setting('server_version'), '\d+')::int >= 12 THEN + EXECUTE $$ + DROP FUNCTION pg_catalog.alter_cstore_table_reset( + table_name regclass, + block_row_count bool, + stripe_row_count bool, + compression bool); + + DROP FUNCTION pg_catalog.alter_cstore_table_set( + table_name regclass, + block_row_count int, + stripe_row_count int, + compression name); + + DROP ACCESS METHOD cstore_tableam; + + DROP FUNCTION cstore_tableam_handler(internal); + + $$; +END IF; +END$proc$; + +DROP VIEW cstore_options; +DROP TABLE cstore_skipnodes; +DROP TABLE cstore_stripes; +DROP TABLE cstore_data_files; + +DROP FUNCTION pg_catalog.cstore_table_size(relation regclass); + +DROP EVENT TRIGGER cstore_ddl_event_end; +DROP FUNCTION cstore_ddl_event_end_trigger(); + +DROP FOREIGN DATA WRAPPER cstore_fdw; +DROP FUNCTION cstore_fdw_validator(text[], oid); +DROP FUNCTION cstore_fdw_handler(); + +RESET search_path; +DROP SCHEMA cstore; diff --git a/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql b/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql index e07dcfbd8..e721a4660 100644 --- a/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql +++ b/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql @@ -1,2 +1,4 @@ -- citus--10.0-1--9.5-1 -- this is an empty downgrade path since citus--9.5-1--10.0-1.sql is empty for now + +#include "../../../columnar/sql/downgrades/columnar--10.0-1--9.5-1.sql" diff --git a/src/test/regress/expected/multi_extension.out b/src/test/regress/expected/multi_extension.out index 1f8434840..19fda1889 100644 --- a/src/test/regress/expected/multi_extension.out +++ b/src/test/regress/expected/multi_extension.out @@ -80,7 +80,7 @@ FROM pg_depend AS pgd, WHERE pgd.refclassid = 'pg_extension'::regclass AND pgd.refobjid = pge.oid AND pge.extname = 'citus' AND - pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test'); + pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test', 'cstore'); count --------------------------------------------------------------------- 0 @@ -465,9 +465,24 @@ SELECT * FROM print_extension_changes(); -- Snapshot of state at 10.0-1 ALTER EXTENSION citus UPDATE TO '10.0-1'; SELECT * FROM print_extension_changes(); - previous_object | current_object + previous_object | current_object --------------------------------------------------------------------- -(0 rows) + | access method cstore_tableam + | event trigger cstore_ddl_event_end + | foreign-data wrapper cstore_fdw + | function alter_cstore_table_reset(regclass,boolean,boolean,boolean) + | function alter_cstore_table_set(regclass,integer,integer,name) + | function cstore.cstore_ddl_event_end_trigger() + | function cstore.cstore_fdw_handler() + | function cstore.cstore_fdw_validator(text[],oid) + | function cstore.cstore_tableam_handler(internal) + | function cstore_table_size(regclass) + | schema cstore + | table cstore.cstore_data_files + | table cstore.cstore_skipnodes + | table cstore.cstore_stripes + | view cstore.cstore_options +(15 rows) DROP TABLE prev_objects, extension_diff; -- show running version @@ -485,7 +500,7 @@ FROM pg_depend AS pgd, WHERE pgd.refclassid = 'pg_extension'::regclass AND pgd.refobjid = pge.oid AND pge.extname = 'citus' AND - pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test'); + pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test', 'cstore'); count --------------------------------------------------------------------- 0 diff --git a/src/test/regress/sql/multi_extension.sql b/src/test/regress/sql/multi_extension.sql index 49c5413d4..4444bb5f4 100644 --- a/src/test/regress/sql/multi_extension.sql +++ b/src/test/regress/sql/multi_extension.sql @@ -83,7 +83,7 @@ FROM pg_depend AS pgd, WHERE pgd.refclassid = 'pg_extension'::regclass AND pgd.refobjid = pge.oid AND pge.extname = 'citus' AND - pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test'); + pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test', 'cstore'); -- DROP EXTENSION pre-created by the regression suite @@ -238,7 +238,7 @@ FROM pg_depend AS pgd, WHERE pgd.refclassid = 'pg_extension'::regclass AND pgd.refobjid = pge.oid AND pge.extname = 'citus' AND - pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test'); + pgio.schema NOT IN ('pg_catalog', 'citus', 'citus_internal', 'test', 'cstore'); -- see incompatible version errors out RESET citus.enable_version_checks;