From 28b0b0e7a8bba507263ada48677e7abb6def93e2 Mon Sep 17 00:00:00 2001 From: Naisila Puka <37271756+naisila@users.noreply.github.com> Date: Tue, 24 Dec 2024 11:40:59 +0300 Subject: [PATCH] Bump Citus version into 13.0.0 (#7792) We are using `release-13.0` branch for both development and release, to deliver PG17 support in Citus. Afterwards, we will (probably) merge this branch into main. Some potential changes for main branch, after we are done working on release-13.0: - Merge changes from `release-13.0` to `main` - Figure out what changes were there on 12.2, move them to 13.1 version. In a nutshell: rename `12.1--12.2` to `13.0--13.1` and fix issues. - Set version to 13.1devel --- configure | 18 ++++---- configure.ac | 2 +- src/backend/distributed/citus.control | 2 +- .../distributed/sql/citus--12.1-1--13.0-1.sql | 3 ++ .../sql/downgrades/citus--13.0-1--12.1-1.sql | 2 + src/test/regress/citus_tests/common.py | 2 +- src/test/regress/citus_tests/config.py | 2 +- src/test/regress/expected/multi_extension.out | 44 ++++--------------- src/test/regress/sql/multi_extension.sql | 9 ++-- 9 files changed, 31 insertions(+), 53 deletions(-) create mode 100644 src/backend/distributed/sql/citus--12.1-1--13.0-1.sql create mode 100644 src/backend/distributed/sql/downgrades/citus--13.0-1--12.1-1.sql diff --git a/configure b/configure index a0c978dea..4bda6f37f 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Citus 12.2devel. +# Generated by GNU Autoconf 2.69 for Citus 13.0.0. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Citus' PACKAGE_TARNAME='citus' -PACKAGE_VERSION='12.2devel' -PACKAGE_STRING='Citus 12.2devel' +PACKAGE_VERSION='13.0.0' +PACKAGE_STRING='Citus 13.0.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1262,7 +1262,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Citus 12.2devel to adapt to many kinds of systems. +\`configure' configures Citus 13.0.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1324,7 +1324,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Citus 12.2devel:";; + short | recursive ) echo "Configuration of Citus 13.0.0:";; esac cat <<\_ACEOF @@ -1429,7 +1429,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Citus configure 12.2devel +Citus configure 13.0.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1912,7 +1912,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Citus $as_me 12.2devel, which was +It was created by Citus $as_me 13.0.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -5393,7 +5393,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Citus $as_me 12.2devel, which was +This file was extended by Citus $as_me 13.0.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5455,7 +5455,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Citus config.status 12.2devel +Citus config.status 13.0.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 2a4c7a21a..6ecb13760 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ # everyone needing autoconf installed, the resulting files are checked # into the SCM. -AC_INIT([Citus], [12.2devel]) +AC_INIT([Citus], [13.0.0]) AC_COPYRIGHT([Copyright (c) Citus Data, Inc.]) # we'll need sed and awk for some of the version commands diff --git a/src/backend/distributed/citus.control b/src/backend/distributed/citus.control index 91c0a3be7..9c0202632 100644 --- a/src/backend/distributed/citus.control +++ b/src/backend/distributed/citus.control @@ -1,6 +1,6 @@ # Citus extension comment = 'Citus distributed database' -default_version = '12.2-1' +default_version = '13.0-1' module_pathname = '$libdir/citus' relocatable = false schema = pg_catalog diff --git a/src/backend/distributed/sql/citus--12.1-1--13.0-1.sql b/src/backend/distributed/sql/citus--12.1-1--13.0-1.sql new file mode 100644 index 000000000..3a342a0fe --- /dev/null +++ b/src/backend/distributed/sql/citus--12.1-1--13.0-1.sql @@ -0,0 +1,3 @@ +-- citus--12.1-1--13.0-1.sql + +-- bump version to 13.0-1 diff --git a/src/backend/distributed/sql/downgrades/citus--13.0-1--12.1-1.sql b/src/backend/distributed/sql/downgrades/citus--13.0-1--12.1-1.sql new file mode 100644 index 000000000..006349990 --- /dev/null +++ b/src/backend/distributed/sql/downgrades/citus--13.0-1--12.1-1.sql @@ -0,0 +1,2 @@ +-- citus--13.0-1--12.1-1 +-- this is an empty downgrade path since citus--12.1-1--13.0-1.sql is empty diff --git a/src/test/regress/citus_tests/common.py b/src/test/regress/citus_tests/common.py index 6c09e0b38..232b39067 100644 --- a/src/test/regress/citus_tests/common.py +++ b/src/test/regress/citus_tests/common.py @@ -92,7 +92,7 @@ PG_MAJOR_VERSION = get_pg_major_version() OLDEST_SUPPORTED_CITUS_VERSION_MATRIX = { 14: "10.2.0", 15: "11.1.5", - 16: "12.1.1", + 16: "12.1.5", } OLDEST_SUPPORTED_CITUS_VERSION = OLDEST_SUPPORTED_CITUS_VERSION_MATRIX[PG_MAJOR_VERSION] diff --git a/src/test/regress/citus_tests/config.py b/src/test/regress/citus_tests/config.py index 9b81863e2..d5ab5a59a 100644 --- a/src/test/regress/citus_tests/config.py +++ b/src/test/regress/citus_tests/config.py @@ -43,7 +43,7 @@ CITUS_ARBITRARY_TEST_DIR = "./tmp_citus_test" MASTER = "master" # This should be updated when citus version changes -MASTER_VERSION = "12.2" +MASTER_VERSION = "13.0" HOME = expanduser("~") diff --git a/src/test/regress/expected/multi_extension.out b/src/test/regress/expected/multi_extension.out index 47b9f553a..ac3800aed 100644 --- a/src/test/regress/expected/multi_extension.out +++ b/src/test/regress/expected/multi_extension.out @@ -1430,8 +1430,8 @@ SELECT * FROM multi_extension.print_extension_changes(); | function citus_schema_move(regnamespace,text,integer,citus.shard_transfer_mode) void (5 rows) --- Test downgrade to 12.1-1 from 12.2-1 -ALTER EXTENSION citus UPDATE TO '12.2-1'; +-- Test downgrade to 12.1-1 from 13.0-1 +ALTER EXTENSION citus UPDATE TO '13.0-1'; ALTER EXTENSION citus UPDATE TO '12.1-1'; -- Should be empty result since upgrade+downgrade should be a no-op SELECT * FROM multi_extension.print_extension_changes(); @@ -1439,45 +1439,19 @@ SELECT * FROM multi_extension.print_extension_changes(); --------------------------------------------------------------------- (0 rows) --- Snapshot of state at 12.2-1 -ALTER EXTENSION citus UPDATE TO '12.2-1'; +-- Snapshot of state at 13.0-1 +ALTER EXTENSION citus UPDATE TO '13.0-1'; SELECT * FROM multi_extension.print_extension_changes(); - previous_object | current_object + previous_object | current_object --------------------------------------------------------------------- - function citus_unmark_object_distributed(oid,oid,integer) void | - | function citus_internal.acquire_citus_advisory_object_class_lock(integer,cstring) void - | function citus_internal.add_colocation_metadata(integer,integer,integer,regtype,oid) void - | function citus_internal.add_object_metadata(text,text[],text[],integer,integer,boolean) void - | function citus_internal.add_partition_metadata(regclass,"char",text,integer,"char") void - | function citus_internal.add_placement_metadata(bigint,bigint,integer,bigint) void - | function citus_internal.add_shard_metadata(regclass,bigint,"char",text,text) void - | function citus_internal.add_tenant_schema(oid,integer) void - | function citus_internal.adjust_local_clock_to_remote(cluster_clock) void - | function citus_internal.database_command(text) void - | function citus_internal.delete_colocation_metadata(integer) void - | function citus_internal.delete_partition_metadata(regclass) void - | function citus_internal.delete_placement_metadata(bigint) void - | function citus_internal.delete_shard_metadata(bigint) void - | function citus_internal.delete_tenant_schema(oid) void - | function citus_internal.global_blocked_processes() SETOF record - | function citus_internal.is_replication_origin_tracking_active() boolean - | function citus_internal.local_blocked_processes() SETOF record - | function citus_internal.mark_node_not_synced(integer,integer) void - | function citus_internal.start_replication_origin_tracking() void - | function citus_internal.stop_replication_origin_tracking() void - | function citus_internal.unregister_tenant_schema_globally(oid,text) void - | function citus_internal.update_none_dist_table_metadata(oid,"char",bigint,boolean) void - | function citus_internal.update_placement_metadata(bigint,integer,integer) void - | function citus_internal.update_relation_colocation(oid,integer) void - | function citus_unmark_object_distributed(oid,oid,integer,boolean) void -(26 rows) +(0 rows) DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff; -- show running version SHOW citus.version; citus.version --------------------------------------------------------------------- - 12.2devel + 13.0.0 (1 row) -- ensure no unexpected objects were created outside pg_catalog @@ -1512,7 +1486,7 @@ DROP EXTENSION citus; DROP EXTENSION citus_columnar; CREATE EXTENSION citus VERSION '8.0-1'; ERROR: specified version incompatible with loaded Citus library -DETAIL: Loaded library requires 12.2, but 8.0-1 was specified. +DETAIL: Loaded library requires 13.0, but 8.0-1 was specified. HINT: If a newer library is present, restart the database and try the command again. -- Test non-distributed queries work even in version mismatch SET citus.enable_version_checks TO 'false'; @@ -1557,7 +1531,7 @@ ORDER BY 1; -- We should not distribute table in version mistmatch SELECT create_distributed_table('version_mismatch_table', 'column1'); ERROR: loaded Citus library version differs from installed extension version -DETAIL: Loaded library requires 12.2, but the installed extension version is 8.1-1. +DETAIL: Loaded library requires 13.0, but the installed extension version is 8.1-1. HINT: Run ALTER EXTENSION citus UPDATE and try again. -- This function will cause fail in next ALTER EXTENSION CREATE OR REPLACE FUNCTION pg_catalog.relation_is_a_known_shard(regclass) diff --git a/src/test/regress/sql/multi_extension.sql b/src/test/regress/sql/multi_extension.sql index 763dc7afb..e0c70fe28 100644 --- a/src/test/regress/sql/multi_extension.sql +++ b/src/test/regress/sql/multi_extension.sql @@ -658,14 +658,13 @@ SELECT * FROM multi_extension.print_extension_changes(); ALTER EXTENSION citus UPDATE TO '12.1-1'; SELECT * FROM multi_extension.print_extension_changes(); --- Test downgrade to 12.1-1 from 12.2-1 -ALTER EXTENSION citus UPDATE TO '12.2-1'; +-- Test downgrade to 12.1-1 from 13.0-1 +ALTER EXTENSION citus UPDATE TO '13.0-1'; ALTER EXTENSION citus UPDATE TO '12.1-1'; -- Should be empty result since upgrade+downgrade should be a no-op SELECT * FROM multi_extension.print_extension_changes(); - --- Snapshot of state at 12.2-1 -ALTER EXTENSION citus UPDATE TO '12.2-1'; +-- Snapshot of state at 13.0-1 +ALTER EXTENSION citus UPDATE TO '13.0-1'; SELECT * FROM multi_extension.print_extension_changes(); DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff;