mirror of https://github.com/citusdata/citus.git
Merge branch 'main' into ihalatci-upload-cov-fix
commit
0b7d37e5ec
149
CHANGELOG.md
149
CHANGELOG.md
|
@ -1,3 +1,147 @@
|
|||
### citus v13.1.0 (May 30th, 2025) ###
|
||||
|
||||
* Adds `citus_stat_counters` view that can be used to query
|
||||
stat counters that Citus collects while the feature is enabled, which is
|
||||
controlled by citus.enable_stat_counters. `citus_stat_counters()` can be
|
||||
used to query the stat counters for the provided database oid and
|
||||
`citus_stat_counters_reset()` can be used to reset them for the provided
|
||||
database oid or for the current database if nothing or 0 is provided (#7917)
|
||||
|
||||
* Adds `citus_nodes` view that displays the node name, port role, and "active"
|
||||
for nodes in the cluster (#7968)
|
||||
|
||||
* Adds `citus_is_primary_node()` UDF to determine if the current node is a
|
||||
primary node in the cluster (#7720)
|
||||
|
||||
* Adds support for propagating `GRANT/REVOKE` rights on table columns (#7918)
|
||||
|
||||
* Adds support for propagating `REASSIGN OWNED BY` commands (#7319)
|
||||
|
||||
* Adds support for propagating `CREATE`/`DROP` database from all nodes (#7240,
|
||||
#7253, #7359)
|
||||
|
||||
* Propagates `SECURITY LABEL ON ROLE` statement from any node (#7508)
|
||||
|
||||
* Adds support for issuing role management commands from worker nodes (#7278)
|
||||
|
||||
* Adds support for propagating `ALTER USER RENAME` commands (#7204)
|
||||
|
||||
* Adds support for propagating `ALTER DATABASE <db_name> SET ..` commands
|
||||
(#7181)
|
||||
|
||||
* Adds support for propagating `SECURITY LABEL` on tables and columns (#7956)
|
||||
|
||||
* Adds support for propagating `COMMENT ON <database>/<role>` commands (#7388)
|
||||
|
||||
* Moves some of the internal citus functions from `pg_catalog` to
|
||||
`citus_internal` schema (#7473, #7470, #7466, 7456, 7450)
|
||||
|
||||
* Adjusts `max_prepared_transactions` only when it's set to default on PG >= 16
|
||||
(#7712)
|
||||
|
||||
* Adds skip_qualify_public param to shard_name() UDF to allow qualifying for
|
||||
"public" schema when needed (#8014)
|
||||
|
||||
* Allows `citus_*_size` on indexes on a distributed tables (#7271)
|
||||
|
||||
* Allows `GRANT ADMIN` to now also be `INHERIT` or `SET` in support of PG16
|
||||
|
||||
* Makes sure `worker_copy_table_to_node` errors out with Citus tables (#7662)
|
||||
|
||||
* Adds information to explain output when using
|
||||
`citus.explain_distributed_queries=false` (#7412)
|
||||
|
||||
* Logs username in the failed connection message (#7432)
|
||||
|
||||
* Makes sure to avoid incorrectly pushing-down the outer joins between
|
||||
distributed tables and recurring relations (like reference tables, local
|
||||
tables and `VALUES(..)` etc.) prior to PG 17 (#7937)
|
||||
|
||||
* Prevents incorrectly pushing `nextval()` call down to workers to avoid using
|
||||
incorrect sequence value for some types of `INSERT .. SELECT`s (#7976)
|
||||
|
||||
* Makes sure to prevent `INSERT INTO ... SELECT` queries involving subfield or
|
||||
sublink, to avoid crashes (#7912)
|
||||
|
||||
* Makes sure to take improvement_threshold into the account
|
||||
in `citus_add_rebalance_strategy()` (#7247)
|
||||
|
||||
* Makes sure to disallow creating a replicated distributed
|
||||
table concurrently (#7219)
|
||||
|
||||
* Fixes a bug that causes omitting `CASCADE` clause for the commands sent to
|
||||
workers for `REVOKE` commands on tables (#7958)
|
||||
|
||||
* Fixes an issue detected using address sanitizer (#7948, #7949)
|
||||
|
||||
* Fixes a bug in deparsing of shard query in case of "output-table column" name
|
||||
conflict (#7932)
|
||||
|
||||
* Fixes a crash in columnar custom scan that happens when a columnar table is
|
||||
used in a join (#7703)
|
||||
|
||||
* Fixes `MERGE` command when insert value does not have source distributed
|
||||
column (#7627)
|
||||
|
||||
* Fixes performance issue when using `\d tablename` on a server with many
|
||||
tables (#7577)
|
||||
|
||||
* Fixes performance issue in `GetForeignKeyOids` on systems with many
|
||||
constraints (#7580)
|
||||
|
||||
* Fixes performance issue when distributing a table that depends on an
|
||||
extension (#7574)
|
||||
|
||||
* Fixes performance issue when creating distributed tables if many already
|
||||
exist (#7575)
|
||||
|
||||
* Fixes a crash caused by some form of `ALTER TABLE ADD COLUMN` statements. When
|
||||
adding multiple columns, if one of the `ADD COLUMN` statements contains a
|
||||
`FOREIGN` constraint ommitting the referenced
|
||||
columns in the statement, a `SEGFAULT` occurs (#7522)
|
||||
|
||||
* Fixes assertion failure in maintenance daemon during Citus upgrades (#7537)
|
||||
|
||||
* Fixes segmentation fault when using `CASE WHEN` in `DO` block functions
|
||||
(#7554)
|
||||
|
||||
* Fixes undefined behavior in `master_disable_node` due to argument mismatch
|
||||
(#7492)
|
||||
|
||||
* Fixes incorrect propagating of `GRANTED BY` and `CASCADE/RESTRICT` clauses
|
||||
for `REVOKE` statements (#7451)
|
||||
|
||||
* Fixes the incorrect column count after `ALTER TABLE` (#7379)
|
||||
|
||||
* Fixes timeout when underlying socket is changed for an inter-node connection
|
||||
(#7377)
|
||||
|
||||
* Fixes memory leaks (#7441, #7440)
|
||||
|
||||
* Fixes leaking of memory and memory contexts when tracking foreign keys between
|
||||
Citus tables (#7236)
|
||||
|
||||
* Fixes a potential segfault for background rebalancer (#7694)
|
||||
|
||||
* Fixes potential `NULL` dereference in casual clocks (#7704)
|
||||
|
||||
### citus v13.0.4 (May 29th, 2025) ###
|
||||
|
||||
* Fixes an issue detected using address sanitizer (#7966)
|
||||
|
||||
* Error out for queries with outer joins and pseudoconstant quals in versions
|
||||
prior to PG 17 (#7937)
|
||||
|
||||
### citus v12.1.8 (May 29, 2025) ###
|
||||
|
||||
* Fixes a crash in left outer joins that can happen when there is an an
|
||||
aggregate on a column from the inner side of the join (#7904)
|
||||
|
||||
* Fixes an issue detected using address sanitizer (#7965)
|
||||
|
||||
* Fixes a crash when executing a prepared CALL, which is not pure SQL but
|
||||
available with some drivers like npgsql and jpgdbc (#7288)
|
||||
|
||||
### citus v13.0.3 (March 20th, 2025) ###
|
||||
|
||||
* Fixes a version bump issue in 13.0.2
|
||||
|
@ -100,9 +244,8 @@
|
|||
* Allows overwriting host name for all inter-node connections by
|
||||
supporting "host" parameter in citus.node_conninfo (#7541)
|
||||
|
||||
* Changes the order in which the locks are acquired for the target and
|
||||
reference tables, when a modify request is initiated from a worker
|
||||
node that is not the "FirstWorkerNode" (#7542)
|
||||
* Avoids distributed deadlocks by changing the order in which the locks are
|
||||
acquired for the target and reference tables (#7542)
|
||||
|
||||
* Fixes a performance issue when distributing a table that depends on an
|
||||
extension (#7574)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for Citus 13.1devel.
|
||||
# Generated by GNU Autoconf 2.69 for Citus 13.2devel.
|
||||
#
|
||||
#
|
||||
# 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='13.1devel'
|
||||
PACKAGE_STRING='Citus 13.1devel'
|
||||
PACKAGE_VERSION='13.2devel'
|
||||
PACKAGE_STRING='Citus 13.2devel'
|
||||
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 13.1devel to adapt to many kinds of systems.
|
||||
\`configure' configures Citus 13.2devel 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 13.1devel:";;
|
||||
short | recursive ) echo "Configuration of Citus 13.2devel:";;
|
||||
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 13.1devel
|
||||
Citus configure 13.2devel
|
||||
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 13.1devel, which was
|
||||
It was created by Citus $as_me 13.2devel, 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 13.1devel, which was
|
||||
This file was extended by Citus $as_me 13.2devel, 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 13.1devel
|
||||
Citus config.status 13.2devel
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# everyone needing autoconf installed, the resulting files are checked
|
||||
# into the SCM.
|
||||
|
||||
AC_INIT([Citus], [13.1devel])
|
||||
AC_INIT([Citus], [13.2devel])
|
||||
AC_COPYRIGHT([Copyright (c) Citus Data, Inc.])
|
||||
|
||||
# we'll need sed and awk for some of the version commands
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Citus extension
|
||||
comment = 'Citus distributed database'
|
||||
default_version = '13.1-1'
|
||||
default_version = '13.2-1'
|
||||
module_pathname = '$libdir/citus'
|
||||
relocatable = false
|
||||
schema = pg_catalog
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
-- citus--13.1-1--13.2-1
|
||||
-- bump version to 13.2-1
|
|
@ -0,0 +1,2 @@
|
|||
-- citus--13.2-1--13.1-1
|
||||
-- downgrade version to 13.1-1
|
|
@ -43,7 +43,7 @@ CITUS_ARBITRARY_TEST_DIR = "./tmp_citus_test"
|
|||
|
||||
MASTER = "master"
|
||||
# This should be updated when citus version changes
|
||||
MASTER_VERSION = "13.1"
|
||||
MASTER_VERSION = "13.2"
|
||||
|
||||
HOME = expanduser("~")
|
||||
|
||||
|
|
|
@ -1489,12 +1489,28 @@ SELECT * FROM multi_extension.print_extension_changes();
|
|||
| view citus_stat_counters
|
||||
(33 rows)
|
||||
|
||||
-- Test downgrade to 13.1-1 from 13.2-1
|
||||
ALTER EXTENSION citus UPDATE TO '13.2-1';
|
||||
ALTER EXTENSION citus UPDATE TO '13.1-1';
|
||||
-- Should be empty result since upgrade+downgrade should be a no-op
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
previous_object | current_object
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
||||
-- Snapshot of state at 13.2-1
|
||||
ALTER EXTENSION citus UPDATE TO '13.2-1';
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
previous_object | current_object
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
||||
DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff;
|
||||
-- show running version
|
||||
SHOW citus.version;
|
||||
citus.version
|
||||
---------------------------------------------------------------------
|
||||
13.1devel
|
||||
13.2devel
|
||||
(1 row)
|
||||
|
||||
-- ensure no unexpected objects were created outside pg_catalog
|
||||
|
@ -1529,7 +1545,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 13.1, but 8.0-1 was specified.
|
||||
DETAIL: Loaded library requires 13.2, 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';
|
||||
|
@ -1574,7 +1590,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 13.1, but the installed extension version is 8.1-1.
|
||||
DETAIL: Loaded library requires 13.2, 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)
|
||||
|
|
|
@ -671,6 +671,16 @@ SELECT * FROM multi_extension.print_extension_changes();
|
|||
ALTER EXTENSION citus UPDATE TO '13.1-1';
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
|
||||
-- Test downgrade to 13.1-1 from 13.2-1
|
||||
ALTER EXTENSION citus UPDATE TO '13.2-1';
|
||||
ALTER EXTENSION citus UPDATE TO '13.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 13.2-1
|
||||
ALTER EXTENSION citus UPDATE TO '13.2-1';
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
|
||||
DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff;
|
||||
|
||||
-- show running version
|
||||
|
|
Loading…
Reference in New Issue