diff --git a/.circleci/config.yml b/.circleci/config.yml index d99398790..3b2b62cac 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,10 +6,7 @@ orbs: parameters: image_suffix: type: string - default: '-vf5dc39a' - pg13_version: - type: string - default: '13.11' + default: '-vbab548a' pg14_version: type: string default: '14.8' @@ -18,7 +15,7 @@ parameters: default: '15.3' upgrade_pg_versions: type: string - default: '13.11-14.8-15.3' + default: '14.8-15.3' style_checker_tools_version: type: string default: '0.8.18' @@ -565,7 +562,7 @@ jobs: check-merge-to-enterprise: docker: - - image: citus/extbuilder:<< pipeline.parameters.pg13_version >> + - image: citus/extbuilder:<< pipeline.parameters.pg14_version >> working_directory: /home/circleci/project steps: - checkout @@ -717,10 +714,6 @@ workflows: when: not: << pipeline.parameters.flaky_test >> jobs: - - build: - name: build-13 - pg_major: 13 - image_tag: '<< pipeline.parameters.pg13_version >>' - build: name: build-14 pg_major: 14 @@ -733,79 +726,6 @@ workflows: - check-style - check-sql-snapshots - - test-citus: &test-citus-13 - name: 'test-13_check-multi' - make: check-multi - pg_major: 13 - image_tag: '<< pipeline.parameters.pg13_version >>' - requires: [build-13] - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-multi-1' - make: check-multi-1 - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-mx' - make: check-multi-mx - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-vanilla' - make: check-vanilla - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-isolation' - make: check-isolation - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-operations' - make: check-operations - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-follower-cluster' - make: check-follower-cluster - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-columnar' - make: check-columnar - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-columnar-isolation' - make: check-columnar-isolation - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-failure' - image: citus/failtester - make: check-failure - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-enterprise' - make: check-enterprise - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-enterprise-isolation' - make: check-enterprise-isolation - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-enterprise-isolation-logicalrep-1' - make: check-enterprise-isolation-logicalrep-1 - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-enterprise-isolation-logicalrep-2' - make: check-enterprise-isolation-logicalrep-2 - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-enterprise-isolation-logicalrep-3' - make: check-enterprise-isolation-logicalrep-3 - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-enterprise-failure' - image: citus/failtester - make: check-enterprise-failure - - test-citus: - <<: *test-citus-13 - name: 'test-13_check-split' - make: check-split - - test-citus: &test-citus-14 name: 'test-14_check-split' make: check-split @@ -952,12 +872,6 @@ workflows: image: citus/failtester make: check-failure - - test-pytest: - name: 'test-13_pytest' - pg_major: 13 - image_tag: '<< pipeline.parameters.pg13_version >>' - requires: [build-13] - - test-pytest: name: 'test-14_pytest' pg_major: 14 @@ -977,12 +891,6 @@ workflows: image_tag: '<< pipeline.parameters.pg15_version >>' requires: [build-15] - - test-arbitrary-configs: - name: 'test-13_check-arbitrary-configs' - pg_major: 13 - image_tag: '<< pipeline.parameters.pg13_version >>' - requires: [build-13] - - test-arbitrary-configs: name: 'test-14_check-arbitrary-configs' pg_major: 14 @@ -995,12 +903,6 @@ workflows: image_tag: '<< pipeline.parameters.pg15_version >>' requires: [build-15] - - test-query-generator: - name: 'test-13_check-query-generator' - pg_major: 13 - image_tag: '<< pipeline.parameters.pg13_version >>' - requires: [build-13] - - test-query-generator: name: 'test-14_check-query-generator' pg_major: 14 @@ -1013,13 +915,6 @@ workflows: image_tag: '<< pipeline.parameters.pg15_version >>' requires: [build-15] - - test-pg-upgrade: - name: 'test-13-14_check-pg-upgrade' - old_pg_major: 13 - new_pg_major: 14 - image_tag: '<< pipeline.parameters.upgrade_pg_versions >>' - requires: [build-13, build-14] - - test-pg-upgrade: name: 'test-14-15_check-pg-upgrade' old_pg_major: 14 @@ -1028,32 +923,13 @@ workflows: requires: [build-14, build-15] - test-citus-upgrade: - name: test-13_check-citus-upgrade - pg_major: 13 - image_tag: '<< pipeline.parameters.pg13_version >>' - requires: [build-13] + name: test-14_check-citus-upgrade + pg_major: 14 + image_tag: '<< pipeline.parameters.pg14_version >>' + requires: [build-14] - upload-coverage: requires: - - test-13_check-multi - - test-13_check-multi-1 - - test-13_check-mx - - test-13_check-vanilla - - test-13_check-isolation - - test-13_check-operations - - test-13_check-follower-cluster - - test-13_check-columnar - - test-13_check-columnar-isolation - - test-13_check-failure - - test-13_check-enterprise - - test-13_check-enterprise-isolation - - test-13_check-enterprise-isolation-logicalrep-1 - - test-13_check-enterprise-isolation-logicalrep-2 - - test-13_check-enterprise-isolation-logicalrep-3 - - test-13_check-enterprise-failure - - test-13_check-split - - test-13_check-arbitrary-configs - - test-13_check-query-generator - test-14_check-multi - test-14_check-multi-1 - test-14_check-mx @@ -1092,18 +968,17 @@ workflows: - test-15_check-split - test-15_check-arbitrary-configs - test-15_check-query-generator - - test-13-14_check-pg-upgrade - test-14-15_check-pg-upgrade - - test-13_check-citus-upgrade + - test-14_check-citus-upgrade - ch_benchmark: - requires: [build-13] + requires: [build-14] filters: branches: only: - /ch_benchmark\/.*/ # match with ch_benchmark/ prefix - tpcc_benchmark: - requires: [build-13] + requires: [build-14] filters: branches: only: diff --git a/configure b/configure index 73a841bee..9150c1ab2 100755 --- a/configure +++ b/configure @@ -2588,7 +2588,7 @@ fi if test "$with_pg_version_check" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: building against PostgreSQL $version_num (skipped compatibility check)" >&5 $as_echo "$as_me: building against PostgreSQL $version_num (skipped compatibility check)" >&6;} -elif test "$version_num" != '13' -a "$version_num" != '14' -a "$version_num" != '15'; then +elif test "$version_num" != '14' -a "$version_num" != '15'; then as_fn_error $? "Citus is not compatible with the detected PostgreSQL version ${version_num}." "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: building against PostgreSQL $version_num" >&5 diff --git a/configure.ac b/configure.ac index f44e9f177..078e14c42 100644 --- a/configure.ac +++ b/configure.ac @@ -80,7 +80,7 @@ AC_SUBST(with_pg_version_check) if test "$with_pg_version_check" = no; then AC_MSG_NOTICE([building against PostgreSQL $version_num (skipped compatibility check)]) -elif test "$version_num" != '13' -a "$version_num" != '14' -a "$version_num" != '15'; then +elif test "$version_num" != '14' -a "$version_num" != '15'; then AC_MSG_ERROR([Citus is not compatible with the detected PostgreSQL version ${version_num}.]) else AC_MSG_NOTICE([building against PostgreSQL $version_num]) diff --git a/src/test/regress/after_citus_upgrade_coord_schedule b/src/test/regress/after_citus_upgrade_coord_schedule index 6a2a5255a..f4f6bb29f 100644 --- a/src/test/regress/after_citus_upgrade_coord_schedule +++ b/src/test/regress/after_citus_upgrade_coord_schedule @@ -3,7 +3,4 @@ test: upgrade_citus_finish_citus_upgrade test: upgrade_pg_dist_cleanup_after test: upgrade_basic_after -test: upgrade_partition_constraints_after -test: upgrade_pg_dist_object_test_after -test: upgrade_columnar_metapage_after test: upgrade_post_11_after diff --git a/src/test/regress/before_citus_upgrade_coord_schedule b/src/test/regress/before_citus_upgrade_coord_schedule index 0e0eaa091..1195058d6 100644 --- a/src/test/regress/before_citus_upgrade_coord_schedule +++ b/src/test/regress/before_citus_upgrade_coord_schedule @@ -1,8 +1,5 @@ # this schedule is to be run on only coordinators test: upgrade_basic_before -test: upgrade_partition_constraints_before -test: upgrade_pg_dist_object_test_before -test: upgrade_columnar_metapage_before test: upgrade_pg_dist_cleanup_before test: upgrade_post_11_before diff --git a/src/test/regress/bin/normalize.sed b/src/test/regress/bin/normalize.sed index 16ad804cb..5b958b636 100644 --- a/src/test/regress/bin/normalize.sed +++ b/src/test/regress/bin/normalize.sed @@ -211,9 +211,6 @@ s/ERROR: cannot append to shardId [0-9]+/ERROR: cannot append to shardId xxxxx /local tables that are added to metadata automatically by citus, but not chained with reference tables via foreign keys might be automatically converted back to postgres tables$/d /Executing citus_add_local_table_to_metadata(.*) prevents this for the given relation, and all of the connected relations$/d -# normalize partitioned table shard constraint name errors for upgrade_partition_constraints_(before|after) -s/^(ERROR: child table is missing constraint "\w+)_([0-9])+"/\1_xxxxxx"/g - # normalize for distributed deadlock delay in isolation_metadata_sync_deadlock # isolation tester first detects a lock, but then deadlock detector cancels the # session. Sometimes happens that deadlock detector cancels the session before diff --git a/src/test/regress/citus_tests/common.py b/src/test/regress/citus_tests/common.py index 9cf18cc89..9ff30ebf9 100644 --- a/src/test/regress/citus_tests/common.py +++ b/src/test/regress/citus_tests/common.py @@ -90,7 +90,6 @@ def get_pg_major_version(): PG_MAJOR_VERSION = get_pg_major_version() OLDEST_SUPPORTED_CITUS_VERSION_MATRIX = { - 13: "9.5.0", 14: "10.2.0", 15: "11.1.5", } diff --git a/src/test/regress/expected/upgrade_citus_finish_citus_upgrade.out b/src/test/regress/expected/upgrade_citus_finish_citus_upgrade.out index bb80d9103..e3ca353c2 100644 --- a/src/test/regress/expected/upgrade_citus_finish_citus_upgrade.out +++ b/src/test/regress/expected/upgrade_citus_finish_citus_upgrade.out @@ -1,4 +1,15 @@ -- Citus upgrades are finished by calling a procedure +-- Note that pg_catalog.citus_finish_citus_upgrade() behaves differently +-- when last upgrade citus version is less than 11 +-- so we have two alternative outputs for this test +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; + upgrade_test_old_citus_version_lt_11_0 +--------------------------------------------------------------------- + t +(1 row) + -- this is a transactional procedure, so rollback should be fine BEGIN; CALL citus_finish_citus_upgrade(); diff --git a/src/test/regress/expected/upgrade_citus_finish_citus_upgrade_0.out b/src/test/regress/expected/upgrade_citus_finish_citus_upgrade_0.out new file mode 100644 index 000000000..3c8a9a25c --- /dev/null +++ b/src/test/regress/expected/upgrade_citus_finish_citus_upgrade_0.out @@ -0,0 +1,41 @@ +-- Citus upgrades are finished by calling a procedure +-- Note that pg_catalog.citus_finish_citus_upgrade() behaves differently +-- when last upgrade citus version is less than 11 +-- so we have two alternative outputs for this test +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; + upgrade_test_old_citus_version_lt_11_0 +--------------------------------------------------------------------- + f +(1 row) + +-- this is a transactional procedure, so rollback should be fine +BEGIN; + CALL citus_finish_citus_upgrade(); +NOTICE: already at the latest distributed schema version (11.3-1) +ROLLBACK; +-- do the actual job +CALL citus_finish_citus_upgrade(); +NOTICE: already at the latest distributed schema version (11.3-1) +-- show that the upgrade is successfull +SELECT metadata->>'last_upgrade_version' = extversion +FROM pg_dist_node_metadata, pg_extension WHERE extname = 'citus'; + ?column? +--------------------------------------------------------------------- + f +(1 row) + +-- idempotent, should be called multiple times +-- still, do not NOTICE the version as it changes per release +SET client_min_messages TO WARNING; +CALL citus_finish_citus_upgrade(); +-- we should be able to sync metadata in nontransactional way as well +SET citus.metadata_sync_mode TO 'nontransactional'; +SELECT start_metadata_sync_to_all_nodes(); + start_metadata_sync_to_all_nodes +--------------------------------------------------------------------- + t +(1 row) + +RESET citus.metadata_sync_mode; diff --git a/src/test/regress/expected/upgrade_columnar_metapage_after.out b/src/test/regress/expected/upgrade_columnar_metapage_after.out deleted file mode 100644 index 87e2424cb..000000000 --- a/src/test/regress/expected/upgrade_columnar_metapage_after.out +++ /dev/null @@ -1,127 +0,0 @@ -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND - substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 -AS upgrade_test_old_citus_version_ge_10_0; - upgrade_test_old_citus_version_ge_10_0 ---------------------------------------------------------------------- - t -(1 row) - -\gset -\if :upgrade_test_old_citus_version_ge_10_0 -\else -\q -\endif --- it's not the best practice to define this here, but we don't want to include --- columnar_test_helpers in upgrade test schedule -CREATE OR REPLACE FUNCTION columnar_storage_info( - rel regclass, - version_major OUT int4, - version_minor OUT int4, - storage_id OUT int8, - reserved_stripe_id OUT int8, - reserved_row_number OUT int8, - reserved_offset OUT int8) -STRICT -LANGUAGE c AS 'citus', 'columnar_storage_info'; -CREATE VIEW columnar_table_stripe_info AS -SELECT columnar_table_storageids.relname relname, - columnar.stripe.stripe_num stripe_num, - columnar.stripe.row_count row_count, - columnar.stripe.first_row_number first_row_number -FROM columnar.stripe, -( - SELECT c.oid relid, c.relname relname, (columnar_storage_info(c.oid)).storage_id relstorageid - FROM pg_class c, pg_am a - WHERE c.relam = a.oid AND amname = 'columnar' -) columnar_table_storageids -WHERE relstorageid = columnar.stripe.storage_id; -SET search_path TO upgrade_columnar_metapage, public; --- show that first_row_number values are equal to MAX(row_count) * stripe_num + COLUMNAR_FIRST_ROW_NUMBER -SELECT * FROM columnar_table_stripe_info ORDER BY relname, stripe_num; - relname | stripe_num | row_count | first_row_number ---------------------------------------------------------------------- - columnar_table_1 | 1 | 150000 | 1 - columnar_table_1 | 2 | 10000 | 150001 - columnar_table_2 | 1 | 1000 | 1 - columnar_table_2 | 2 | 901 | 150001 - columnar_table_3 | 1 | 2 | 1 -(5 rows) - --- should work since we upgrade metapages when upgrading schema version -INSERT INTO columnar_table_1 VALUES (3); --- state of stripe metadata for columnar_table_1 after post-upgrade insert -SELECT * FROM columnar_table_stripe_info WHERE relname = 'columnar_table_1' ORDER BY stripe_num; - relname | stripe_num | row_count | first_row_number ---------------------------------------------------------------------- - columnar_table_1 | 1 | 150000 | 1 - columnar_table_1 | 2 | 10000 | 150001 - columnar_table_1 | 3 | 1 | 160001 -(3 rows) - --- show that all columnar relation's metapage's are upgraded to "2.0" -SELECT count(*)=0 -FROM (SELECT (columnar_storage_info(c.oid)).* t - FROM pg_class c, pg_am a - WHERE c.relam = a.oid AND amname = 'columnar') t -WHERE t.version_major != 2 and t.version_minor != 0; - ?column? ---------------------------------------------------------------------- - t -(1 row) - --- print metapage for two of the tables -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_1'); - version_major | version_minor | reserved_stripe_id | reserved_row_number ---------------------------------------------------------------------- - 2 | 0 | 4 | 310001 -(1 row) - -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_2'); - version_major | version_minor | reserved_stripe_id | reserved_row_number ---------------------------------------------------------------------- - 2 | 0 | 3 | 150902 -(1 row) - --- show that no_data_columnar_table also has metapage after upgrade -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('no_data_columnar_table'); - version_major | version_minor | reserved_stripe_id | reserved_row_number ---------------------------------------------------------------------- - 2 | 0 | 1 | 1 -(1 row) - --- table is already upgraded, make sure that upgrade_columnar_metapage is no-op -SELECT columnar_internal.upgrade_columnar_storage(c.oid) -FROM pg_class c, pg_am a -WHERE c.relam = a.oid AND amname = 'columnar' and relname = 'columnar_table_2'; - upgrade_columnar_storage ---------------------------------------------------------------------- - -(1 row) - -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_2'); - version_major | version_minor | reserved_stripe_id | reserved_row_number ---------------------------------------------------------------------- - 2 | 0 | 3 | 150902 -(1 row) - -VACUUM FULL columnar_table_2; --- print metapage and stripe metadata after post-upgrade vacuum full -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_2'); - version_major | version_minor | reserved_stripe_id | reserved_row_number ---------------------------------------------------------------------- - 2 | 0 | 3 | 2001 -(1 row) - -SELECT * FROM columnar_table_stripe_info WHERE relname = 'columnar_table_2' ORDER BY stripe_num; - relname | stripe_num | row_count | first_row_number ---------------------------------------------------------------------- - columnar_table_2 | 1 | 1000 | 1 - columnar_table_2 | 2 | 901 | 1001 -(2 rows) - diff --git a/src/test/regress/expected/upgrade_columnar_metapage_after_0.out b/src/test/regress/expected/upgrade_columnar_metapage_after_0.out deleted file mode 100644 index e515fe47d..000000000 --- a/src/test/regress/expected/upgrade_columnar_metapage_after_0.out +++ /dev/null @@ -1,13 +0,0 @@ -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND - substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 -AS upgrade_test_old_citus_version_ge_10_0; - upgrade_test_old_citus_version_ge_10_0 ---------------------------------------------------------------------- - f -(1 row) - -\gset -\if :upgrade_test_old_citus_version_ge_10_0 -\else -\q diff --git a/src/test/regress/expected/upgrade_columnar_metapage_before.out b/src/test/regress/expected/upgrade_columnar_metapage_before.out deleted file mode 100644 index 936ad7f10..000000000 --- a/src/test/regress/expected/upgrade_columnar_metapage_before.out +++ /dev/null @@ -1,31 +0,0 @@ -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND - substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 -AS upgrade_test_old_citus_version_ge_10_0; - upgrade_test_old_citus_version_ge_10_0 ---------------------------------------------------------------------- - t -(1 row) - -\gset -\if :upgrade_test_old_citus_version_ge_10_0 -\else -\q -\endif -CREATE SCHEMA upgrade_columnar_metapage; -SET search_path TO upgrade_columnar_metapage, public; -CREATE TABLE columnar_table_1(a INT, b INT) USING columnar; -INSERT INTO columnar_table_1 SELECT i FROM generate_series(160001, 320000) i; -CREATE TABLE columnar_table_2(b INT) USING columnar; -SELECT alter_columnar_table_set('columnar_table_2', - chunk_group_row_limit => 1000, - stripe_row_limit => 1000); - alter_columnar_table_set ---------------------------------------------------------------------- - -(1 row) - -INSERT INTO columnar_table_2 SELECT i FROM generate_series(1600, 3500) i; -CREATE TABLE columnar_table_3(b INT) USING columnar; -INSERT INTO columnar_table_3 VALUES (1), (2); -CREATE TABLE no_data_columnar_table(a INT, b INT, c TEXT) USING columnar; diff --git a/src/test/regress/expected/upgrade_columnar_metapage_before_0.out b/src/test/regress/expected/upgrade_columnar_metapage_before_0.out deleted file mode 100644 index e515fe47d..000000000 --- a/src/test/regress/expected/upgrade_columnar_metapage_before_0.out +++ /dev/null @@ -1,13 +0,0 @@ -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND - substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 -AS upgrade_test_old_citus_version_ge_10_0; - upgrade_test_old_citus_version_ge_10_0 ---------------------------------------------------------------------- - f -(1 row) - -\gset -\if :upgrade_test_old_citus_version_ge_10_0 -\else -\q diff --git a/src/test/regress/expected/upgrade_partition_constraints_after.out b/src/test/regress/expected/upgrade_partition_constraints_after.out deleted file mode 100644 index b8980fabc..000000000 --- a/src/test/regress/expected/upgrade_partition_constraints_after.out +++ /dev/null @@ -1,33 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 ---------------------------------------------------------------------- - t -(1 row) - -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif --- test cases for #3970 -SET search_path = test_3970; ---5. add a partition --- This command will fail as the child table has a wrong constraint name -CREATE TABLE part_table_p202009 PARTITION OF part_table FOR VALUES FROM ('2020-09-01 00:00:00') TO ('2020-10-01 00:00:00'); -ERROR: child table is missing constraint "ck_01234567890123456789012345678901234567890123_8478db72_xxxxxx" -CONTEXT: while executing command on localhost:xxxxx --- fix constraint names on partitioned table shards -SELECT fix_pre_citus10_partitioned_table_constraint_names('part_table'::regclass); - fix_pre_citus10_partitioned_table_constraint_names ---------------------------------------------------------------------- - -(1 row) - ---5. add a partition -CREATE TABLE part_table_p202009 PARTITION OF part_table FOR VALUES FROM ('2020-09-01 00:00:00') TO ('2020-10-01 00:00:00'); -RESET search_path; -DROP SCHEMA test_3970 CASCADE; -NOTICE: drop cascades to table test_3970.part_table diff --git a/src/test/regress/expected/upgrade_partition_constraints_before.out b/src/test/regress/expected/upgrade_partition_constraints_before.out deleted file mode 100644 index 7e589005a..000000000 --- a/src/test/regress/expected/upgrade_partition_constraints_before.out +++ /dev/null @@ -1,44 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 ---------------------------------------------------------------------- - t -(1 row) - -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif --- test cases for #3970 -CREATE SCHEMA test_3970; -SET search_path = test_3970; ---1. create a partitioned table -CREATE TABLE part_table ( - work_ymdt timestamp without time zone NOT NULL, - seq bigint NOT NULL, - my_seq bigint NOT NULL, - work_memo character varying(150), - CONSTRAINT work_memo_check CHECK ((octet_length((work_memo)::text) <= 150)) -) -PARTITION BY RANGE (work_ymdt); ---2. perform create_distributed_table -SELECT create_distributed_table('part_table', 'seq'); - create_distributed_table ---------------------------------------------------------------------- - -(1 row) - ---3. add a partition -CREATE TABLE part_table_p202008 PARTITION OF part_table FOR VALUES FROM ('2020-08-01 00:00:00') TO ('2020-09-01 00:00:00'); ---4. add a check constraint -ALTER TABLE part_table ADD CONSTRAINT my_seq CHECK (my_seq > 0); ---5. add a partition --- This command will fail as the child table has a wrong constraint name -CREATE TABLE part_table_p202009 PARTITION OF part_table FOR VALUES FROM ('2020-09-01 00:00:00') TO ('2020-10-01 00:00:00'); -ERROR: child table is missing constraint "my_seq_xxxxxx" -CONTEXT: while executing command on localhost:xxxxx --- Add another constraint with a long name that will get truncated with a hash -ALTER TABLE part_table ADD CONSTRAINT ck_012345678901234567890123456789012345678901234567890123456789 CHECK (my_seq > 0); diff --git a/src/test/regress/expected/upgrade_partition_constraints_before_0.out b/src/test/regress/expected/upgrade_partition_constraints_before_0.out deleted file mode 100644 index 1654fa35c..000000000 --- a/src/test/regress/expected/upgrade_partition_constraints_before_0.out +++ /dev/null @@ -1,13 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 ---------------------------------------------------------------------- - f -(1 row) - -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_after.out b/src/test/regress/expected/upgrade_pg_dist_object_test_after.out deleted file mode 100644 index 2490664fc..000000000 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_after.out +++ /dev/null @@ -1,90 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 ---------------------------------------------------------------------- - t -(1 row) - -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif --- drop objects from previous test (uprade_basic_after.sql) for a clean test --- drop upgrade_basic schema and switch back to public schema -SET search_path to public; -DROP SCHEMA upgrade_basic CASCADE; -NOTICE: drop cascades to 7 other objects -DETAIL: drop cascades to table upgrade_basic.t -drop cascades to table upgrade_basic.tp -drop cascades to table upgrade_basic.t_ab -drop cascades to table upgrade_basic.t2 -drop cascades to table upgrade_basic.r -drop cascades to table upgrade_basic.tr -drop cascades to table upgrade_basic.t_range --- as we updated citus to available version, --- "isn" extension --- "new_schema" schema --- "public" schema --- "fooschema" schema --- "footype" type (under schema 'fooschema') - -- will now be marked as distributed - -- but, - -- "seg" extension - -- will not be marked as distributed --- see underlying objects -SELECT i.* FROM pg_catalog.pg_dist_object, pg_identify_object_as_address(classid, objid, objsubid) i ORDER BY 1, 2, 3; - type | object_names | object_args ---------------------------------------------------------------------- - collation | {post_11_upgrade,german_phonebook_unpropagated} | {} - database | {postgres} | {} - extension | {plpgsql} | {} - function | {post_11_upgrade,func_in_transaction_def} | {} - role | {postgres} | {} - schema | {fooschema} | {} - schema | {new_schema} | {} - schema | {post_11_upgrade} | {} - schema | {public} | {} - sequence | {post_11_upgrade,SC1} | {} - sequence | {post_11_upgrade,seq_bigint} | {} - sequence | {post_11_upgrade,unrelated_sequence} | {} - table | {fooschema,footable} | {} - table | {new_schema,another_dist_table} | {} - table | {post_11_upgrade,colocated_dist_table} | {} - table | {post_11_upgrade,colocated_partitioned_table} | {} - table | {post_11_upgrade,colocated_partitioned_table_2020_01_01} | {} - table | {post_11_upgrade,dist} | {} - table | {post_11_upgrade,employees} | {} - table | {post_11_upgrade,index_backed_rep_identity} | {} - table | {post_11_upgrade,part_table} | {} - table | {post_11_upgrade,part_table_p202008} | {} - table | {post_11_upgrade,part_table_p202009} | {} - table | {post_11_upgrade,reference_table} | {} - table | {post_11_upgrade,sensors} | {} - table | {post_11_upgrade,sensors_2020_01_01} | {} - table | {post_11_upgrade,sensors_news} | {} - table | {post_11_upgrade,sensors_old} | {} - table | {post_11_upgrade,sensors_parser} | {} - table | {post_11_upgrade,sensors_parser_a_partition} | {} - table | {post_11_upgrade,test} | {} - table | {post_11_upgrade,test_propagate_collate} | {} - table | {public,dist_table} | {} - text search configuration | {post_11_upgrade,partial_index_test_config} | {} - type | {fooschema.footype} | {} - type | {post_11_upgrade.my_type} | {} - type | {post_11_upgrade.my_type_for_view} | {} - view | {post_11_upgrade,depends_on_citus} | {} - view | {post_11_upgrade,depends_on_nothing_1} | {} - view | {post_11_upgrade,depends_on_nothing_2} | {} - view | {post_11_upgrade,depends_on_pg} | {} - view | {post_11_upgrade,depends_on_seq} | {} - view | {post_11_upgrade,non_dist_upgrade_multiple_dist_view} | {} - view | {post_11_upgrade,non_dist_upgrade_ref_view} | {} - view | {post_11_upgrade,non_dist_upgrade_ref_view_2} | {} - view | {post_11_upgrade,reporting_line} | {} - view | {post_11_upgrade,view_for_upgrade_test} | {} - view | {post_11_upgrade,view_for_upgrade_test_my_type} | {} - (48 rows) - diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_after_1.out b/src/test/regress/expected/upgrade_pg_dist_object_test_after_1.out deleted file mode 100644 index 61e3ef713..000000000 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_after_1.out +++ /dev/null @@ -1,51 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 ---------------------------------------------------------------------- - t -(1 row) - -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif --- drop objects from previous test (uprade_basic_after.sql) for a clean test --- drop upgrade_basic schema and switch back to public schema -SET search_path to public; -DROP SCHEMA upgrade_basic CASCADE; -NOTICE: drop cascades to 7 other objects -DETAIL: drop cascades to table upgrade_basic.t -drop cascades to table upgrade_basic.tp -drop cascades to table upgrade_basic.t_ab -drop cascades to table upgrade_basic.t2 -drop cascades to table upgrade_basic.r -drop cascades to table upgrade_basic.tr -drop cascades to table upgrade_basic.t_range --- as we updated citus to available version, --- "isn" extension --- "new_schema" schema --- "public" schema --- "fooschema" schema --- "footype" type (under schema 'fooschema') - -- will now be marked as distributed - -- but, - -- "seg" extension - -- will not be marked as distributed --- see underlying objects -SELECT i.* FROM pg_catalog.pg_dist_object, pg_identify_object_as_address(classid, objid, objsubid) i ORDER BY 1, 2, 3; - type | object_names | object_args ---------------------------------------------------------------------- - database | {postgres} | {} - role | {postgres} | {} - schema | {fooschema} | {} - schema | {new_schema} | {} - schema | {public} | {} - table | {fooschema,footable} | {} - table | {new_schema,another_dist_table} | {} - table | {public,dist_table} | {} - type | {fooschema.footype} | {} - (9 rows) - diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_before.out b/src/test/regress/expected/upgrade_pg_dist_object_test_before.out deleted file mode 100644 index c5ae71852..000000000 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_before.out +++ /dev/null @@ -1,46 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 ---------------------------------------------------------------------- - t -(1 row) - -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif --- schema propagation -- --- public schema -CREATE TABLE dist_table (a int); -SELECT create_reference_table('dist_table'); - create_reference_table ---------------------------------------------------------------------- - -(1 row) - --- custom schema -CREATE SCHEMA new_schema; -SET search_path to new_schema; -CREATE TABLE another_dist_table (a int); -SELECT create_reference_table('another_dist_table'); - create_reference_table ---------------------------------------------------------------------- - -(1 row) - --- another custom schema and a type --- create table that depends both on a type & schema here (actually type depends on the schema) --- here we test if schema is marked as distributed successfully. --- This is because tracking the dependencies will hit to the schema for two times -CREATE SCHEMA fooschema; -CREATE TYPE fooschema.footype AS (x int, y int); -CREATE TABLE fooschema.footable (f fooschema.footype); -SELECT create_reference_table('fooschema.footable'); - create_reference_table ---------------------------------------------------------------------- - -(1 row) - diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_before_0.out b/src/test/regress/expected/upgrade_pg_dist_object_test_before_0.out deleted file mode 100644 index 1654fa35c..000000000 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_before_0.out +++ /dev/null @@ -1,13 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 ---------------------------------------------------------------------- - f -(1 row) - -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q diff --git a/src/test/regress/expected/upgrade_post_11_after.out b/src/test/regress/expected/upgrade_post_11_after.out index cf41da8e1..422bc846f 100644 --- a/src/test/regress/expected/upgrade_post_11_after.out +++ b/src/test/regress/expected/upgrade_post_11_after.out @@ -1,3 +1,17 @@ +-- run this test only when old citus version is earlier than 11.0 +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; + upgrade_test_old_citus_version_lt_11_0 +--------------------------------------------------------------------- + t +(1 row) + +\gset +\if :upgrade_test_old_citus_version_lt_11_0 +\else +\q +\endif SET search_path = post_11_upgrade; -- tables, views and their dependencies become objects with Citus 11+ SELECT pg_identify_object_as_address(classid, objid, objsubid) FROM pg_catalog.pg_dist_object WHERE objid IN ('post_11_upgrade'::regnamespace, 'post_11_upgrade.part_table'::regclass, 'post_11_upgrade.sensors'::regclass, 'post_11_upgrade.func_in_transaction_def'::regproc, 'post_11_upgrade.partial_index_test_config'::regconfig, 'post_11_upgrade.my_type'::regtype, 'post_11_upgrade.employees'::regclass, 'post_11_upgrade.view_for_upgrade_test'::regclass, 'post_11_upgrade.my_type_for_view'::regtype, 'post_11_upgrade.view_for_upgrade_test_my_type'::regclass, 'post_11_upgrade.non_dist_table_for_view'::regclass, 'post_11_upgrade.non_dist_upgrade_test_view'::regclass, 'post_11_upgrade.non_dist_upgrade_test_view_local_join'::regclass, 'post_11_upgrade.non_dist_upgrade_multiple_dist_view'::regclass, 'post_11_upgrade.non_dist_upgrade_ref_view'::regclass, 'post_11_upgrade.non_dist_upgrade_ref_view_2'::regclass, 'post_11_upgrade.reporting_line'::regclass, 'post_11_upgrade.v_test_1'::regclass, 'post_11_upgrade.v_test_2'::regclass, 'post_11_upgrade.owned_by_extension_table'::regclass, 'post_11_upgrade.materialized_view'::regclass, 'post_11_upgrade.owned_by_extension_view'::regclass, 'post_11_upgrade.local_type'::regtype, 'post_11_upgrade.non_dist_dist_table_for_view'::regclass, 'post_11_upgrade.depends_on_nothing_1'::regclass, 'post_11_upgrade.depends_on_nothing_2'::regclass, 'post_11_upgrade.depends_on_pg'::regclass, 'post_11_upgrade.depends_on_citus'::regclass, 'post_11_upgrade.depends_on_seq'::regclass, 'post_11_upgrade.depends_on_seq_and_no_support'::regclass) ORDER BY 1; diff --git a/src/test/regress/expected/upgrade_partition_constraints_after_0.out b/src/test/regress/expected/upgrade_post_11_after_0.out similarity index 52% rename from src/test/regress/expected/upgrade_partition_constraints_after_0.out rename to src/test/regress/expected/upgrade_post_11_after_0.out index 1654fa35c..7ddb3fe39 100644 --- a/src/test/regress/expected/upgrade_partition_constraints_after_0.out +++ b/src/test/regress/expected/upgrade_post_11_after_0.out @@ -1,13 +1,13 @@ --- run this test only when old citus version is earlier than 10.0 +-- run this test only when old citus version is earlier than 11.0 \set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; + upgrade_test_old_citus_version_lt_11_0 --------------------------------------------------------------------- f (1 row) \gset -\if :upgrade_test_old_citus_version_lt_10_0 +\if :upgrade_test_old_citus_version_lt_11_0 \else \q diff --git a/src/test/regress/expected/upgrade_post_11_before.out b/src/test/regress/expected/upgrade_post_11_before.out index 05ff85578..695e5f743 100644 --- a/src/test/regress/expected/upgrade_post_11_before.out +++ b/src/test/regress/expected/upgrade_post_11_before.out @@ -1,3 +1,17 @@ +-- run this test only when old citus version is earlier than 11.0 +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; + upgrade_test_old_citus_version_lt_11_0 +--------------------------------------------------------------------- + t +(1 row) + +\gset +\if :upgrade_test_old_citus_version_lt_11_0 +\else +\q +\endif -- test cases for #3970 SET citus.shard_count TO 32; SET citus.shard_replication_factor TO 1; diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_after_0.out b/src/test/regress/expected/upgrade_post_11_before_0.out similarity index 52% rename from src/test/regress/expected/upgrade_pg_dist_object_test_after_0.out rename to src/test/regress/expected/upgrade_post_11_before_0.out index 1654fa35c..7ddb3fe39 100644 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_after_0.out +++ b/src/test/regress/expected/upgrade_post_11_before_0.out @@ -1,13 +1,13 @@ --- run this test only when old citus version is earlier than 10.0 +-- run this test only when old citus version is earlier than 11.0 \set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; - upgrade_test_old_citus_version_lt_10_0 +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; + upgrade_test_old_citus_version_lt_11_0 --------------------------------------------------------------------- f (1 row) \gset -\if :upgrade_test_old_citus_version_lt_10_0 +\if :upgrade_test_old_citus_version_lt_11_0 \else \q diff --git a/src/test/regress/mixed_after_citus_upgrade_schedule b/src/test/regress/mixed_after_citus_upgrade_schedule index 223d7f349..9722b7317 100644 --- a/src/test/regress/mixed_after_citus_upgrade_schedule +++ b/src/test/regress/mixed_after_citus_upgrade_schedule @@ -1,2 +1 @@ test: upgrade_basic_after -test: upgrade_pg_dist_object_test_after diff --git a/src/test/regress/mixed_before_citus_upgrade_schedule b/src/test/regress/mixed_before_citus_upgrade_schedule index d7447b6df..7ed0eb5bf 100644 --- a/src/test/regress/mixed_before_citus_upgrade_schedule +++ b/src/test/regress/mixed_before_citus_upgrade_schedule @@ -1,2 +1 @@ test: upgrade_basic_before -test: upgrade_pg_dist_object_test_before diff --git a/src/test/regress/sql/upgrade_citus_finish_citus_upgrade.sql b/src/test/regress/sql/upgrade_citus_finish_citus_upgrade.sql index a326fb0a4..8d0405ea6 100644 --- a/src/test/regress/sql/upgrade_citus_finish_citus_upgrade.sql +++ b/src/test/regress/sql/upgrade_citus_finish_citus_upgrade.sql @@ -1,5 +1,12 @@ -- Citus upgrades are finished by calling a procedure +-- Note that pg_catalog.citus_finish_citus_upgrade() behaves differently +-- when last upgrade citus version is less than 11 +-- so we have two alternative outputs for this test +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; + -- this is a transactional procedure, so rollback should be fine BEGIN; CALL citus_finish_citus_upgrade(); diff --git a/src/test/regress/sql/upgrade_columnar_metapage_after.sql b/src/test/regress/sql/upgrade_columnar_metapage_after.sql deleted file mode 100644 index d015d0b0d..000000000 --- a/src/test/regress/sql/upgrade_columnar_metapage_after.sql +++ /dev/null @@ -1,78 +0,0 @@ -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND - substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 -AS upgrade_test_old_citus_version_ge_10_0; -\gset -\if :upgrade_test_old_citus_version_ge_10_0 -\else -\q -\endif - --- it's not the best practice to define this here, but we don't want to include --- columnar_test_helpers in upgrade test schedule -CREATE OR REPLACE FUNCTION columnar_storage_info( - rel regclass, - version_major OUT int4, - version_minor OUT int4, - storage_id OUT int8, - reserved_stripe_id OUT int8, - reserved_row_number OUT int8, - reserved_offset OUT int8) -STRICT -LANGUAGE c AS 'citus', 'columnar_storage_info'; - -CREATE VIEW columnar_table_stripe_info AS -SELECT columnar_table_storageids.relname relname, - columnar.stripe.stripe_num stripe_num, - columnar.stripe.row_count row_count, - columnar.stripe.first_row_number first_row_number -FROM columnar.stripe, -( - SELECT c.oid relid, c.relname relname, (columnar_storage_info(c.oid)).storage_id relstorageid - FROM pg_class c, pg_am a - WHERE c.relam = a.oid AND amname = 'columnar' -) columnar_table_storageids -WHERE relstorageid = columnar.stripe.storage_id; - -SET search_path TO upgrade_columnar_metapage, public; - --- show that first_row_number values are equal to MAX(row_count) * stripe_num + COLUMNAR_FIRST_ROW_NUMBER -SELECT * FROM columnar_table_stripe_info ORDER BY relname, stripe_num; - --- should work since we upgrade metapages when upgrading schema version -INSERT INTO columnar_table_1 VALUES (3); - --- state of stripe metadata for columnar_table_1 after post-upgrade insert -SELECT * FROM columnar_table_stripe_info WHERE relname = 'columnar_table_1' ORDER BY stripe_num; - --- show that all columnar relation's metapage's are upgraded to "2.0" -SELECT count(*)=0 -FROM (SELECT (columnar_storage_info(c.oid)).* t - FROM pg_class c, pg_am a - WHERE c.relam = a.oid AND amname = 'columnar') t -WHERE t.version_major != 2 and t.version_minor != 0; - --- print metapage for two of the tables -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_1'); -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_2'); - --- show that no_data_columnar_table also has metapage after upgrade -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('no_data_columnar_table'); - --- table is already upgraded, make sure that upgrade_columnar_metapage is no-op -SELECT columnar_internal.upgrade_columnar_storage(c.oid) -FROM pg_class c, pg_am a -WHERE c.relam = a.oid AND amname = 'columnar' and relname = 'columnar_table_2'; - -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_2'); - -VACUUM FULL columnar_table_2; - --- print metapage and stripe metadata after post-upgrade vacuum full -SELECT version_major, version_minor, reserved_stripe_id, reserved_row_number - FROM columnar_storage_info('columnar_table_2'); -SELECT * FROM columnar_table_stripe_info WHERE relname = 'columnar_table_2' ORDER BY stripe_num; diff --git a/src/test/regress/sql/upgrade_columnar_metapage_before.sql b/src/test/regress/sql/upgrade_columnar_metapage_before.sql deleted file mode 100644 index 34e6d4fa4..000000000 --- a/src/test/regress/sql/upgrade_columnar_metapage_before.sql +++ /dev/null @@ -1,26 +0,0 @@ -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND - substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 -AS upgrade_test_old_citus_version_ge_10_0; -\gset -\if :upgrade_test_old_citus_version_ge_10_0 -\else -\q -\endif - -CREATE SCHEMA upgrade_columnar_metapage; -SET search_path TO upgrade_columnar_metapage, public; - -CREATE TABLE columnar_table_1(a INT, b INT) USING columnar; -INSERT INTO columnar_table_1 SELECT i FROM generate_series(160001, 320000) i; - -CREATE TABLE columnar_table_2(b INT) USING columnar; -SELECT alter_columnar_table_set('columnar_table_2', - chunk_group_row_limit => 1000, - stripe_row_limit => 1000); -INSERT INTO columnar_table_2 SELECT i FROM generate_series(1600, 3500) i; - -CREATE TABLE columnar_table_3(b INT) USING columnar; -INSERT INTO columnar_table_3 VALUES (1), (2); - -CREATE TABLE no_data_columnar_table(a INT, b INT, c TEXT) USING columnar; diff --git a/src/test/regress/sql/upgrade_partition_constraints_after.sql b/src/test/regress/sql/upgrade_partition_constraints_after.sql deleted file mode 100644 index bf18d6ca4..000000000 --- a/src/test/regress/sql/upgrade_partition_constraints_after.sql +++ /dev/null @@ -1,25 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif - --- test cases for #3970 -SET search_path = test_3970; - ---5. add a partition --- This command will fail as the child table has a wrong constraint name -CREATE TABLE part_table_p202009 PARTITION OF part_table FOR VALUES FROM ('2020-09-01 00:00:00') TO ('2020-10-01 00:00:00'); - --- fix constraint names on partitioned table shards -SELECT fix_pre_citus10_partitioned_table_constraint_names('part_table'::regclass); - ---5. add a partition -CREATE TABLE part_table_p202009 PARTITION OF part_table FOR VALUES FROM ('2020-09-01 00:00:00') TO ('2020-10-01 00:00:00'); - -RESET search_path; -DROP SCHEMA test_3970 CASCADE; diff --git a/src/test/regress/sql/upgrade_partition_constraints_before.sql b/src/test/regress/sql/upgrade_partition_constraints_before.sql deleted file mode 100644 index a64f8c0e8..000000000 --- a/src/test/regress/sql/upgrade_partition_constraints_before.sql +++ /dev/null @@ -1,39 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif - --- test cases for #3970 -CREATE SCHEMA test_3970; -SET search_path = test_3970; - ---1. create a partitioned table -CREATE TABLE part_table ( - work_ymdt timestamp without time zone NOT NULL, - seq bigint NOT NULL, - my_seq bigint NOT NULL, - work_memo character varying(150), - CONSTRAINT work_memo_check CHECK ((octet_length((work_memo)::text) <= 150)) -) -PARTITION BY RANGE (work_ymdt); - ---2. perform create_distributed_table -SELECT create_distributed_table('part_table', 'seq'); - ---3. add a partition -CREATE TABLE part_table_p202008 PARTITION OF part_table FOR VALUES FROM ('2020-08-01 00:00:00') TO ('2020-09-01 00:00:00'); - ---4. add a check constraint -ALTER TABLE part_table ADD CONSTRAINT my_seq CHECK (my_seq > 0); - ---5. add a partition --- This command will fail as the child table has a wrong constraint name -CREATE TABLE part_table_p202009 PARTITION OF part_table FOR VALUES FROM ('2020-09-01 00:00:00') TO ('2020-10-01 00:00:00'); - --- Add another constraint with a long name that will get truncated with a hash -ALTER TABLE part_table ADD CONSTRAINT ck_012345678901234567890123456789012345678901234567890123456789 CHECK (my_seq > 0); diff --git a/src/test/regress/sql/upgrade_pg_dist_object_test_after.sql b/src/test/regress/sql/upgrade_pg_dist_object_test_after.sql deleted file mode 100644 index 49926f6fb..000000000 --- a/src/test/regress/sql/upgrade_pg_dist_object_test_after.sql +++ /dev/null @@ -1,28 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif - --- drop objects from previous test (uprade_basic_after.sql) for a clean test --- drop upgrade_basic schema and switch back to public schema -SET search_path to public; -DROP SCHEMA upgrade_basic CASCADE; - --- as we updated citus to available version, --- "isn" extension --- "new_schema" schema --- "public" schema --- "fooschema" schema --- "footype" type (under schema 'fooschema') --- will now be marked as distributed --- but, --- "seg" extension --- will not be marked as distributed - --- see underlying objects -SELECT i.* FROM pg_catalog.pg_dist_object, pg_identify_object_as_address(classid, objid, objsubid) i ORDER BY 1, 2, 3; diff --git a/src/test/regress/sql/upgrade_pg_dist_object_test_before.sql b/src/test/regress/sql/upgrade_pg_dist_object_test_before.sql deleted file mode 100644 index 9b2cead88..000000000 --- a/src/test/regress/sql/upgrade_pg_dist_object_test_before.sql +++ /dev/null @@ -1,35 +0,0 @@ --- run this test only when old citus version is earlier than 10.0 -\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` -SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 10 -AS upgrade_test_old_citus_version_lt_10_0; -\gset -\if :upgrade_test_old_citus_version_lt_10_0 -\else -\q -\endif - --- schema propagation -- - --- public schema -CREATE TABLE dist_table (a int); -SELECT create_reference_table('dist_table'); - --- custom schema -CREATE SCHEMA new_schema; - -SET search_path to new_schema; - -CREATE TABLE another_dist_table (a int); -SELECT create_reference_table('another_dist_table'); - --- another custom schema and a type - --- create table that depends both on a type & schema here (actually type depends on the schema) --- here we test if schema is marked as distributed successfully. --- This is because tracking the dependencies will hit to the schema for two times - -CREATE SCHEMA fooschema; -CREATE TYPE fooschema.footype AS (x int, y int); - -CREATE TABLE fooschema.footable (f fooschema.footype); -SELECT create_reference_table('fooschema.footable'); diff --git a/src/test/regress/sql/upgrade_post_11_after.sql b/src/test/regress/sql/upgrade_post_11_after.sql index 946c52ae2..ba9b12f3b 100644 --- a/src/test/regress/sql/upgrade_post_11_after.sql +++ b/src/test/regress/sql/upgrade_post_11_after.sql @@ -1,3 +1,13 @@ +-- run this test only when old citus version is earlier than 11.0 +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; +\gset +\if :upgrade_test_old_citus_version_lt_11_0 +\else +\q +\endif + SET search_path = post_11_upgrade; -- tables, views and their dependencies become objects with Citus 11+ diff --git a/src/test/regress/sql/upgrade_post_11_before.sql b/src/test/regress/sql/upgrade_post_11_before.sql index 9d17c78ac..617adc7b0 100644 --- a/src/test/regress/sql/upgrade_post_11_before.sql +++ b/src/test/regress/sql/upgrade_post_11_before.sql @@ -1,3 +1,12 @@ +-- run this test only when old citus version is earlier than 11.0 +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` +SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int < 11 +AS upgrade_test_old_citus_version_lt_11_0; +\gset +\if :upgrade_test_old_citus_version_lt_11_0 +\else +\q +\endif -- test cases for #3970 SET citus.shard_count TO 32;