Contents
- 
        
- citus v13.1.0 (May 30th, 2025)
            
- citus v13.0.3 (March 20th, 2025)
 - citus v13.0.2 (March 12th, 2025)
 - citus v12.1.7 (Feb 6, 2025)
 - citus v13.0.1 (February 4th, 2025)
 - citus v13.0.0 (January 22, 2025)
 - citus v12.1.6 (Nov 14, 2024)
 - citus v12.1.5 (July 17, 2024)
 - citus v12.1.4 (May 28, 2024)
 - citus v12.1.3 (April 18, 2024)
 - citus v11.0.10 (February 15, 2024)
 - citus v12.1.2 (February 12, 2024)
 - citus v12.0.1 (July 11, 2023)
 - citus v11.3.1 (February 12, 2024)
 - citus v11.2.2 (February 12, 2024)
 - citus v11.1.7 (February 12, 2024)
 - citus v11.0.9 (February 12, 2024)
 - citus v12.1.1 (November 9, 2023)
 - citus v12.1.0 (September 12, 2023)
 - citus v12.0.0 (July 11, 2023)
 - citus v11.3.0 (May 2, 2023)
 - citus v11.2.1 (April 20, 2023)
 - citus v11.1.6 (April 20, 2023)
 - citus v11.0.8 (April 20, 2023)
 - citus v10.2.9 (April 20, 2023)
 - citus v10.1.6 (April 20, 2023)
 - citus v10.0.8 (April 20, 2023)
 - citus v9.5.12 (April 20, 2023)
 - citus v11.2.0 (January 30, 2023)
 - citus v11.1.5 (December 12, 2022)
 - citus v11.0.7 (November 8, 2022)
 - citus v11.1.4 (October 24, 2022)
 - citus v11.1.3 (October 14, 2022)
 - citus v11.1.2 (September 30, 2022)
 - citus v11.1.1 (September 16, 2022)
 - citus v11.1.0 (September 15, 2022)
 - citus v10.2.8 (August 19, 2022)
 - citus v11.0.6 (August 19, 2022)
 - citus v10.2.7 (August 19, 2022)
 - citus v11.0.5 (August 1, 2022)
 - citus v11.0.4 (July 13, 2022)
 - citus v11.0.3 (July 5, 2022)
 - citus v11.0.2 (June 15, 2022)
 - citus v10.2.5 (March 15, 2022)
 - citus v10.2.4 (February 1, 2022)
 - citus v10.1.4 (February 1, 2022)
 - citus v10.2.3 (November 29, 2021)
 - citus v10.0.6 (November 12, 2021)
 - citus v9.5.10 (November 8, 2021)
 - citus v9.5.9 (November 8, 2021)
 - citus v9.2.8 (November 4, 2021)
 - citus v9.2.7 (November 3, 2021)
 - citus v10.2.2 (October 14, 2021)
 - citus v10.2.1 (September 24, 2021)
 - citus v10.1.3 (September 17, 2021)
 - citus v9.5.8 (September 15, 2021)
 - citus v10.2.0 (September 14, 2021)
 - citus v10.1.2 (August 16, 2021)
 - citus v10.0.5 (August 16, 2021)
 - citus v9.5.7 (August 16, 2021)
 - citus v9.4.6 (August 8, 2021)
 - citus v10.1.1 (August 5, 2021)
 - citus v10.1.0 (July 14, 2021)
 - citus v10.0.4 (July 14, 2021)
 - citus v9.5.6 (July 8, 2021)
 - citus v9.5.5 (July 7, 2021)
 - citus v9.4.5 (July 7, 2021)
 - citus v8.3.3 (March 23, 2021)
 - citus v10.0.3 (March 16, 2021)
 - citus v10.0.2 (March 3, 2021)
 - citus v9.5.4 (February 19, 2021)
 - citus v10.0.1 (February 19, 2021)
 - citus v9.5.3 (February 16, 2021)
 - citus v10.0.0 (February 16, 2021)
 - citus v9.5.2 (January 26, 2021)
 - citus v9.4.4 (December 28, 2020)
 - citus v9.5.1 (December 1, 2020)
 - citus v9.4.3 (November 24, 2020)
 - citus v9.5.0 (November 10, 2020)
 - citus v9.4.2 (October 21, 2020)
 - citus v9.4.1 (September 30, 2020)
 - citus v9.4.0 (July 28, 2020)
 - citus v9.3.5 (July 24, 2020)
 - citus v9.3.4 (July 21, 2020)
 - citus v9.3.3 (July 10, 2020)
 - citus v9.3.2 (Jun 22, 2020)
 - citus v9.2.6 (Jun 22, 2020)
 - citus v9.3.1 (Jun 17, 2020)
 - citus v9.2.5 (Jun 17, 2020)
 - citus v9.3.0 (May 6, 2020)
 - citus v9.2.4 (March 30, 2020)
 - citus v9.2.3 (March 25, 2020)
 - citus v9.0.2 (March 6, 2020)
 - citus v9.2.2 (March 5, 2020)
 - citus v9.2.1 (February 14, 2020)
 - citus v9.2.0 (February 10, 2020)
 - citus v9.1.2 (December 30, 2019)
 - citus v9.1.1 (December 18, 2019)
 - citus v9.1.0 (November 21, 2019)
 - citus v9.0.1 (October 25, 2019)
 - citus v9.0.0 (October 7, 2019)
 - citus v8.3.2 (August 09, 2019)
 - citus v8.3.1 (July 29, 2019)
 - citus v8.3.0 (July 10, 2019)
 - citus v8.2.2 (June 11, 2019)
 - citus v8.2.1 (April 03, 2019)
 - citus v8.1.2 (April 03, 2019)
 - citus v8.2.0 (March 28, 2019)
 - citus v8.0.3 (January 9, 2019)
 - citus v8.1.1 (January 7, 2019)
 - citus v8.1.0 (December 17, 2018)
 - citus v8.0.2 (December 13, 2018)
 - citus v7.5.4 (December 11, 2018)
 - citus v8.0.1 (November 27, 2018)
 - citus v7.5.3 (November 27, 2018)
 - citus v7.5.2 (November 14, 2018)
 - citus v8.0.0 (October 31, 2018)
 - citus v7.5.1 (August 28, 2018)
 - citus v7.4.2 (July 27, 2018)
 - citus v7.5.0 (July 25, 2018)
 - citus v6.2.6 (July 06, 2018)
 - citus v7.4.1 (June 20, 2018)
 - citus v7.4.0 (May 15, 2018)
 - citus v7.2.2 (May 4, 2018)
 - citus v7.3.0 (March 15, 2018)
 - citus v7.2.1 (February 6, 2018)
 - citus v7.2.0 (January 16, 2018)
 - citus v6.2.5 (January 11, 2018)
 - citus v7.1.2 (January 4, 2018)
 - citus v7.1.1 (December 1, 2017)
 - citus v7.1.0 (November 14, 2017)
 - citus v7.0.3 (October 16, 2017)
 - citus v7.0.2 (September 28, 2017)
 - citus v6.2.4 (September 28, 2017)
 - citus v6.1.3 (September 28, 2017)
 - citus v7.0.1 (September 12, 2017)
 - citus v7.0.0 (August 28, 2017)
 - citus v6.2.3 (July 13, 2017)
 - citus v6.2.2 (May 31, 2017)
 - citus v6.2.1 (May 24, 2017)
 - citus v6.2.0 (May 16, 2017)
 - citus v6.1.2 (May 31, 2017)
 - citus v6.1.1 (May 5, 2017)
 - citus v6.1.0 (February 9, 2017)
 - citus v6.0.1 (November 29, 2016)
 - citus v6.0.0 (November 7, 2016)
 - citus v5.2.2 (November 7, 2016)
 - citus v5.2.1 (September 6, 2016)
 - citus v5.2.0 (August 15, 2016)
 - citus v5.2.0-rc.1 (August 1, 2016)
 - citus v5.1.1 (June 17, 2016)
 - citus v5.1.0 (May 17, 2016)
 - citus v5.1.0-rc.2 (May 10, 2016)
 - citus v5.1.0-rc.1 (May 4, 2016)
 - citus v5.0.1 (April 15, 2016)
 - citus v5.0.0 (March 24, 2016)
 
 
 - citus v13.1.0 (May 30th, 2025)
            
 
citus v13.1.0 (May 30th, 2025)
- 
Adds
citus_stat_countersview 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 andcitus_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_nodesview 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/REVOKErights on table columns (#7918) - 
Adds support for propagating
REASSIGN OWNED BYcommands (#7319) - 
Adds support for propagating
CREATE/DROPdatabase from all nodes (#7240, #7253, #7359) - 
Propagates
SECURITY LABEL ON ROLEstatement from any node (#7508) - 
Adds support for issuing role management commands from worker nodes (#7278)
 - 
Adds support for propagating
ALTER USER RENAMEcommands (#7204) - 
Adds support for propagating
ALTER DATABASE <db_name> SET ..commands (#7181) - 
Adds support for propagating
SECURITY LABELon tables and columns (#7956) - 
Adds support for propagating
COMMENT ON <database>/<role>commands (#7388) - 
Moves some of the internal citus functions from
pg_catalogtocitus_internalschema (#7473, #7470, #7466, 7456, 7450) - 
Adjusts
max_prepared_transactionsonly 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_*_sizeon indexes on a distributed tables (#7271) - 
Allows
GRANT ADMINto now also beINHERITorSETin support of PG16 - 
Makes sure
worker_copy_table_to_nodeerrors 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 ofINSERT .. SELECTs (#7976) - 
Makes sure to prevent
INSERT INTO ... SELECTqueries 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
CASCADEclause for the commands sent to workers forREVOKEcommands 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
MERGEcommand when insert value does not have source distributed column (#7627) - 
Fixes performance issue when using
\d tablenameon a server with many tables (#7577) - 
Fixes performance issue in
GetForeignKeyOidson 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 COLUMNstatements. When adding multiple columns, if one of theADD COLUMNstatements contains aFOREIGNconstraint ommitting the referenced columns in the statement, aSEGFAULToccurs (#7522) - 
Fixes assertion failure in maintenance daemon during Citus upgrades (#7537)
 - 
Fixes segmentation fault when using
CASE WHENinDOblock functions (#7554) - 
Fixes undefined behavior in
master_disable_nodedue to argument mismatch (#7492) - 
Fixes incorrect propagating of
GRANTED BYandCASCADE/RESTRICTclauses forREVOKEstatements (#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
NULLdereference in casual clocks (#7704) 
citus v13.0.3 (March 20th, 2025)
- Fixes a version bump issue in 13.0.2
 
citus v13.0.2 (March 12th, 2025)
- 
Fixes a crash in columnar custom scan that happens when a columnar table is used in a join. (#7647)
 - 
Fixes a bug that breaks
UPDATE SET (...) = (SELECT some_func(),... )type of queries on Citus tables (#7914) - 
Fixes a planning error caused by a redundant WHERE clause (#7907)
 - 
Fixes a crash in left outer joins that can happen when there is an aggregate on a column from the inner side of the join. (#7901)
 - 
Fixes deadlock with transaction recovery that is possible during Citus upgrades. (#7910)
 - 
Fixes a bug that prevents inserting into Citus tables that uses a GENERATED ALWAYS AS IDENTITY column. (#7920)
 - 
Ensures that a MERGE command on a distributed table with a WHEN NOT MATCHED BY SOURCE clause runs against all shards of the distributed table. (#7900)
 - 
Fixes a bug that breaks router updates on distributed tables when a reference table is used in the subquery (#7897)
 
citus v12.1.7 (Feb 6, 2025)
- 
Fixes a crash that happens because of unsafe catalog access when re-assigning the global pid after
application_namechanges (#7791) - 
Prevents crashes when another extension skips executing the
ClientAuthentication_hookof Citus. (#7836) 
citus v13.0.1 (February 4th, 2025)
- Drops support for PostgreSQL 14 (#7753)
 
citus v13.0.0 (January 22, 2025)
- 
Adds support for PostgreSQL 17 (#7699, #7661)
 - 
Adds
JSON_TABLE()support in distributed queries (#7816) - 
Propagates
MERGE ... WHEN NOT MATCHED BY SOURCE(#7807) - 
Propagates
MEMORYandSERIALIZEoptions ofEXPLAIN(#7802) - 
Adds support for identity columns in distributed partitioned tables (#7785)
 - 
Allows specifying an access method for distributed partitioned tables (#7818)
 - 
Allows exclusion constraints on distributed partitioned tables (#7733)
 - 
Allows configuring sslnegotiation using
citus.node_conn_info(#7821) - 
Avoids wal receiver timeouts during large shard splits (#7229)
 - 
Fixes a bug causing incorrect writing of data to target
MERGErepartition command (#7659) - 
Fixes a crash that happens because of unsafe catalog access when re-assigning the global pid after
application_namechanges (#7791) - 
Fixes incorrect
VALID UNTILsetting assumption made for roles when syncing them to new nodes (#7534) - 
Fixes segfault when calling distributed procedure with a parameterized distribution argument (#7242)
 - 
Fixes server crash when trying to execute
activate_node_snapshot()on a single-node cluster (#7552) - 
Improves
citus_move_shard_placement()to fail early if there is a new node without reference tables yet (#7467) 
citus v12.1.6 (Nov 14, 2024)
- 
Propagates
SECURITY LABEL .. ON ROLEstatements (#7304) - 
Fixes crash caused by running queries with window partition (#7718)
 
citus v12.1.5 (July 17, 2024)
- 
Adds support for MERGE commands with single shard distributed target tables (#7643)
 - 
Fixes an error with MERGE commands when insert value does not have source distribution column (#7627)
 
citus v12.1.4 (May 28, 2024)
- Adds null check for node in HasRangeTableRef (#7604)
 
citus v12.1.3 (April 18, 2024)
- 
Allows overwriting host name for all inter-node connections by supporting “host” parameter in citus.node_conninfo (#7541)
 - 
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)
 - 
Fixes a performance issue when using “\d tablename” on a server with many tables (#7577)
 - 
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 omitting the referenced columns in the statement, a SEGFAULT was occurring. (#7522)
 - 
Fixes a performance issue when creating distributed tables if many already exist (#7575, #7579)
 - 
Fixes a bug when hostname in pg_dist_node resolves to multiple IPs (#7377)
 - 
Fixes performance issue when tracking foreign key constraints on systems with many constraints (#7578)
 - 
Fixes segmentation fault when using CASE WHEN in DO block within functions. (#7554)
 - 
Fixes undefined behavior in master_disable_node due to argument mismatch (#7492)
 - 
Fixes some potential bugs by correctly marking some variables as volatile (#7570)
 - 
Logs username in the failed connection message (#7432)
 
citus v11.0.10 (February 15, 2024)
- Removes pg_send_cancellation and all references (#7135)
 
citus v12.1.2 (February 12, 2024)
- Fixes the incorrect column count after ALTER TABLE (#7379)
 
citus v12.0.1 (July 11, 2023)
- 
Fixes incorrect default value assumption for VACUUM(PROCESS_TOAST) #7122)
 - 
Fixes a bug that causes an unexpected error when adding a column with a NULL constraint (#7093)
 - 
Fixes a bug that could cause COPY logic to skip data in case of OOM (#7152)
 - 
Fixes a bug with deleting colocation groups (#6929)
 - 
Fixes memory and memory contexts leaks in Foreign Constraint Graphs (#7236)
 - 
Fixes shard size bug with too many shards (#7018)
 - 
Fixes the incorrect column count after ALTER TABLE (#7379)
 - 
Improves citus_tables view performance (#7050)
 - 
Makes sure to disallow creating a replicated distributed table concurrently (#7219)
 - 
Removes pg_send_cancellation and all references (#7135)
 
citus v11.3.1 (February 12, 2024)
- 
Disallows MERGE when the query prunes down to zero shards (#6946)
 - 
Fixes a bug related to non-existent objects in DDL commands (#6984)
 - 
Fixes a bug that could cause COPY logic to skip data in case of OOM (#7152)
 - 
Fixes a bug with deleting colocation groups (#6929)
 - 
Fixes incorrect results on fetching scrollable with hold cursors (#7014)
 - 
Fixes memory and memory context leaks in Foreign Constraint Graphs (#7236)
 - 
Fixes replicate reference tables task fail when user is superuser (#6930)
 - 
Fixes the incorrect column count after ALTER TABLE (#7379)
 - 
Improves citus_shard_sizes performance (#7050)
 - 
Makes sure to disallow creating a replicated distributed table concurrently (#7219)
 - 
Removes pg_send_cancellation and all references (#7135)
 
citus v11.2.2 (February 12, 2024)
- 
Fixes a bug in background shard rebalancer where the replicate reference tables task fails if the current user is not a superuser (#6930)
 - 
Fixes a bug related to non-existent objects in DDL commands (#6984)
 - 
Fixes a bug that could cause COPY logic to skip data in case of OOM (#7152)
 - 
Fixes a bug with deleting colocation groups (#6929)
 - 
Fixes incorrect results on fetching scrollable with hold cursors (#7014)
 - 
Fixes memory and memory context leaks in Foreign Constraint Graphs (#7236)
 - 
Fixes the incorrect column count after ALTER TABLE (#7379)
 - 
Improves failure handling of distributed execution (#7090)
 - 
Makes sure to disallow creating a replicated distributed table concurrently (#7219)
 - 
Removes pg_send_cancellation (#7135)
 
citus v11.1.7 (February 12, 2024)
- 
Fixes memory and memory context leaks in Foreign Constraint Graphs (#7236)
 - 
Fixes a bug related to non-existent objects in DDL commands (#6984)
 - 
Fixes a bug that could cause COPY logic to skip data in case of OOM (#7152)
 - 
Fixes a bug with deleting colocation groups (#6929)
 - 
Fixes incorrect results on fetching scrollable with hold cursors (#7014)
 - 
Fixes the incorrect column count after ALTER TABLE (#7379)
 - 
Improves failure handling of distributed execution (#7090)
 - 
Makes sure to disallow creating a replicated distributed table concurrently (#7219)
 - 
Removes pg_send_cancellation and all references (#7135)
 
citus v11.0.9 (February 12, 2024)
- 
Fixes a bug that could cause COPY logic to skip data in case of OOM (#7152)
 - 
Fixes a bug with deleting colocation groups (#6929)
 - 
Fixes memory and memory context leaks in Foreign Constraint Graphs (#7236)
 - 
Fixes the incorrect column count after ALTER TABLE (#7462)
 - 
Improve failure handling of distributed execution (#7090)
 
citus v12.1.1 (November 9, 2023)
- 
Fixes leaking of memory and memory contexts in Citus foreign key cache (#7236)
 - 
Makes sure to disallow creating a replicated distributed table concurrently (#7219)
 
citus v12.1.0 (September 12, 2023)
- 
Adds support for PostgreSQL 16.0 (#7173)
 - 
Add
citus_schema_move()function which moves tables within a distributed schema to another node (#7180) - 
Adds
citus_pause_node_within_txn()UDF that allows pausing the node with given id (#7089) - 
Makes sure to enforce shard level colocation with the GUC
citus.enable_non_colocated_router_query_pushdown(#7076) - 
Allows creating reference / distributed-schema tables from local tables added to metadata and that use identity columns (#7131)
 - 
Propagates
BUFFER_USAGE_LIMIToption inVACUUMandANALYZE(#7114) - 
Propagates
PROCESS_MAIN,SKIP_DATABASE_STATS,ONLY_DATABASE_STATSoptions inVACUUM(#7114) - 
Propagates
GENERIC_PLANoption inEXPLAIN(#7141) - 
Propagates “rules” option in
CREATE COLLATION(#7185) - 
Propagates
GRANT/REVOKEfor database privileges (#7109) - 
Adds TRUNCATE trigger support on Citus foreign tables (#7170)
 - 
Removes
pg_send_cancellation(#7135) - 
Prevents unnecessarily pulling the data into coordinator for some
INSERT .. SELECTqueries that target a single-shard group (#7077) - 
Makes sure that rebalancer throws an error if replication factor is greater than the shard allowed node count. Also makes sure to avoid moving a shard to a node that it already exists on. (#7074)
 - 
Fixes a bug that may appear during 2PC recovery when there are multiple databases (#7174)
 - 
Fixes a bug that could cause
COPYlogic to skip data in case of out-of-memory (#7152) - 
Fixes a bug that causes an unexpected error when adding a column with a
NULLconstraint (#7093) - 
Fixes
PROCESS_TOASTdefault value totrue(#7122) - 
Improves the error thrown when there is datatype mismatch in
MERGE ON(#7081) 
citus v12.0.0 (July 11, 2023)
- 
Adds support for schema-based sharding. While
citus.enable_schema_based_shardingGUC allows sharding the database based on newly created schemas,citus_schema_distribute()allows doing so for the existing schemas. Distributed schemas used for sharding the database can be listed by using the viewcitus_schemas, monitored by using the viewcitus_stat_schemas, and undistributed by using the udfcitus_schema_undistribute()(#6866, #6979, #6933, #6936 and many others) - 
Supports MERGE command across non-colocated distributed tables/subqueries, reference tables and joins on non-distribution columns (#6927)
 - 
Drops PG13 Support (#7002, #7007)
 - 
Changes default rebalance strategy to by_disk_size (#7033)
 - 
Changes by_disk_size rebalance strategy to have a base size (#7035)
 - 
Improves citus_tables view performance (#7018)
 - 
Improves tenant monitoring performance (#6868)
 - 
Introduces the GUC
citus.stat_tenants_untracked_sample_ratefor sampling in tenant monitoring (#7026) - 
Adds CPU usage to citus_stat_tenants (#6844)
 - 
Propagates
ALTER SCHEMA .. OWNER TO ..commands to worker (#6987) - 
Allows
ADD COLUMNin command string with other commands (#7032) - 
Allows
DROP CONSTRAINTin command string with other commands (#7012) - 
Makes sure to properly handle index storage options for
ADD CONSTRAINT/ COLUMN commands (#7032) - 
Makes sure to properly handle
IF NOT EXISTSforADD COLUMNcommands (#7032) - 
Allows using generated identity column based on int/smallint when creating a distributed table with the limitation of not being able perform DMLs on identity columns from worker nodes (#7008)
 - 
Supports custom cast from / to timestamptz in time partition management UDFs (#6923)
 - 
Optimizes pushdown planner on memory and cpu (#6945)
 - 
Changes citus_shard_sizes view’s table_name column to shard_id (#7003)
 - 
The GUC search_path is now reported when it is updated (#6983)
 - 
Disables citus.enable_non_colocated_router_query_pushdown GUC by default to ensure generating a consistent distributed plan for the queries that reference non-colocated distributed tables (#6909)
 - 
Disallows MERGE with filters that prune down to zero shards (#6946)
 - 
Makes sure to take
shouldhaveshardssetting into account for a node when planning rebalance steps (#6887) - 
Improves the compatibility with other extension by forwarding to existing emit_log_hook in our log hook (#6877)
 - 
Fixes wrong result when using
NOT MATCHEDwith MERGE command (#6943) - 
Fixes querying the view
citus_shard_sizeswhen there are too many shards (#7018) - 
Fixes a bug related to type casts from other types to text/varchar (#6391)
 - 
Fixes propagating
CREATE SCHEMA AUTHORIZATION ..with no schema name (#7015) - 
Fixes an error when creating a FOREIGN KEY without a name referencing a schema qualified table (#6986)
 - 
Fixes a rare bug which mostly happens with queries that contain both outer join and where clauses (#6857)
 - 
Fixes a bug related to propagation of schemas when pg_dist_node is empty (#6900)
 - 
Fixes a crash when a query is locally executed with explain analyze (#6892)
 
citus v11.3.0 (May 2, 2023)
- 
Introduces CDC implementation for Citus using logical replication (#6623, #6810, #6827)
 - 
Adds support for
MERGEcommand on co-located distributed tables joined on distribution column (#6696, #6733) - 
Adds the view
citus_stat_tenantsthat monitor statistics on tenant usages (#6725) - 
Adds the GUC
citus.max_background_task_executors_per_nodeto control number of background task executors involving a node (#6771) - 
Allows parallel shard moves in background rebalancer (#6756)
 - 
Introduces the GUC
citus.metadata_sync_modethat introduces nontransactional mode for metadata sync (#6728, #6889) - 
Propagates CREATE/ALTER/DROP PUBLICATION statements for distributed tables (#6776)
 - 
Adds the GUC
citus.enable_non_colocated_router_query_pushdownto ensure generating a consistent distributed plan for the queries that reference non-colocated distributed tables when set to “false” (#6793) - 
Checks if all moves are able to be done via logical replication for rebalancer (#6754)
 - 
Correctly reports shard size in
citus_shardsview (#6748) - 
Fixes a bug in shard copy operations (#6721)
 - 
Fixes a bug that prevents enforcing identity column restrictions on worker nodes (#6738)
 - 
Fixes a bug with
INSERT .. SELECTqueries with identity columns (#6802) - 
Fixes an issue that caused some queries with custom aggregates to fail (#6805)
 - 
Fixes an issue when
citus_set_coordinator_hostis called more than once (#6837) - 
Fixes an uninitialized memory access in shard split API (#6845)
 - 
Fixes memory leak and max allocation block errors during metadata syncing (#6728)
 - 
Fixes memory leak in
undistribute_table(#6693) - 
Fixes memory leak in
alter_distributed_table(#6726) - 
Fixes memory leak in
create_distributed_table(#6722) - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Improves rebalancer when shard groups have placement count less than worker count (#6739)
 - 
Makes sure to stop maintenance daemon when dropping a database even without Citus extension (#6688)
 - 
Prevents using
alter_distributed_tableandundistribute_tableUDFs when a table has identity columns (#6738) - 
Prevents using identity columns on data types other than
biginton distributed tables (#6738) 
citus v11.2.1 (April 20, 2023)
- 
Correctly reports shard size in
citus_shardsview (#6748) - 
Fixes a bug in shard copy operations (#6721)
 - 
Fixes a bug with
INSERT .. SELECTqueries with identity columns (#6802) - 
Fixes an uninitialized memory access in shard split API (#6845)
 - 
Fixes compilation for PG13.10 and PG14.7 (#6711)
 - 
Fixes memory leak in
alter_distributed_table(#6726) - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Prevents using
alter_distributed_tableandundistribute_tableUDFs when a table has identity columns (#6738) - 
Prevents using identity columns on data types other than
biginton distributed tables (#6738) 
citus v11.1.6 (April 20, 2023)
- 
Correctly reports shard size in
citus_shardsview (#6748) - 
Fixes a bug in shard copy operations (#6721)
 - 
Fixes a bug that breaks pg upgrades if the user has a columnar table (#6624)
 - 
Fixes a bug that causes background rebalancer to fail when a reference table doesn’t have a primary key (#6682)
 - 
Fixes a regression in allowed foreign keys on distributed tables (#6550)
 - 
Fixes a use-after-free bug in connection management (#6685)
 - 
Fixes an unexpected foreign table error by disallowing to drop the
table_nameoption (#6669) - 
Fixes an uninitialized memory access in shard split API (#6845)
 - 
Fixes compilation for PG13.10 and PG14.7 (#6711)
 - 
Fixes crash that happens when trying to replicate a reference table that is actually dropped (#6595)
 - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Fixes the modifiers for subscription and role creation (#6603)
 - 
Makes sure to quote all identifiers used for logical replication to prevent potential issues (#6604)
 - 
Makes sure to skip foreign key validations at the end of shard moves (#6640)
 
citus v11.0.8 (April 20, 2023)
- 
Correctly reports shard size in
citus_shardsview (#6748) - 
Fixes a bug that breaks pg upgrades if the user has a columnar table (#6624)
 - 
Fixes an unexpected foreign table error by disallowing to drop the
table_nameoption (#6669) - 
Fixes compilation warning on PG13 + OpenSSL 3.0 (#6038, #6502)
 - 
Fixes crash that happens when trying to replicate a reference table that is actually dropped (#6595)
 - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Fixes the modifiers for subscription and role creation (#6603)
 - 
Fixes two potential dangling pointer issues (#6504, #6507)
 - 
Makes sure to quote all identifiers used for logical replication to prevent potential issues (#6604)
 
citus v10.2.9 (April 20, 2023)
- 
Correctly reports shard size in
citus_shardsview (#6748) - 
Fixes a bug in
ALTER EXTENSION citus UPDATE(#6383) - 
Fixes a bug that breaks pg upgrades if the user has a columnar table (#6624)
 - 
Fixes a bug that prevents retaining columnar table options after a table-rewrite (#6337)
 - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Raises memory limits in columnar from 256MB to 1GB for reads and writes (#6419)
 
citus v10.1.6 (April 20, 2023)
- 
Fixes a crash that occurs when the aggregate that cannot be pushed-down returns empty result from a worker (#5679)
 - 
Fixes columnar freezing/wraparound bug (#5962)
 - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Prevents alter table functions from dropping extensions (#5974)
 
citus v10.0.8 (April 20, 2023)
- 
Fixes a bug that could break
DROP SCHEMA/EXTENSONcommands when there is a columnar table (#5458) - 
Fixes a crash that occurs when the aggregate that cannot be pushed-down returns empty result from a worker (#5679)
 - 
Fixes columnar freezing/wraparound bug (#5962)
 - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Prevents alter table functions from dropping extensions (#5974)
 
citus v9.5.12 (April 20, 2023)
- 
Fixes a crash that occurs when the aggregate that cannot be pushed-down returns empty result from a worker (#5679)
 - 
Fixes memory leak issue with query results that returns single row (#6724)
 - 
Prevents alter table functions from dropping extensions (#5974)
 
citus v11.2.0 (January 30, 2023)
- 
Adds support for outer joins with reference tables / complex subquery-CTEs in the outer side of the join (e.g., <reference table> LEFT JOIN <distributed table>)
 - 
Adds support for creating
PRIMARY KEYs andUNIQUE/EXCLUSION/CHECK/FOREIGN KEYconstraints viaALTER TABLEcommand without providing a constraint name - 
Adds support for using identity columns on Citus tables
 - 
Adds support for
MERGEcommand on local tables - 
Adds
citus_job_list(),citus_job_status()andcitus_rebalance_status()UDFs that allow monitoring rebalancer progress - 
Adds
citus_task_wait()UDF to wait on desired task status - 
Adds
source_lsn,target_lsnandstatusfields intoget_rebalance_progress() - 
Introduces
citus_copy_shard_placement()UDF with node id - 
Introduces
citus_move_shard_placement()UDF with node id - 
Propagates
BEGINproperties to worker nodes - 
Propagates
DROP OWNED BYto worker nodes - 
Deprecates
citus.replicate_reference_tables_on_activateand makes it alwaysoff - 
Drops GUC
citus.defer_drop_after_shard_move - 
Drops GUC
citus.defer_drop_after_shard_split - 
Drops
SHARD_STATE_TO_DELETEstate and uses the cleanup records instead - 
Allows
citus_update_node()to work with nodes from different clusters - 
Adds signal handlers for queue monitor to gracefully shutdown, cancel and to see config changes
 - 
Defers cleanup after a failure in shard move or split
 - 
Extends cleanup process for replication artifacts
 - 
Improves a query that terminates compelling backends from
citus_update_node() - 
Includes Citus global pid in all internal
application_names - 
Avoids leaking
search_pathto workers when executing DDL commands - 
Fixes
alter_table_set_access_method error()for views - 
Fixes
citus_drain_node()to allow draining the specified worker only - 
Fixes a bug in global pid assignment for connections opened by rebalancer internally
 - 
Fixes a bug that causes background rebalancer to fail when a reference table doesn’t have a primary key
 - 
Fixes a bug that might cause failing to query the views based on tables that have renamed columns
 - 
Fixes a bug that might cause incorrectly planning the sublinks in query tree
 - 
Fixes a floating point exception during
create_distributed_table_concurrently() - 
Fixes a rebalancer failure due to integer overflow in subscription and role creation
 - 
Fixes a regression in allowed foreign keys on distributed tables
 - 
Fixes a use-after-free bug in connection management
 - 
Fixes an unexpected foreign table error by disallowing to drop the table_name option
 - 
Fixes an uninitialized memory access in
create_distributed_function() - 
Fixes crash that happens when trying to replicate a reference table that is actually dropped
 - 
Make sure to cleanup the shard on the target node in case of a failed/aborted shard move
 - 
Makes sure to create replication artifacts with unique names
 - 
Makes sure to disallow triggers that depend on extensions
 - 
Makes sure to quote all identifiers used for logical replication to prevent potential issues
 - 
Makes sure to skip foreign key validations at the end of shard moves
 - 
Prevents crashes on
UPDATEwith certainRETURNINGclauses - 
Propagates column aliases in the shard-level commands
 
citus v11.1.5 (December 12, 2022)
- 
Fixes two potential dangling pointer issues
 - 
Fixes compilation warning on PG13 + OpenSSL 3.0
 
citus v11.0.7 (November 8, 2022)
- 
Adds the GUC
citus.allow_unsafe_constraintsto allow unique/exclusion/ primary key constraints without distribution column - 
Allows
citus_internalapplication_namewith additional suffix - 
Disallows having
ON DELETE/UPDATE SET DEFAULTactions on columns that default to sequences - 
Fixes a bug in
ALTER EXTENSION citus UPDATE - 
Fixes a bug that causes a crash with empty/null password
 - 
Fixes a bug that causes not retaining trigger enable/disable settings when re-creating them on shards
 - 
Fixes a bug that might cause inserting incorrect
DEFAULTvalues when applying foreign key actions - 
Fixes a bug that prevents retaining columnar table options after a table-rewrite
 - 
Fixes a bug that prevents setting colocation group of a partitioned distributed table to
none - 
Fixes an issue that can cause logical reference table replication to fail
 - 
Raises memory limits in columnar from 256MB to 1GB for reads and writes
 
citus v11.1.4 (October 24, 2022)
- 
Fixes an upgrade problem for
worker_fetch_foreign_filewhen upgrade path starts from 8.3 up to 11.1 - 
Fixes an upgrade problem for
worker_repartition_cleanupwhen upgrade path starts from 9.1 up to 11.1 
citus v11.1.3 (October 14, 2022)
- 
Adds support for PostgreSQL 15.0
 - 
Fixes a bug in
ALTER EXTENSION citus UPDATE - 
Fixes a bug that causes a crash with empty/null password
 - 
Fixes a bug that causes not retaining trigger enable/disable settings when re-creating them on shards
 - 
Fixes a bug that prevents retaining columnar table options after a table-rewrite
 - 
Raises memory limits in columnar from 256MB to 1GB for reads and writes
 
citus v11.1.2 (September 30, 2022)
- 
Adds support for PostgreSQL 15rc1
 - 
Disallows having
ON DELETE/UPDATE SET DEFAULTactions on columns that default to sequences - 
Fixes a bug that might cause inserting incorrect
DEFAULTvalues when applying foreign key actions - 
Fixes a performance issue related to shard-moves by creating replica identities before copying shards
 - 
Improves logging during shard-splits and resource cleanup
 - 
Makes sure to reuse connections for shard-splits and logical replication
 - 
Makes sure to try dropping replication slots a few more times after a failure at the end of the shard-split
 
citus v11.1.1 (September 16, 2022)
- Fixes a bug that prevents 
create_distributed_table_concurrently()working on an empty node 
citus v11.1.0 (September 15, 2022)
- 
Adds support for PostgreSQL 15beta4
 - 
Adds ability to run shard rebalancer in the background
 - 
Adds
create_distributed_table_concurrently()UDF to distribute tables without interrupting the application - 
Adds
citus_split_shard_by_split_points()UDF that allows splitting a shard to specified set of nodes without blocking writes and based on given split points - 
Adds support for non-blocking tenant isolation
 - 
Adds support for isolation tenants that use partitioned tables or columnar tables
 - 
Separates columnar table access method into a separate logical extension
 - 
Adds support for online replication in
replicate_reference_tables() - 
Improves performance of blocking shard moves
 - 
Improves non-blocking shard moves with a faster custom copy logic
 - 
Creates all foreign keys quickly at the end of a shard move
 - 
Limits
get_rebalance_progress()to show shards in moving state - 
Makes
citus_move_shard_placement()idempotent if shard already exists on target node - 
Shows
citus_copy_shard_placement()progress inget_rebalance_progres() - 
Supports changing CPU priorities for backends and shard moves
 - 
Adds the GUC
citus.allow_unsafe_constraintsto allow unique/exclusion/ primary key constraints without distribution column - 
Introduces GUC
citus.skip_constraint_validation - 
Introduces
citus_locksview - 
Improves
citus_tablesview by showing local tables added to metadata - 
Improves columnar table access method by moving old catalog tables into an internal schema and introduces more secure & informative views based on them
 - 
Adds support for
GRANT/REVOKEon aggregates - 
Adds support for
NULLS NOT DISTINCTclauses for indexes for PG15+ - 
Adds support for setting relation options for columnar tables using
ALTER TABLE - 
Adds support for unlogged distributed sequences
 - 
Removes
do_repairoption fromcitus_copy_shard_placement() - 
Removes deprecated re-partitioning functions like
worker_hash_partition_table() - 
Drops support for isolation tenants that use replicated tables
 - 
Checks existence of the shards before insert, delete, and update
 - 
Hides tables owned by extensions from
citus_tablesandcitus_shards - 
Propagates
VACUUMandANALYZEto worker nodes - 
Makes non-partitioned table size calculation quicker
 - 
Improves
create_distributed_table()by creating new colocation entries when usingcolocate_with => 'none' - 
Ensures that
SELECT .. FOR UPDATEopens a transaction block when used in a function call - 
Prevents a segfault by disallowing usage of SQL functions referencing to a distributed table
 - 
Prevents creating a new colocation entry when replicating reference tables
 - 
Fixes a bug in query escaping in
undistribute_table()andalter_distributed_table() - 
Fixes a bug preventing the usage of
isolate_tenant_to_new_shard()with text column - 
Fixes a bug that may cause
GRANTto propagate withinCREATE EXTENSION - 
Fixes a bug that causes incorrectly marking
metadatasyncedflag for coordinator - 
Fixes a bug that may prevent Citus from creating function in transaction block properly
 - 
Fixes a bug that prevents promoting read-replicas as primaries
 - 
Fixes a bug that prevents setting colocation group of a partitioned distributed table to
none - 
Fixes a bug that prevents using
AUTOoption forVACUUM (INDEX_CLEANUP)operation - 
Fixes a segfault in
citus_copy_shard_placement() - 
Fixes an issue that can cause logical reference table replication to fail
 - 
Fixes schema name qualification for
RENAME SEQUENCEstatement - 
Fixes several small memory leaks
 - 
Fixes the transaction timestamp column of the
get_current_transaction_id()on coordinator - 
Maps any unused parameters to a generic type in prepared statements
 
citus v10.2.8 (August 19, 2022)
- 
Fixes compilation warning caused by latest upgrade script changes
 - 
Fixes compilation warning on PG13 + OpenSSL 3.0
 
citus v11.0.6 (August 19, 2022)
- 
Fixes a bug that could cause failures in
CREATE ROLEstatement - 
Fixes a bug that could cause failures in
create_distributed_table - 
Fixes a bug that prevents distributing tables that depend on sequences
 - 
Fixes reference table lock contention
 - 
Fixes upgrade paths for 11.0
 
citus v10.2.7 (August 19, 2022)
- 
Fixes a bug that could cause failures in
INSERT INTO .. SELECT - 
Fixes a bug that could cause leaking files when materialized views are refreshed
 - 
Fixes an unexpected error for foreign tables when upgrading Postgres
 - 
Fixes columnar freezing/wraparound bug
 - 
Fixes reference table lock contention
 - 
Prevents alter table functions from dropping extensions
 
citus v11.0.5 (August 1, 2022)
- 
Avoids possible information leakage about existing users
 - 
Allows using
WITH HOLDcursors with parameters - 
Fixes a bug that could cause failures in
INSERT INTO .. SELECT - 
Fixes a bug that prevents pushing down
INexpressions when using columnar custom scan - 
Fixes a concurrency bug between creating a co-located distributed table and shard moves
 - 
Fixes a crash that can happen due to catalog read in
shmem_exit - 
Fixes an unexpected error caused by constraints when moving shards
 - 
Fixes an unexpected error for foreign tables when upgrading Postgres
 - 
Prevents adding local table into metadata if there is a view with circular dependencies on it
 - 
Reduces memory consumption of index name fix for partitioned tables
 
citus v11.0.4 (July 13, 2022)
- Fixes a bug that prevents promoting read-replicas as primaries
 
citus v11.0.3 (July 5, 2022)
- 
Fixes a bug that prevents adding local tables with materialized views to Citus metadata
 - 
Fixes a bug that prevents using
COMPRESSIONandCONSTRAINTon a column - 
Fixes upgrades to Citus 11 when there are no nodes in the metadata
 
citus v11.0.2 (June 15, 2022)
- 
Drops support for PostgreSQL 12
 - 
Open sources enterprise features, see the rest of changelog items
 - 
Turns metadata syncing on by default
 - 
Introduces
citus_finish_citus_upgrade()procedure which is necessary to upgrade from earlier versions - 
Open sources non-blocking shard moves/shard rebalancer (
citus.logical_replication_timeout) - 
Open sources propagation of
CREATE/DROP/ALTER ROLEstatements - 
Open sources propagation of
GRANTstatements - 
Open sources propagation of
CLUSTERstatements - 
Open sources propagation of
ALTER DATABASE ... OWNER TO ... - 
Open sources optimization for
COPYwhen loadingJSONto avoid double parsing of theJSONobject (citus.skip_jsonb_validation_in_copy) - 
Open sources support for row level security
 - 
Open sources support for
pg_dist_authinfo, which allows storing different authentication options for different users, e.g. you can store passwords or certificates here. - 
Open sources support for
pg_dist_poolinfo, which allows using connection poolers in between coordinator and workers - 
Open sources tracking distributed query execution times using citus_stat_statements (
citus.stat_statements_max,citus.stat_statements_purge_interval,citus.stat_statements_track). This is disabled by default. - 
Open sources tenant_isolation
 - 
Open sources support for
sslkeyandsslcertincitus.node_conninfo - 
Adds
citus.max_client_connectionsGUC to limit non-Citus connections - 
Allows locally creating objects having a dependency that cannot be distributed
 - 
Distributes aggregates with
CREATE AGGREGATEcommand - 
Distributes functions with
CREATE FUNCTIONcommand - 
Adds
citus.create_object_propagationGUC to control DDL creation behaviour in transactions - 
Hides shards based on
application_nameprefix - 
Prevents specifying
application_nameviacitus.node_conninfo - 
Starts identifying rebalancer backends by
application_name=citus_rebalancer - 
Starts identifying internal backends by
application_name=citus_internal - 
Adds
citus.enable_unsafe_triggersflag to enable unsafe triggers on distributed tables - 
Adds
fix_partition_shard_index_namesUDF to fix currently broken names - 
Adds propagation for foreign server commands
 - 
Adds propagation of
DOMAINobjects - 
Adds propagation of
TEXT SEARCH CONFIGURATIONobjects - 
Adds propagation of
TEXT SEARCH DICTIONARYobjects - 
Adds support for
ALTER FUNCTION ... SUPPORT ...commands - 
Adds support for
CREATE SCHEMA AUTHORIZATIONstatements without schema name - 
Adds support for
CREATE/DROP/ALTER VIEWcommands - 
Adds support for
TRUNCATEfor foreign tables - 
Adds support for adding local tables to metadata using
citus_add_local_table_to_metadata()UDF - 
Adds support for adding partitioned local tables to Citus metadata
 - 
Adds support for automatic binary encoding in re-partition joins when possible
 - 
Adds support for foreign tables in MX
 - 
Adds support for operator class parameters in indexes
 - 
Adds support for re-partition joins in transaction blocks
 - 
Adds support for re-partition joins on followers
 - 
Adds support for shard replication > 1 hash distributed tables on Citus MX
 - 
Adds support for
LOCKcommands on distributed tables from worker nodes - 
Adds support for
TABLESAMPLE - 
Adds support for propagating views when syncing Citus table metadata
 - 
Improves handling of
IN,OUTandINOUTparameters for functions - 
Introduces
citus_backend_gpid()UDF to get global pid of the current backend - 
Introduces
citus_check_cluster_node_healthUDF to check cluster connectivity - 
Introduces
citus_check_connection_to_nodeUDF to check node connectivity - 
Introduces
citus_coordinator_nodeidUDF to find the node id of the coordinator node - 
Introduces
citus_stat_activityview and dropscitus_worker_stat_activityUDF - 
Introduces
citus.use_citus_managed_tablesGUC to add local tables to Citus metadata automatically - 
Introduces a new flag
force_delegationincreate_distributed_function() - 
Introduces
run_command_on_coordinatorUDF - 
Introduces
synchronousoption tocitus_disable_node()UDF - 
Introduces
citus_is_coordinatorUDF to check whether a node is the coordinator - 
Allows adding a unique constraint with an index
 - 
Allows
create_distributed_function()on a function owned by an extension - 
Allows creating distributed tables in sequential mode
 - 
Allows disabling nodes when multiple failures happen
 - 
Allows
lock_table_if_exitsto be called outside of a transaction blocks - 
Adds support for pushing procedures with
OUTarguments down to the worker nodes - 
Overrides
pg_cancel_backend()andpg_terminate_backend()to run with global pid - 
Delegates function calls of the form
SELECT .. FROM func() - 
Adds propagation of
CREATE SCHEMA .. GRANT ON SCHEMA ..commands - 
Propagates
pg_dist_objectto worker nodes - 
Adds propagation of
SCHEMAoperations - 
Adds missing version-mismatch checks for columnar tables
 - 
Adds missing version-mismatch checks for internal functions
 - 
citus_shard_indexes_on_workershows all local shard indexes regardless ofsearch_path - 
citus_shards_on_workershows all local shards regardless ofsearch_path - 
Enables distributed execution from
run_command_on_*functions - 
Deprecates inactive shard state, never marks any placement inactive
 - 
Disables distributed & reference foreign tables
 - 
Prevents propagating objects having a circular dependency
 - 
Prevents propagating objects having a dependency to an object with unsupported type
 - 
Deprecates
master_get_table_metadataUDF - 
Disallows remote execution from queries on shards
 - 
Drops
citus.enable_cte_inliningGUC - 
Drops
citus.single_shard_commit_protocolGUC, defaults to 2PC - 
Drops support for
citus.multi_shard_commit_protocol, always use 2PC - 
Avoids unnecessary errors for
ALTER STATISTICS IF EXISTSwhen the statistics does not exist - 
Fixes a bug that prevents dropping/altering indexes
 - 
Fixes a bug that prevents non-client backends from accessing shards
 - 
Fixes columnar freezing/wraparound bug
 - 
Fixes
invalid read of size 1memory error withcitus_add_node - 
Fixes schema name qualification for
ALTER/DROP SEQUENCE - 
Fixes schema name qualification for
ALTER/DROP STATISTICS - 
Fixes schema name qualification for
CREATE STATISTICS - 
Fixes a bug that causes columnar storage pages to have zero LSN
 - 
Fixes a bug that causes issues while create dependencies from multiple sessions
 - 
Fixes a bug that causes reading columnar metapage as all-zeros when writing to a columnar table
 - 
Fixes a bug that could break
DROP SCHEMA/EXTENSONcommands when there is a columnar table - 
Fixes a bug that could break pg upgrades due to missing
pg_dependrecords for columnar table access method - 
Fixes a bug that could cause
CREATE INDEXto fail for expressions when using customsearch_path - 
Fixes a bug that could cause
worker_save_query_explain_analyzeto fail on custom types - 
Fixes a bug that could cause failed re-partition joins to leak result tables
 - 
Fixes a bug that could cause prerequisite columnar table access method objects being not created during pg upgrades
 - 
Fixes a bug that could cause re-partition joins involving local shards to fail
 - 
Fixes a bug that could cause false positive distributed deadlocks due to local execution
 - 
Fixes a bug that could cause leaking files when materialized views are refreshed
 - 
Fixes a bug that could cause unqualified
DROP DOMAIN IF EXISTSto fail - 
Fixes a bug that could cause wrong schema and ownership after
alter_distributed_table - 
Fixes a bug that could cause
EXPLAIN ANALYZEto fail for prepared statements with custom type - 
Fixes a bug that could cause Citus not to create function in transaction block properly
 - 
Fixes a bug that could cause returning invalid JSON when running
EXPLAIN ANALYZEwith subplans - 
Fixes a bug that limits usage of sequences in non-int columns
 - 
Fixes a bug that prevents
DROP SCHEMA CASCADE - 
Fixes a build error that happens when
lz4is not installed - 
Fixes a clog lookup failure that could occur when writing to a columnar table
 - 
Fixes a crash that occurs when the aggregate that cannot be pushed-down returns empty result from a worker
 - 
Fixes a missing
FROMclause entry error - 
Fixes a possible segfault that could happen when reporting distributed deadlock
 - 
Fixes an issue that could cause unexpected errors when there is an in-progress write to a columnar table
 - 
Fixes an unexpected error that occurs due to aborted writes to a columnar table with an index
 - 
Fixes an unexpected error that occurs when writing to a columnar table created in older version
 - 
Fixes issue when compiling Citus from source with some compilers
 - 
Fixes issues on
ATTACH PARTITIONlogic - 
Fixes naming issues of newly created partitioned indexes
 - 
Honors
enable_metadata_syncin node operations - 
Improves nested execution checks and adds GUC to control (
citus.allow_nested_distributed_execution) - 
Improves self-deadlock prevention for
CREATE INDEX / REINDEX CONCURRENTLYcommands for builds using PG14 or higher - 
Moves
pg_dist_objecttopg_catalogschema - 
Parallelizes metadata syncing on node activation
 - 
Partitions shards to be co-located with the parent shards
 - 
Prevents Citus table functions from being called on shards
 - 
Prevents creating distributed functions when there are out of sync nodes
 - 
Prevents alter table functions from dropping extensions
 - 
Refrains reading the metadata cache for all tables during upgrade
 - 
Provides notice message for idempotent
create_distributed_functioncalls - 
Reinstates optimisation for uniform shard interval ranges
 - 
Relaxes table ownership check to privileges check while acquiring lock
 - 
Drops support for
citus.shard_placement_policyGUC - 
Drops
master_append_table_to_shardUDF - 
Drops
master_apply_delete_commandUDF - 
Removes copy into new shard logic for append-distributed tables
 - 
Drops support for distributed
cstore_fdwtables in favor of Citus columnar table access method - 
Removes support for dropping distributed and local indexes in the same statement
 - 
Replaces
citus.enable_object_propagationGUC withcitus.enable_metadata_sync - 
Requires superuser for
citus_add_node()andcitus_activate_node()UDFs - 
Revokes read access to
columnar.chunkfrom unprivileged user - 
Disallows unsupported lateral subqueries on distributed tables
 - 
Stops updating shard range in
citus_update_shard_statisticsfor append tables 
citus v10.2.5 (March 15, 2022)
- 
Fixes a bug that could cause
worker_save_query_explain_analyzeto fail on custom types - 
Fixes a bug that limits usage of sequences in non-integer columns
 - 
Fixes a crash that occurs when the aggregate that cannot be pushed-down returns empty result from a worker
 - 
Improves concurrent metadata syncing and metadata changing DDL operations
 
citus v10.2.4 (February 1, 2022)
- 
Adds support for operator class parameters in indexes
 - 
Fixes a bug with distributed functions that have
OUTparameters or returnTABLE - 
Fixes a build error that happens when
lz4is not installed - 
Improves self-deadlock prevention for
CREATE INDEX&REINDEX CONCURRENTLYcommands for builds using PG14 or higher - 
Fixes a bug that causes commands to fail when
application_nameis set 
citus v10.1.4 (February 1, 2022)
- 
Adds missing version checks for columnar tables
 - 
Fixes a bug that could break
DROP SCHEMA/EXTENSIONcommands when there is a columnar table - 
Fixes a build error that happens when
lz4is not installed - 
Fixes a missing
FROMclause entry error - 
Reinstates optimisation for uniform shard interval ranges
 - 
Fixes a bug that causes commands to fail when
application_nameis set 
citus v10.2.3 (November 29, 2021)
- 
Adds
fix_partition_shard_index_namesudf to fix currently broken partition index names - 
Fixes a bug that could break
DROP SCHEMA/EXTENSIONcommands when there is a columnar table - 
Fixes a bug that could break pg upgrades due to missing
pg_dependrecords for columnar table access method - 
Fixes a missing
FROMclause entry error - 
Fixes an unexpected error that occurs when writing to a columnar table created in older versions
 - 
Fixes issue when compiling Citus from source with some compilers
 - 
Reinstates optimisation for uniform shard interval ranges
 - 
Relaxes table ownership check to privileges check while acquiring lock
 
citus v10.0.6 (November 12, 2021)
- 
Adds missing version checks for columnar tables
 - 
Fixes a bug that caused
worker_append_table_to_shardto write as superuser - 
Fixes a bug with local cached plans on tables with dropped columns
 - 
Fixes a missing
FROMclause entry error - 
Fixes a use after free issue that could happen when altering a distributed table
 - 
Reinstates optimisation for uniform shard interval ranges
 
citus v9.5.10 (November 8, 2021)
- Fixes a release problem in 9.5.9
 
citus v9.5.9 (November 8, 2021)
- 
Fixes a bug preventing
INSERT SELECT .. ON CONFLICTwith a constraint name on local shards - 
Fixes a bug with local cached plans on tables with dropped columns
 - 
Fixes a crash in queries with a modifying
CTEand aSELECTwithoutFROM - 
Fixes a missing
FROMclause entry error - 
Fixes a missing intermediate result when coordinator is in metadata
 - 
Reinstates optimisation for uniform shard interval ranges
 
citus v9.2.8 (November 4, 2021)
- Adds a configure flag to enforce security
 
citus v9.2.7 (November 3, 2021)
- 
Fixes
ALTER TABLE IF EXISTS SET SCHEMAwith non-existing table bug - 
Fixes
CREATE INDEX CONCURRENTLYwith no index name on a postgres table bug - 
Fixes a bug that could cause crashes with certain compile flags
 - 
Fixes a crash because of overflow in partition id with certain compile flags
 - 
Fixes a memory leak in subtransaction memory handling
 - 
Fixes deparsing for queries with anonymous column references
 
citus v10.2.2 (October 14, 2021)
- 
Fixes a bug that causes reading columnar metapage as all-zeros when writing to a columnar table
 - 
Fixes a bug that could cause prerequisite columnar table access method objects being not created during pg upgrades
 - 
Fixes a bug that could cause
CREATE INDEXto fail for expressions when using customsearch_path - 
Fixes an unexpected error that occurs due to aborted writes to a columnar table with an index
 
citus v10.2.1 (September 24, 2021)
- 
Adds missing version-mismatch checks for columnar tables
 - 
Adds missing version-mismatch checks for internal functions
 - 
Fixes a bug that could cause partition shards being not co-located with parent shards
 - 
Fixes a bug that prevents pushing down boolean expressions when using columnar custom scan
 - 
Fixes a clog lookup failure that could occur when writing to a columnar table
 - 
Fixes an issue that could cause unexpected errors when there is an in-progress write to a columnar table
 - 
Revokes read access to
columnar.chunkfrom unprivileged user 
citus v10.1.3 (September 17, 2021)
- 
Fixes a bug that caused
worker_append_table_to_shardto write as superuser - 
Fixes a crash in shard rebalancer when no distributed tables exist
 - 
Fixes a use after free issue that could happen when altering a distributed table
 
citus v9.5.8 (September 15, 2021)
- 
Fixes a bug that caused
worker_append_table_to_shardto write as superuser - 
Fixes a use after free issue that could happen when altering a distributed table
 
citus v10.2.0 (September 14, 2021)
- 
Adds PostgreSQL 14 support
 - 
Adds hash & btree index support for columnar tables
 - 
Adds helper UDFs for easy time partition management:
get_missing_time_partition_ranges,create_time_partitions, anddrop_old_time_partitions - 
Adds propagation of ALTER SEQUENCE
 - 
Adds support for ALTER INDEX ATTACH PARTITION
 - 
Adds support for CREATE INDEX ON ONLY
 - 
Allows more graceful failovers when replication factor > 1
 - 
Enables chunk group filtering to work with Params for columnar tables
 - 
Enables qual push down for joins including columnar tables
 - 
Enables transferring of data using binary encoding by default on PG14
 - 
Improves
master_update_table_statisticsand provides distributed deadlock detection - 
Includes
data_typeandcachein sequence definition on worker - 
Makes start/stop_metadata_sync_to_node() transactional
 - 
Makes sure that table exists before updating table statistics
 - 
Prevents errors with concurrent
citus_update_table_statisticsand DROP table - 
Reduces memory usage of columnar table scans by freeing the memory used for last stripe read
 - 
Shows projected columns for columnar tables in EXPLAIN output
 - 
Speeds up dropping partitioned tables
 - 
Synchronizes hasmetadata flag on mx workers
 - 
Uses current user while syncing metadata
 - 
Adds a parameter to cleanup metadata when metadata syncing is stopped
 - 
Fixes a bug about int and smallint sequences on MX
 - 
Fixes a bug that cause partitions to have wrong distribution key after DROP COLUMN
 - 
Fixes a bug that caused
worker_append_table_to_shardto write as superuser - 
Fixes a bug that caused
worker_create_or_alter_roleto crash with NULL input - 
Fixes a bug that causes pruning incorrect shard of a range distributed table
 - 
Fixes a bug that may cause crash while aborting transaction
 - 
Fixes a bug that prevents attaching partitions when colocated foreign key exists
 - 
Fixes a bug with
nextval('seq_name'::text) - 
Fixes a crash in shard rebalancer when no distributed tables exist
 - 
Fixes a segfault caused by use after free in when using a cached connection
 - 
Fixes a UNION pushdown issue
 - 
Fixes a use after free issue that could happen when altering a distributed table
 - 
Fixes showing target shard size in the rebalance progress monitor
 
citus v10.1.2 (August 16, 2021)
- 
Allows more graceful failovers when replication factor > 1
 - 
Fixes a bug that causes partitions to have wrong distribution key after
DROP COLUMN 
citus v10.0.5 (August 16, 2021)
- 
Allows more graceful failovers when replication factor > 1
 - 
Fixes a bug that causes partitions to have wrong distribution key after
DROP COLUMN - 
Improves citus_update_table_statistics and provides distributed deadlock detection
 
citus v9.5.7 (August 16, 2021)
- 
Allows more graceful failovers when replication factor > 1
 - 
Fixes a bug that causes partitions to have wrong distribution key after
DROP COLUMN - 
Improves master_update_table_statistics and provides distributed deadlock detection
 
citus v9.4.6 (August 8, 2021)
- 
Allows more graceful failovers when replication factor > 1
 - 
Improves master_update_table_statistics and provides distributed deadlock detection
 
citus v10.1.1 (August 5, 2021)
- 
Improves citus_update_table_statistics and provides distributed deadlock detection
 - 
Fixes showing target shard size in the rebalance progress monitor
 
citus v10.1.0 (July 14, 2021)
- 
Drops support for PostgreSQL 11
 - 
Adds
shard_countparameter tocreate_distributed_tablefunction - 
Adds support for
ALTER DATABASE OWNER - 
Adds support for temporary columnar tables
 - 
Adds support for using sequences as column default values when syncing metadata
 - 
alter_columnar_table_setenforces columnar table option constraints - 
Continues to remove shards after failure in
DropMarkedShards - 
Deprecates the
citus.replication_modelGUC - 
Enables
citus.defer_drop_after_shard_moveby default - 
Ensures free disk space before moving a shard
 - 
Fetches shard size on the fly for the rebalance monitor
 - 
Ignores old placements when disabling or removing a node
 - 
Implements
improvement_thresholdat shard rebalancer moves - 
Improves orphaned shard cleanup logic
 - 
Improves performance of
citus_shards - 
Introduces
citus.local_hostnameGUC for connections to the current node - 
Makes sure connection is closed after each shard move
 - 
Makes sure that target node in shard moves is eligible for shard move
 - 
Optimizes partitioned disk size calculation for shard rebalancer
 - 
Prevents connection errors by properly terminating connections
 - 
Prevents inheriting a distributed table
 - 
Prevents users from dropping & truncating known shards
 - 
Pushes down
VALUESclause as long as not in outer part of aJOIN - 
Reduces memory usage for multi-row inserts
 - 
Reduces memory usage while rebalancing shards
 - 
Removes length limits around partition names
 - 
Removes dependencies on the existence of public schema
 - 
Executor avoids opening extra connections
 - 
Excludes orphaned shards while finding shard placements
 - 
Preserves access method of materialized views when undistributing or altering distributed tables
 - 
Fixes a bug that allowed moving of shards belonging to a reference table
 - 
Fixes a bug that can cause a crash when DEBUG4 logging is enabled
 - 
Fixes a bug that causes pruning incorrect shard of a range distributed table
 - 
Fixes a bug that causes worker_create_or_alter_role to crash with NULL input
 - 
Fixes a bug where foreign key to reference table was disallowed
 - 
Fixes a bug with local cached plans on tables with dropped columns
 - 
Fixes data race in
get_rebalance_progress - 
Fixes
FROM ONLYqueries on partitioned tables - 
Fixes an issue that could cause citus_finish_pg_upgrade to fail
 - 
Fixes error message for local table joins
 - 
Fixes issues caused by omitting public schema in queries
 - 
Fixes nested
SELECTquery withUNIONbug - 
Fixes null relationName bug at parallel execution
 - 
Fixes possible segfaults when using Citus in the middle of an upgrade
 - 
Fixes problems with concurrent calls of
DropMarkedShards - 
Fixes shared dependencies that are not resident in a database
 - 
Fixes stale hostnames bug in prepared statements after
master_update_node - 
Fixes the relation size bug during rebalancing
 - 
Fixes two race conditions in the get_rebalance_progress
 - 
Fixes using 2PC when it might be necessary
 
citus v10.0.4 (July 14, 2021)
- 
Introduces
citus.local_hostnameGUC for connections to the current node - 
Removes dependencies on the existence of public schema
 - 
Removes limits around long partition names
 - 
Fixes a bug that can cause a crash when DEBUG4 logging is enabled
 - 
Fixes a bug that causes pruning incorrect shard of a range distributed table
 - 
Fixes an issue that could cause citus_finish_pg_upgrade to fail
 - 
Fixes FROM ONLY queries on partitioned tables
 - 
Fixes issues caused by public schema being omitted in queries
 - 
Fixes problems with concurrent calls of DropMarkedShards
 - 
Fixes relname null bug when using parallel execution
 - 
Fixes two race conditions in the get_rebalance_progress
 
citus v9.5.6 (July 8, 2021)
- Fixes minor bug in 
citus_prepare_pg_upgradethat caused it to lose its idempotency 
citus v9.5.5 (July 7, 2021)
- 
Adds a configure flag to enforce security
 - 
Fixes a bug that causes pruning incorrect shard of a range distributed table
 - 
Fixes an issue that could cause citus_finish_pg_upgrade to fail
 
citus v9.4.5 (July 7, 2021)
- 
Adds a configure flag to enforce security
 - 
Avoids re-using connections for intermediate results
 - 
Fixes a bug that causes pruning incorrect shard of a range distributed table
 - 
Fixes a bug that might cause self-deadlocks when COPY used in TX block
 - 
Fixes an issue that could cause citus_finish_pg_upgrade to fail
 
citus v8.3.3 (March 23, 2021)
- 
Fixes a bug that leads to various issues when a connection is lost
 - 
Fixes a bug where one could create a foreign key between non-colocated tables
 - 
Fixes a deadlock during transaction recovery
 - 
Fixes a memory leak in adaptive executor when query returns many columns
 
citus v10.0.3 (March 16, 2021)
- 
Prevents infinite recursion for queries that involve
UNION ALLbelowJOIN - 
Fixes a crash in queries with a modifying
CTEand aSELECTwithoutFROM - 
Fixes upgrade and downgrade paths for
citus_update_table_statistics - 
Fixes a bug that causes
SELECTqueries to use 2PC unnecessarily - 
Fixes a bug that might cause self-deadlocks with
CREATE INDEX/REINDEX CONCURRENTLYcommands - 
Adds
citus.max_cached_connection_lifetimeGUC to set maximum connection lifetime - 
Adds
citus.remote_copy_flush_thresholdGUC that controls per-shard memory usages byCOPY - 
Adds
citus_get_active_worker_nodesUDF to deprecatemaster_get_active_worker_nodes - 
Skips 2PC for readonly connections in a transaction
 - 
Makes sure that local execution starts coordinated transaction
 - 
Removes open temporary file warning when cancelling a query with an open tuple store
 - 
Relaxes the locks when adding an existing node
 
citus v10.0.2 (March 3, 2021)
- 
Adds a configure flag to enforce security
 - 
Fixes a bug due to cross join without target list
 - 
Fixes a bug with
UNION ALLon PG 13 - 
Fixes a compatibility issue with pg_audit in utility calls
 - 
Fixes insert query with CTEs/sublinks/subqueries etc
 - 
Grants
SELECTpermission oncitus_tablesview topublic - 
Grants
SELECTpermission on columnar metadata tables topublic - 
Improves
citus_update_table_statisticsand provides distributed deadlock detection - 
Preserves colocation with procedures in
alter_distributed_table - 
Prevents using
alter_columnar_table_setandalter_columnar_table_reseton a columnar table not owned by the user - 
Removes limits around long table names
 
citus v9.5.4 (February 19, 2021)
- Fixes a compatibility issue with pg_audit in utility calls
 
citus v10.0.1 (February 19, 2021)
- Fixes an issue in creation of 
pg_catalog.time_partitionsview 
citus v9.5.3 (February 16, 2021)
- 
Avoids re-using connections for intermediate results
 - 
Fixes a bug that might cause self-deadlocks when
COPYused in xact block - 
Fixes a crash that occurs when distributing table after dropping foreign key
 
citus v10.0.0 (February 16, 2021)
- 
Adds support for per-table option for columnar storage
 - 
Adds
rebalance_table_shardsto rebalance the shards across the nodes - 
Adds
citus_drain_nodeto move all shards away from any node - 
Enables single-node Citus for production workloads
 - 
Adds support for local table and distributed table/subquery joins
 - 
Enables foreign keys between reference tables and local tables (
citus.enable_local_reference_table_foreign_keys) - 
Adds support for co-located/recurring correlated subqueries
 - 
Adds support for co-located/recurring sublinks in the target list
 - 
Adds
alter_distributed_tableandalter_table_set_access_methodUDFs - 
Adds
alter_old_partitions_set_access_methodUDF to compress old partitions - 
Adds cascade option to
undistribute_tableUDF for foreign key connected relations - 
Allows distributed table creation immediately after CREATE EXTENSION citus
 - 
Automatically adds coordinator to the metadata before the first distributed table created
 - 
Introduces adaptive connection management for local nodes
 - 
Adds support for local execution in
INSERT..SELECTcommands that perform re-partitioning - 
Adds
public.citus_tablesview - 
Adds
pg_catalog.citus_shards,pg_catalog.citus_shards_on_workerandpg_catalog.citus_shard_indexes_on_workerviews - 
Adds
pg_catalog.time_partitionsview for simple (time) partitions and their access methods - 
Adds
remove_local_tables_from_metadataUDF for local tables automatically added to metadata when defining foreign keys with reference tables - 
Adds support for
CREATE INDEXcommands without index name on citus tables - 
Adds support for
CREATE TABLE ... USING table_access_methodstatements - 
Propagates
ALTER TABLE .. SET LOGGED/UNLOGGEDstatements - 
Propagates
ALTER INDEX .. SET STATISTICSstatements - 
Propagates
ALTER SCHEMA RENAMEstatements - 
Propagates
CREATE STATISTICSstatements across workers. - 
Propagates
DROP STATISTICSstatements across the workers - 
Propagates all types of
ALTER STATISTICSstatements. - 
Avoids establishing new connections until the previous ones are finalized
 - 
Avoids re-using connections for intermediate results
 - 
Improves performance in some subquery pushdown cases
 - 
Removes unused
citus.binary_master_copy_formatGUC - 
Removes unused
citus.expire_cached_shardsGUC - 
Removes unused
citus.large_table_shard_countGUC - 
Removes unused
citus.max_assign_task_batch_sizeGUC - 
Removes unused
citus.max_running_tasks_per_nodeGUC - 
Removes unused
citus.max_task_string_sizeGUC - 
Removes unused
citus.max_tracked_tasks_per_nodeGUC - 
Removes unused
citus.sslmodeGUC - 
Removes unused
citus.task_tracker_delayGUC - 
Removes the word ‘master’ from Citus UDFs
 - 
Removes unused UDF
mark_tables_colocated - 
Removes
upgrade_to_reference_tableUDF - 
Renames ‘master’ to ‘distributed’ for columns of
citus_dist_stat_activity - 
Renames ‘master’ to ‘distributed’ for columns of
citus_worker_stat_activity - 
Chooses the default co-location group deterministically
 - 
Deletes distributed transaction entries when removing a node
 - 
Drops support for
create_citus_local_tablein favor ofcitus_add_local_table_to_metadata - 
Fixes
EXPLAIN ANALYZEerror when query returns no columns - 
Fixes a bug preventing
INSERT SELECT .. ON CONFLICTwith a constraint name on local shards - 
Fixes a bug related to correctness of multiple joins
 - 
Fixes a bug that might cause self-deadlocks when
COPYused in xact block - 
Fixes a bug with partitioned tables that block new partition creation due to wrong constraint names on workers
 - 
Fixes a crash that occurs when distributing table after dropping foreign key
 - 
Fixes a crash when adding/dropping foreign keys from reference to local tables added to metadata
 - 
Fixes an unexpected error when executing
CREATE TABLE IF NOT EXISTS PARTITION OFcommands - 
Fixes deadlock issue for
CREATE INDEXin single node - 
Fixes distributed deadlock detection being blocked by metadata sync
 - 
Fixes handling indexes when adding local table to metadata
 - 
Fixes
undistribute_tablewhen table has column withGENERATED ALWAYS AS STOREDexpressions - 
Improves concurrent index creation failure message
 - 
Prevents empty placement creation in the coordinator when executing
master_create_empty_shard() 
citus v9.5.2 (January 26, 2021)
- 
Fixes distributed deadlock detection being blocked by metadata sync
 - 
Prevents segfaults when SAVEPOINT handling cannot recover from connection failures
 - 
Fixes possible issues that might occur with single shard distributed tables
 
citus v9.4.4 (December 28, 2020)
- 
Fixes a bug that could cause router queries with local tables to be pushed down
 - 
Fixes a segfault in connection management due to invalid connection hash entries
 - 
Fixes possible issues that might occur with single shard distributed tables
 
citus v9.5.1 (December 1, 2020)
- 
Enables PostgreSQL’s parallel queries on EXPLAIN ANALYZE
 - 
Fixes a bug that could cause excessive memory consumption when a partition is created
 - 
Fixes a bug that triggers subplan executions unnecessarily with cursors
 - 
Fixes a segfault in connection management due to invalid connection hash entries
 
citus v9.4.3 (November 24, 2020)
- 
Enables PostgreSQL’s parallel queries on EXPLAIN ANALYZE
 - 
Fixes a bug that triggers subplan executions unnecessarily with cursors
 
citus v9.5.0 (November 10, 2020)
- 
Adds support for PostgreSQL 13
 - 
Removes the task-tracker executor
 - 
Introduces citus local tables
 - 
Introduces
undistribute_tableUDF to convert tables back to postgres tables - 
Adds support for
EXPLAIN (ANALYZE) EXECUTEandEXPLAIN EXECUTE - 
Adds support for
EXPLAIN (ANALYZE, WAL)for PG13 - 
Sorts the output of
EXPLAIN (ANALYZE)by execution duration. - 
Adds support for CREATE TABLE … USING table_access_method
 - 
Adds support for
WITH TIESoption in SELECT and INSERT SELECT queries - 
Avoids taking multi-shard locks on workers
 - 
Enforces
citus.max_shared_pool_sizeconfig in COPY queries - 
Enables custom aggregates with multiple parameters to be executed on workers
 - 
Enforces
citus.max_intermediate_result_sizein local execution - 
Improves cost estimation of INSERT SELECT plans
 - 
Introduces delegation of procedures that read from reference tables
 - 
Prevents pull-push execution for simple pushdownable subqueries
 - 
Improves error message when creating a foreign key to a local table
 - 
Makes
citus_prepare_pg_upgradeidempotent by dropping transition tables - 
Disallows
ON TRUEouter joins with reference & distributed tables when reference table is outer relation to avoid incorrect results - 
Disallows field indirection in INSERT/UPDATE queries to avoid incorrect results
 - 
Disallows volatile functions in UPDATE subqueries to avoid incorrect results
 - 
Fixes CREATE INDEX CONCURRENTLY crash with local execution
 - 
Fixes
citus_finish_pg_upgradeto drop all backup tables - 
Fixes a bug that cause failures when
RECURSIVE VIEWjoined reference table - 
Fixes DROP SEQUENCE failures when metadata syncing is enabled
 - 
Fixes a bug that caused CREATE TABLE with CHECK constraint to fail
 - 
Fixes a bug that could cause VACUUM to deadlock
 - 
Fixes master_update_node failure when no background worker slots are available
 - 
Fixes a bug that caused replica identity to not be propagated on shard repair
 - 
Fixes a bug that could cause crashes after connection timeouts
 - 
Fixes a bug that could cause crashes with certain compile flags
 - 
Fixes a bug that could cause deadlocks on CREATE INDEX
 - 
Fixes a bug with genetic query optimization in outer joins
 - 
Fixes a crash when aggregating empty tables
 - 
Fixes a crash with inserting domain constrained composite types
 - 
Fixes a crash with multi-row & router INSERT’s in local execution
 - 
Fixes a possibility of doing temporary file cleanup more than once
 - 
Fixes incorrect setting of join related fields
 - 
Fixes memory issues around deparsing index commands
 - 
Fixes reference table access tracking for sequential execution
 - 
Fixes removal of a single node with only reference tables
 - 
Fixes sending commands to coordinator when it is added as a worker
 - 
Fixes write queries with const expressions and COLLATE in various places
 - 
Fixes wrong cancellation message about distributed deadlock
 
citus v9.4.2 (October 21, 2020)
- 
Fixes a bug that could lead to multiple maintenance daemons
 - 
Fixes an issue preventing views in reference table modifications
 
citus v9.4.1 (September 30, 2020)
- 
Fixes EXPLAIN ANALYZE output truncation
 - 
Fixes a deadlock during transaction recovery
 
citus v9.4.0 (July 28, 2020)
- 
Improves COPY by honoring max_adaptive_executor_pool_size config
 - 
Adds support for insert into local table select from distributed table
 - 
Adds support to partially push down tdigest aggregates
 - 
Adds support for receiving binary encoded results from workers using citus.enable_binary_protocol
 - 
Enables joins between local tables and CTEs
 - 
Adds showing query text in EXPLAIN output when explain verbose is true
 - 
Adds support for showing CTE statistics in EXPLAIN ANALYZE
 - 
Adds support for showing amount of data received in EXPLAIN ANALYZE
 - 
Introduces downgrade paths in migration scripts
 - 
Avoids returning incorrect results when changing roles in a transaction
 - 
Fixes
ALTER TABLE IF EXISTS SET SCHEMAwith non-existing table bug - 
Fixes
CREATE INDEX CONCURRENTLYwith no index name on a postgres table bug - 
Fixes a bug that could cause crashes with certain compile flags
 - 
Fixes a bug with lists of configuration values in ALTER ROLE SET statements
 - 
Fixes a bug that occurs when coordinator is added as a worker node
 - 
Fixes a crash because of overflow in partition id with certain compile flags
 - 
Fixes a crash that may happen if no worker nodes are added
 - 
Fixes a crash that occurs when inserting implicitly coerced constants
 - 
Fixes a crash when aggregating empty tables
 - 
Fixes a memory leak in subtransaction memory handling
 - 
Fixes crash when using rollback to savepoint after cancellation of DML
 - 
Fixes deparsing for queries with anonymous column references
 - 
Fixes distribution of composite types failing to include typemods
 - 
Fixes explain analyze on adaptive executor repartitions
 - 
Fixes possible error throwing in abort handle
 - 
Fixes segfault when evaluating func calls with default params on coordinator
 - 
Fixes several EXPLAIN ANALYZE issues
 - 
Fixes write queries with const expressions and COLLATE in various places
 - 
Fixes wrong cancellation message about distributed deadlocks
 - 
Reports correct INSERT/SELECT method in EXPLAIN
 - 
Disallows triggers on citus tables
 
citus v9.3.5 (July 24, 2020)
- 
Fixes
ALTER TABLE IF EXISTS SET SCHEMAwith non-existing table bug - 
Fixes
CREATE INDEX CONCURRENTLYwith no index name on a postgres table bug - 
Fixes a crash because of overflow in partition id with certain compile flags
 
citus v9.3.4 (July 21, 2020)
- 
Fixes a bug that could cause crashes with certain compile flags
 - 
Fixes a bug with lists of configuration values in ALTER ROLE SET statements
 - 
Fixes deparsing for queries with anonymous column references
 
citus v9.3.3 (July 10, 2020)
- Fixes a memory leak in subtransaction memory handling
 
citus v9.3.2 (Jun 22, 2020)
- Fixes a version bump issue in 9.3.1
 
citus v9.2.6 (Jun 22, 2020)
- Fixes a version bump issue in 9.2.5
 
citus v9.3.1 (Jun 17, 2020)
- 
Adds support to partially push down tdigest aggregates
 - 
Fixes a crash that occurs when inserting implicitly coerced constants
 
citus v9.2.5 (Jun 17, 2020)
- 
Adds support to partially push down tdigest aggregates
 - 
Fixes an issue with distributing tables having generated cols not at the end
 
citus v9.3.0 (May 6, 2020)
- 
Adds
max_shared_pool_sizeto control number of connections across sessions - 
Adds support for window functions on coordinator
 - 
Improves shard pruning logic to understand OR-conditions
 - 
Prevents using an extra connection for intermediate result multi-casts
 - 
Adds propagation of
ALTER ROLE .. SETstatements - 
Adds
update_distributed_table_colocationUDF to update colocation of tables - 
Introduces a UDF to truncate local data after distributing a table
 - 
Adds support for creating temp schemas in parallel
 - 
Adds support for evaluation of
nextvalin the target list on coordinator - 
Adds support for local execution of
COPY/TRUNCATE/DROP/DDLcommands - 
Adds support for local execution of shard creation
 - 
Uses local execution in a transaction block
 - 
Adds support for querying distributed table sizes concurrently
 - 
Allows
master_copy_shard_placementto replicate placements to new nodes - 
Allows table type to be used in target list
 - 
Avoids having multiple maintenance daemons active for a single database
 - 
Defers reference table replication to shard creation time
 - 
Enables joins between local tables and reference tables in transaction blocks
 - 
Ignores pruned target list entries in coordinator plan
 - 
Improves
SIGTERMhandling of maintenance daemon - 
Increases the default of
citus.node_connection_timeoutto 30 seconds - 
Fixes a bug that occurs when creating remote tasks in local execution
 - 
Fixes a bug that causes some DML queries containing aggregates to fail
 - 
Fixes a bug that could cause failures in queries with subqueries or CTEs
 - 
Fixes a bug that may cause some connection failures to throw errors
 - 
Fixes a bug which caused queries with SRFs and function evalution to fail
 - 
Fixes a bug with generated columns when executing
COPY dist_table TO file - 
Fixes a crash when using non-constant limit clauses
 - 
Fixes a failure when composite types used in prepared statements
 - 
Fixes a possible segfault when dropping dist. table in a transaction block
 - 
Fixes a possible segfault when non-pushdownable aggs are solely used in HAVING
 - 
Fixes a segfault when executing queries using
GROUPING - 
Fixes an error when using
LEFT JOIN with GROUP BYon primary key - 
Fixes an issue with distributing tables having generated cols not at the end
 - 
Fixes automatic SSL permission issue when using “initdb –allow-group-access”
 - 
Fixes errors which could occur when subqueries are parameters to aggregates
 - 
Fixes possible issues by invalidating the plan cache in
master_update_node - 
Fixes timing issues which could be caused by changing system clock
 
citus v9.2.4 (March 30, 2020)
- Fixes a release problem in 9.2.3
 
citus v9.2.3 (March 25, 2020)
- 
Do not use C functions that have been banned by Microsoft
 - 
Fixes a bug that causes wrong results with complex outer joins
 - 
Fixes issues found using static analysis
 - 
Fixes left join shard pruning in pushdown planner
 - 
Fixes possibility for segmentation fault in internal aggregate functions
 - 
Fixes possible segfault when non pushdownable aggregates are used in
HAVING - 
Improves correctness of planning subqueries in
HAVING - 
Prevents using old connections for security if
citus.node_conninfochanged - 
Uses Microsoft approved cipher string for default TLS setup
 
citus v9.0.2 (March 6, 2020)
- 
Fixes build errors on EL/OL 6 based distros
 - 
Fixes a bug that caused maintenance daemon to fail on standby nodes
 - 
Disallows distributed function creation when replication_model is
statement 
citus v9.2.2 (March 5, 2020)
- 
Fixes a bug that caused some prepared stmts with function calls to fail
 - 
Fixes a bug that caused some prepared stmts with composite types to fail
 - 
Fixes a bug that caused missing subplan results in workers
 - 
Improves performance of re-partition joins
 
citus v9.2.1 (February 14, 2020)
- Fixes a bug that could cause crashes if distribution key is NULL
 
citus v9.2.0 (February 10, 2020)
- 
Adds support for
INSERT...SELECTqueries with re-partitioning - 
Adds
citus.coordinator_aggregation_strategyto support more aggregates - 
Adds caching of local plans on shards for Citus MX
 - 
Adds compatibility support for dist. object infrastructure from old versions
 - 
Adds defering shard-pruning for fast-path router queries to execution
 - 
Adds propagation of
GRANT ... ON SCHEMAqueries - 
Adds support for CTE pushdown via CTE inlining in distributed planning
 - 
Adds support for
ALTER TABLE ... SET SCHEMApropagation. - 
Adds support for
DROP ROUTINE&ALTER ROUTINEcommands - 
Adds support for any inner join on a reference table
 - 
Changes
citus.log_remote_commandslevel toNOTICE - 
Disallows marking ref. table shards unhealthy in the presence of savepoints
 - 
Disallows placing new shards with shards in TO_DELETE state
 - 
Enables local execution of queries that do not need any data access
 - 
Fixes Makefile trying to cleanup PG directory during install
 - 
Fixes a bug causing errors when planning a query with multiple subqueries
 - 
Fixes a possible deadlock that could happen during shard moves
 - 
Fixes a problem when adding a new node due to tables referenced in func body
 - 
Fixes an issue that could cause joins with reference tables to be slow
 - 
Fixes cached metadata for shard is inconsistent issue
 - 
Fixes inserting multiple composite types as partition key in VALUES
 - 
Fixes unnecessary repartition on joins with more than 4 tables
 - 
Prevents wrong results for replicated partitioned tables after failure
 - 
Restricts LIMIT approximation for non-commutative aggregates
 
citus v9.1.2 (December 30, 2019)
- Fixes a bug that prevents installation from source
 
citus v9.1.1 (December 18, 2019)
- 
Fixes a bug causing SQL-executing UDFs to crash when passing in DDL
 - 
Fixes a bug that caused column_to_column_name to crash for invalid input
 - 
Fixes a bug that caused inserts into local tables w/ dist. subqueries to crash
 - 
Fixes a bug that caused some noop DML statements to fail
 - 
Fixes a bug that prevents dropping reference table columns
 - 
Fixes a crash in IN (.., NULL) queries
 - 
Fixes a crash when calling a distributed function from PL/pgSQL
 - 
Fixes an issue that caused CTEs to sometimes leak connections
 - 
Fixes strange errors in DML with unreachable sublinks
 - 
Prevents statements in SQL functions to run outside of a transaction
 
citus v9.1.0 (November 21, 2019)
- 
Adds extensions to distributed object propagation infrastructure
 - 
Adds support for ALTER ROLE propagation
 - 
Adds support for aggregates in create_distributed_function
 - 
Adds support for expressions in reference joins
 - 
Adds support for returning RECORD in multi-shard queries
 - 
Adds support for simple IN subqueries on unique cols in repartition joins
 - 
Adds support for subqueries in HAVING clauses
 - 
Automatically distributes unary aggs w/ combinefunc and non-internal stype
 - 
Disallows distributed func creation when replication_model is ‘statement’
 - 
Drops support for deprecated real-time and router executors
 - 
Fixes a bug in local execution that could cause missing rows in RETURNING
 - 
Fixes a bug that caused maintenance daemon to fail on standby nodes
 - 
Fixes a bug that caused other CREATE EXTENSION commands to take longer
 - 
Fixes a bug that prevented REFRESH MATERIALIZED VIEW
 - 
Fixes a bug when view is used in modify statements
 - 
Fixes a memory leak in adaptive executor when query returns many columns
 - 
Fixes underflow init of default values in worker extended op node creation
 - 
Fixes potential segfault in standard_planner inlining functions
 - 
Fixes an issue that caused failures in RHEL 6 builds
 - 
Fixes queries with repartition joins and group by unique column
 - 
Improves CTE/Subquery performance by pruning intermediate rslt broadcasting
 - 
Removes
citus.worker_list_fileGUC - 
Revokes usage from the citus schema from public
 
citus v9.0.1 (October 25, 2019)
- 
Fixes a memory leak in the executor
 - 
Revokes usage from the citus schema from public
 
citus v9.0.0 (October 7, 2019)
- 
Adds support for PostgreSQL 12
 - 
Adds UDFs to help with PostgreSQL upgrades
 - 
Distributes types to worker nodes
 - 
Introduces
create_distributed_functionUDF - 
Introduces local query execution for Citus MX
 - 
Implements infrastructure for routing
CALLto MX workers - 
Implements infrastructure for routing
SELECT function()to MX workers - 
Adds support for foreign key constraints between reference tables
 - 
Adds a feature flag to turn off
CREATE TYPEpropagation - 
Adds option
citus.single_shard_commit_protocol - 
Adds support for
EXPLAIN SUMMARY - 
Adds support for
GENERATE ALWAYS AS STORED - 
Adds support for
serialandsmallserialin MX mode - 
Adds support for anon composite types on the target list in router queries
 - 
Avoids race condition between
create_reference_table&master_add_node - 
Fixes a bug in schemas of distributed sequence definitions
 - 
Fixes a bug that caused
run_command_on_colocated_placementsto fail - 
Fixes a bug that leads to various issues when a connection is lost
 - 
Fixes a schema leak on
CREATE INDEXstatement - 
Fixes assert failure in bare
SELECT FROM reference table FOR UPDATEin MX - 
Makes
master_update_nodeMX compatible - 
Prevents
pg_dist_colocationfrom multiple records for reference tables - 
Prevents segfault in
worker_partition_protocoledgecase - 
Propagates
ALTER FUNCTIONstatements for distributed functions - 
Propagates
CREATE OR REPLACE FUNCTIONfor distributed functions - 
Propagates
REINDEXon tables & indexes - 
Provides a GUC to turn of the new dependency propagation functionality
 - 
Uses 2PC in adaptive executor when dealing with replication factors above 1
 
citus v8.3.2 (August 09, 2019)
- Fixes performance issues by skipping unnecessary relation access recordings
 
citus v8.3.1 (July 29, 2019)
- Improves Adaptive Executor performance
 
citus v8.3.0 (July 10, 2019)
- 
Adds a new distributed executor: Adaptive Executor
 - 
citus.enable_statistics_collection defaults to off (opt-in)
 - 
Adds support for CTEs in router planner for modification queries
 - 
Adds support for propagating SET LOCAL at xact start
 - 
Adds option to force master_update_node during failover
 - 
Deprecates master_modify_multiple_shards
 - 
Improves round robin logic on router queries
 - 
Creates all distributed schemas as superuser on a separate connection
 - 
Makes COPY adapt to connection use behaviour of previous commands
 - 
Replaces SESSION_LIFESPAN with configurable number of connections at xact end
 - 
Propagates ALTER FOREIGN TABLE commands to workers
 - 
Don’t schedule tasks on inactive nodes
 - 
Makes DROP/VALIDATE CONSTRAINT tolerant of ambiguous shard extension
 - 
Fixes an issue with subquery map merge jobs as non-root
 - 
Fixes null pointers caused by partial initialization of ConnParamsHashEntry
 - 
Fixes errors caused by joins with shadowed aliases
 - 
Fixes a regression in outer joining subqueries introduced in 8.2.0
 - 
Fixes a crash that can occur under high memory load
 - 
Fixes a bug that selects wrong worker when using round-robin assignment
 - 
Fixes savepoint rollback after multi-shard modify/copy failure
 - 
Fixes bad foreign constraint name search
 - 
Fixes a bug that prevents stack size to be adjusted
 
citus v8.2.2 (June 11, 2019)
- Fixes a bug in outer joins wrapped in subqueries
 
citus v8.2.1 (April 03, 2019)
- Fixes a bug that prevents stack size to be adjusted
 
citus v8.1.2 (April 03, 2019)
- 
Don’t do redundant ALTER TABLE consistency checks at coordinator
 - 
Fixes a bug that prevents stack size to be adjusted
 - 
Fix an issue with some DECLARE .. CURSOR WITH HOLD commands
 
citus v8.2.0 (March 28, 2019)
- 
Removes support and code for PostgreSQL 9.6
 - 
Enable more outer joins with reference tables
 - 
Execute CREATE INDEX CONCURRENTLY in parallel
 - 
Treat functions as transaction blocks
 - 
Add support for column aliases on join clauses
 - 
Skip standard_planner() for trivial queries
 - 
Added support for function calls in joins
 - 
Round-robin task assignment policy relies on local transaction id
 - 
Relax subquery union pushdown restrictions for reference tables
 - 
Speed-up run_command_on_shards()
 - 
Address some memory issues in connection config
 - 
Restrict visibility of get_*_active_transactions functions to pg_monitor
 - 
Don’t do redundant ALTER TABLE consistency checks at coordinator
 - 
Queries with only intermediate results do not rely on task assignment policy
 - 
Finish connection establishment in parallel for multiple connections
 - 
Fixes a bug related to pruning shards using a coerced value
 - 
Fix an issue with some DECLARE .. CURSOR WITH HOLD commands
 - 
Fixes a bug that could lead to infinite recursion during recursive planning
 - 
Fixes a bug that could prevent planning full outer joins with using clause
 - 
Fixes a bug that could lead to memory leak on
citus_relation_size - 
Fixes a problem that could cause segmentation fault with recursive planning
 - 
Switch CI solution to CircleCI
 
citus v8.0.3 (January 9, 2019)
- 
Fixes maintenance daemon panic due to unreleased spinlock
 - 
Fixes an issue with having clause when used with complex joins
 
citus v8.1.1 (January 7, 2019)
- 
Fixes maintenance daemon panic due to unreleased spinlock
 - 
Fixes an issue with having clause when used with complex joins
 
citus v8.1.0 (December 17, 2018)
- 
Turns on ssl by default for new installations of citus
 - 
Restricts SSL Ciphers to TLS1.2 and above
 - 
Adds support for INSERT INTO SELECT..ON CONFLICT/RETURNING via coordinator
 - 
Adds support for round-robin task assignment for queries to reference tables
 - 
Adds support for SQL tasks using worker_execute_sql_task UDF with task-tracker
 - 
Adds support for VALIDATE CONSTRAINT queries
 - 
Adds support for disabling hash aggregate with HLL
 - 
Adds user ID suffix to intermediate files generated by task-tracker
 - 
Only allow transmit from pgsql_job_cache directory
 - 
Disallows GROUPING SET clauses in subqueries
 - 
Removes restriction on user-defined group ID in node addition functions
 - 
Relaxes multi-shard modify locks when enable_deadlock_prevention is disabled
 - 
Improves security in task-tracker protocol
 - 
Improves permission checks in internal DROP TABLE functions
 - 
Improves permission checks in cluster management functions
 - 
Cleans up UDFs and fixes permission checks
 - 
Fixes crashes caused by stack size increase under high memory load
 - 
Fixes a bug that could cause maintenance daemon panic
 
citus v8.0.2 (December 13, 2018)
- 
Fixes a bug that could cause maintenance daemon panic
 - 
Fixes crashes caused by stack size increase under high memory load
 
citus v7.5.4 (December 11, 2018)
- Fixes a bug that could cause maintenance daemon panic
 
citus v8.0.1 (November 27, 2018)
- Execute SQL tasks using worker_execute_sql_task UDF when using task-tracker
 
citus v7.5.3 (November 27, 2018)
- Execute SQL tasks using worker_execute_sql_task UDF when using task-tracker
 
citus v7.5.2 (November 14, 2018)
- 
Fixes inconsistent metadata error when shard metadata caching get interrupted
 - 
Fixes a bug that could cause memory leak
 - 
Fixes a bug that prevents recovering wrong transactions in MX
 - 
Fixes a bug to prevent wrong memory accesses on Citus MX under very high load
 - 
Fixes crashes caused by stack size increase under high memory load
 
citus v8.0.0 (October 31, 2018)
- 
Adds support for PostgreSQL 11
 - 
Adds support for applying DML operations on reference tables from MX nodes
 - 
Adds distributed locking to truncated MX tables
 - 
Adds support for running TRUNCATE command from MX worker nodes
 - 
Adds views to provide insight about the distributed transactions
 - 
Adds support for TABLESAMPLE in router queries
 - 
Adds support for INCLUDE option in index creation
 - 
Adds option to allow simple DML commands from hot standby
 - 
Adds support for partitioned tables with replication factor > 1
 - 
Prevents a deadlock on concurrent DROP TABLE and SELECT on Citus MX
 - 
Fixes a bug that prevents recovering wrong transactions in MX
 - 
Fixes a bug to prevent wrong memory accesses on Citus MX under very high load
 - 
Fixes a bug in MX mode, calling DROP SCHEMA with existing partitioned table
 - 
Fixes a bug that could cause modifying CTEs to select wrong execution mode
 - 
Fixes a bug preventing rollback in CREATE PROCEDURE
 - 
Fixes a bug on not being able to drop index on a partitioned table
 - 
Fixes a bug on TRUNCATE when there is a foreign key to a reference table
 - 
Fixes a performance issue in prepared INSERT..SELECT
 - 
Fixes a bug which causes errors on DROP DATABASE IF EXISTS
 - 
Fixes a bug to remove intermediate result directory in pull-push execution
 - 
Improves query pushdown planning performance
 - 
Evaluate functions anywhere in query
 
citus v7.5.1 (August 28, 2018)
- 
Improves query pushdown planning performance
 - 
Fixes a bug that could cause modifying CTEs to select wrong execution mode
 
citus v7.4.2 (July 27, 2018)
- Fixes a segfault in real-time executor during online shard move
 
citus v7.5.0 (July 25, 2018)
- 
Adds foreign key support from hash distributed to reference tables
 - 
Adds SELECT … FOR UPDATE support for router plannable queries
 - 
Adds support for non-partition columns in count distinct
 - 
Fixes a segfault in real-time executor during online shard move
 - 
Fixes ALTER TABLE ADD COLUMN constraint check
 - 
Fixes a bug where INSERT … SELECT was allowed to update distribution column
 - 
Allows DDL commands to be sequentialized via
citus.multi_shard_modify_mode - 
Adds support for topn_union_agg and topn_add_agg across shards
 - 
Adds support for hll_union_agg and hll_add_agg across shards
 - 
Fixes a bug that might cause shards to have a wrong owner
 - 
GUC select_opens_transaction_block defers opening transaction block on workers
 - 
Utils to implement DDLs for policies in future, warn about being unsupported
 - 
Intermediate results use separate connections to avoid interfering with tasks
 - 
Adds a node_conninfo GUC to set outgoing connection settings
 
citus v6.2.6 (July 06, 2018)
- Adds support for respecting enable_hashagg in the master planner
 
citus v7.4.1 (June 20, 2018)
- 
Fixes a bug that could cause transactions to incorrectly proceed after failure
 - 
Fixes a bug on INSERT … SELECT queries in prepared statements
 
citus v7.4.0 (May 15, 2018)
- 
Adds support for non-pushdownable subqueries and CTEs in UPDATE/DELETE queries
 - 
Adds support for pushdownable subqueries and joins in UPDATE/DELETE queries
 - 
Adds faster shard pruning for subqueries
 - 
Adds partitioning support to MX table
 - 
Adds support for (VACUUM | ANALYZE) VERBOSE
 - 
Adds support for multiple ANDs in
HAVINGfor pushdown planner - 
Adds support for quotation needy schema names
 - 
Improves operator check time in physical planner for custom data types
 - 
Removes broadcast join logic
 - 
Deprecates
large_table_shard_countandmaster_expire_table_cache() - 
Modifies master_update_node to lock write on shards hosted by node over update
 - 
DROP TABLEnow drops shards as the currrent user instead of the superuser - 
Adds specialised error codes for connection failures
 - 
Improves error messages on connection failure
 - 
Fixes issue which prevented multiple
citus_table_sizecalls per query - 
Tests are updated to use
create_distributed_table 
citus v7.2.2 (May 4, 2018)
- Fixes a bug that could cause SELECTs to crash during a rebalance
 
citus v7.3.0 (March 15, 2018)
- 
Adds support for non-colocated joins between subqueries
 - 
Adds support for window functions that can be pushed down to worker
 - 
Adds support for modifying CTEs
 - 
Adds recursive plan for subqueries in WHERE clause with recurring FROM clause
 - 
Adds support for bool_ and bit_ aggregates
 - 
Adds support for Postgres
jsonbandjsonaggregation functions - 
Adds support for respecting enable_hashagg in the master plan
 - 
Adds support for renaming a distributed table
 - 
Adds support for ALTER INDEX (SET|RESET|RENAME TO) commands
 - 
Adds support for setting storage parameters on distributed tables
 - 
Performance improvements to reduce distributed planning time
 - 
Fixes a bug on planner when aggregate is used in ORDER BY
 - 
Fixes a bug on planner when DISTINCT (ON) clause is used with GROUP BY
 - 
Fixes a bug of creating coordinator planner with distinct and aggregate clause
 - 
Fixes a bug that could open a new connection on every table size function call
 - 
Fixes a bug canceling backends that are not involved in distributed deadlocks
 - 
Fixes count distinct bug on column expressions when used with subqueries
 - 
Improves error handling on worker node failures
 - 
Improves error messages for INSERT queries that have subqueries
 
citus v7.2.1 (February 6, 2018)
- 
Fixes count distinct bug on column expressions when used with subqueries
 - 
Adds support for respecting enable_hashagg in the master plan
 - 
Fixes a bug canceling backends that are not involved in distributed deadlocks
 
citus v7.2.0 (January 16, 2018)
- 
Adds support for CTEs
 - 
Adds support for subqueries that require merge step
 - 
Adds support for set operations (UNION, INTERSECT, …)
 - 
Adds support for 2PC auto-recovery
 - 
Adds support for querying local tables in CTEs and subqueries
 - 
Adds support for more SQL coverage in subqueries for reference tables
 - 
Adds support for count(distinct) in queries with a subquery
 - 
Adds support for non-equijoins when there is already an equijoin for queries
 - 
Adds support for non-equijoins when there is already an equijoin for subquery
 - 
Adds support for real-time executor to run in transaction blocks
 - 
Adds infrastructure for storing intermediate distributed query results
 - 
Adds a new GUC named
enable_repartition_joinsfor auto executor switch - 
Adds support for limiting the intermediate result size
 - 
Improves support for queries with unions containing filters
 - 
Improves support for queries with unions containing joins
 - 
Improves support for subqueries in the
WHEREclause - 
Increases
COPYthroughput - 
Enables pushing down queries containing only recurring tuples and
GROUP BY - 
Load-balance queries that read from 0 shards
 - 
Improves support for using functions in subqueries
 - 
Fixes a bug that could cause real-time executor to crash during cancellation
 - 
Fixes a bug that could cause real-time executor to get stuck on cancellation
 - 
Fixes a bug that could block modification queries unnecessarily
 - 
Fixes a bug that could cause assigning wrong IDs to transactions
 - 
Fixes a bug that could cause an assert failure with
ANALYZEstatements - 
Fixes a bug that could allow pushing down wrong set operations in subqueries
 - 
Fixes a bug that could cause a deadlock in create_distributed_table
 - 
Fixes a bug that could confuse user about
ANALYZEusage - 
Fixes a bug that could lead to false positive distributed deadlock detections
 - 
Relaxes the locking for DDL commands on partitioned tables
 - 
Relaxes the locking on
COPYwith replication - 
Logs more remote commands when citus.log_remote_commands is set
 
citus v6.2.5 (January 11, 2018)
- Fixes a bug that could crash the coordinator while reporting a remote error
 
citus v7.1.2 (January 4, 2018)
- 
Fixes a bug that could cause assigning wrong IDs to transactions
 - 
Increases
COPYthroughput 
citus v7.1.1 (December 1, 2017)
- 
Fixes a bug that could prevent pushing down subqueries with reference tables
 - 
Fixes a bug that could create false positive distributed deadlocks
 - 
Fixes a bug that could prevent running concurrent COPY and multi-shard DDL
 - 
Fixes a bug that could mislead users about
ANALYZEqueries 
citus v7.1.0 (November 14, 2017)
- 
Adds support for native queries with multi shard
UPDATE/DELETEqueries - 
Expands reference table support in subquery pushdown
 - 
Adds window function support for subqueries and
INSERT ... SELECTqueries - 
Adds support for
COUNT(DISTINCT) [ON]queries on non-partition columns - 
Adds support for
DISTINCT [ON]queries on non-partition columns - 
Introduces basic usage statistic collector
 - 
Adds support for setting replica identity while creating distributed tables
 - 
Adds support for
ALTER TABLE ... REPLICA IDENTITYqueries - 
Adds pushdown support for
LIMITandHAVINGgrouped by partition key - 
Adds support for
INSERT ... SELECTqueries via worker nodes on MX clusters - 
Adds support for adding primary key using already defined index
 - 
Adds parameter to shard copy functions to support distinct replication models
 - 
Changes
shard_nameUDF to omit public schema name - 
Adds
master_move_nodeUDF to make changes on nodename/nodeport more easy - 
Fixes a bug that could cause casting error with
INSERT ... SELECTqueries - 
Fixes a bug that could prevent upgrading servers from Citus 6.1
 - 
Fixes a bug that could prevent attaching partitions to a table in schema
 - 
Fixes a bug that could prevent adding a node to cluster with reference table
 - 
Fixes a bug that could cause a crash with
INSERT ... SELECTqueries - 
Fixes a bug that could prevent creating a partitoned table on Cloud
 - 
Implements various performance improvements
 - 
Adds internal infrastructures and tests to improve development process
 - 
Addresses various race conditions and deadlocks
 - 
Improves and standardizes error messages
 
citus v7.0.3 (October 16, 2017)
- 
Fixes several bugs that could cause crash
 - 
Fixes a bug that could cause deadlock while creating reference tables
 - 
Fixes a bug that could cause false-positives in deadlock detection
 - 
Fixes a bug that could cause 2PC recovery not to work from MX workers
 - 
Fixes a bug that could cause cache incohorency
 - 
Fixes a bug that could cause maintenance daemon to skip cache invalidations
 - 
Improves performance of transaction recovery by using correct index
 
citus v7.0.2 (September 28, 2017)
- Updates task-tracker to limit file access
 
citus v6.2.4 (September 28, 2017)
- Updates task-tracker to limit file access
 
citus v6.1.3 (September 28, 2017)
- Updates task-tracker to limit file access
 
citus v7.0.1 (September 12, 2017)
- 
Fixes a bug that could cause memory leaks in
INSERT ... SELECTqueries - 
Fixes a bug that could cause incorrect execution of prepared statements
 - 
Fixes a bug that could cause excessive memory usage during COPY
 - 
Incorporates latest changes from core PostgreSQL code
 
citus v7.0.0 (August 28, 2017)
- 
Adds support for PostgreSQL 10
 - 
Drops support for PostgreSQL 9.5
 - 
Adds support for multi-row
INSERT - 
Adds support for router
UPDATEandDELETEqueries with subqueries - 
Adds infrastructure for distributed deadlock detection
 - 
Deprecates
enable_deadlock_preventionflag - 
Adds support for partitioned tables
 - 
Adds support for creating
UNLOGGEDtables - 
Adds support for
SAVEPOINT - 
Adds UDF
citus_create_restore_pointfor taking distributed snapshots - 
Adds support for evaluating non-pushable
INSERT ... SELECTqueries - 
Adds support for subquery pushdown on reference tables
 - 
Adds shard pruning support for
INandANY - 
Adds support for
UPDATEandDELETEcommands that prune down to 0 shard - 
Enhances transaction support by relaxing some transaction restrictions
 - 
Fixes a bug causing crash if distributed table has no shards
 - 
Fixes a bug causing crash when removing inactive node
 - 
Fixes a bug causing failure during
COPYon tables with dropped columns - 
Fixes a bug causing failure during
DROP EXTENSION - 
Fixes a bug preventing executing
VACUUMandINSERTconcurrently - 
Fixes a bug in prepared
INSERTstatements containing an implicit cast - 
Fixes several issues related to statement cancellations and connections
 - 
Fixes several 2PC related issues
 - 
Removes an unnecessary dependency causing warning messages in pg_dump
 - 
Adds internal infrastructure for follower clusters
 - 
Adds internal infrastructure for progress tracking
 - 
Implements various performance improvements
 - 
Adds internal infrastructures and tests to improve development process
 - 
Addresses various race conditions and deadlocks
 - 
Improves and standardizes error messages
 
citus v6.2.3 (July 13, 2017)
- 
Fixes a crash during execution of local CREATE INDEX CONCURRENTLY
 - 
Fixes a bug preventing usage of quoted column names in COPY
 - 
Fixes a bug in prepared INSERTs with implicit cast in partition column
 - 
Relaxes locks in VACUUM to ensure concurrent execution with INSERT
 
citus v6.2.2 (May 31, 2017)
- Fixes a common cause of deadlocks when repairing tables with foreign keys
 
citus v6.2.1 (May 24, 2017)
- Relaxes version-check logic to avoid breaking non-distributed commands
 
citus v6.2.0 (May 16, 2017)
- 
Increases SQL subquery coverage by pushing down more kinds of queries
 - 
Adds CustomScan API support to allow read-only transactions
 - 
Adds support for
CREATE/DROP INDEX CONCURRENTLY - 
Adds support for
ALTER TABLE ... ADD CONSTRAINT - 
Adds support for
ALTER TABLE ... RENAME COLUMN - 
Adds support for
DISABLE/ENABLE TRIGGER ALL - 
Adds support for expressions in the partition column in INSERTs
 - 
Adds support for query parameters in combination with function evaluation
 - 
Adds support for creating distributed tables from non-empty local tables
 - 
Adds UDFs to get size of distributed tables
 - 
Adds UDFs to add a new node without replicating reference tables
 - 
Adds checks to prevent running Citus binaries with wrong metadata tables
 - 
Improves shard pruning performance for range queries
 - 
Improves planner performance for joins involving co-located tables
 - 
Improves shard copy performance by creating indexes after copy
 - 
Improves task-tracker performance by batching several status checks
 - 
Enables router planner for queries on range partitioned table
 - 
Changes
TRUNCATEto drop local data only ifenable_ddl_propagationis off - 
Starts to execute DDL on coordinator before workers
 - 
Fixes a bug causing incorrectly reading invalidated cache
 - 
Fixes a bug related to creation of schemas of in workers with incorrect owner
 - 
Fixes a bug related to concurrent run of shard drop functions
 - 
Fixes a bug related to
EXPLAIN ANALYZEwith DML queries - 
Fixes a bug related to SQL functions in FROM clause
 - 
Adds a GUC variable to report cross shard queries
 - 
Fixes a bug related to partition columns without native hash function
 - 
Adds internal infrastructures and tests to improve development process
 - 
Addresses various race conditions and deadlocks
 - 
Improves and standardizes error messages
 
citus v6.1.2 (May 31, 2017)
- Fixes a common cause of deadlocks when repairing tables with foreign keys
 
citus v6.1.1 (May 5, 2017)
- 
Fixes a crash caused by router executor use after connection timeouts
 - 
Fixes a crash caused by relation cache invalidation during COPY
 - 
Fixes bug related to DDL use within PL/pgSQL functions
 - 
Fixes a COPY bug related to types lacking binary output functions
 - 
Fixes a bug related to modifications with parameterized partition values
 - 
Fixes improper value interpolation in worker sequence generation
 - 
Guards shard pruning logic against zero-shard tables
 - 
Fixes possible NULL pointer dereference and buffer underflow (via PVS-Studio)
 - 
Fixes a INSERT … SELECT bug that could push down non-partition column JOINs
 
citus v6.1.0 (February 9, 2017)
- 
Implements reference tables, transactionally replicated to all nodes
 - 
Adds
upgrade_to_reference_tableUDF to upgrade pre-6.1 reference tables - 
Expands prepared statement support to nearly all statements
 - 
Adds support for creating
VIEWs which reference distributed tables - 
Adds targeted
VACUUM/ANALYZEsupport - 
Adds support for the
FILTERclause in aggregate expressions - 
Adds support for function evaluation within
INSERT INTO ... SELECT - 
Adds support for creating foreign key constraints with
ALTER TABLE - 
Adds logic to choose router planner for all queries it supports
 - 
Enhances
create_distributed_tablewith parameter for explicit colocation - 
Adds generally useful utility UDFs previously available as “Citus Tools”
 - 
Adds user-facing UDFs for locking shard resources and metadata
 - 
Refactors connection and transaction management; giving consistent experience
 - 
Enhances
COPYwith fully transactional semantics - 
Improves support for cancellation for a number of queries and commands
 - 
Adds
column_to_column_nameUDF to help users understandpartkeyvalues - 
Adds
master_disable_nodeUDF for temporarily disabling nodes - 
Adds proper MX (“masterless”) metadata propagation logic
 - 
Adds
start_metadata_sync_to_nodeUDF to propagate metadata changes to nodes - 
Enhances
SERIALcompatibility with MX tables - 
Adds
node_connection_timeoutparameter to control node connection timeouts - 
Adds
enable_deadlock_preventionsetting to permit multi-node transactions - 
Adds a
replication_modelsetting to specify replication of new tables - 
Changes the
shard_replication_factorsetting’s default value to one - 
Adds code to automatically set
max_prepared_transactionsif not configured - 
Accelerates lookup of colocated shard placements
 - 
Fixes a bug affecting
INSERT INTO ... SELECTqueries using constant values - 
Fixes a bug by ensuring
COPYdoes not mark placements inactive - 
Fixes a bug affecting reads from
pg_dist_shard_placementtable - 
Fixes a crash triggered by creating a foreign key without a column
 - 
Fixes a crash related to accessing catalog tables after aborted transactions
 - 
Fixes a bug affecting JOIN queries requiring repartitions
 - 
Fixes a bug affecting node insertions to
pg_dist_nodetable - 
Fixes a crash triggered by queries with modifying common table expressions
 - 
Fixes a bug affecting workloads with concurrent shard appends and deletions
 - 
Addresses various race conditions and deadlocks
 - 
Improves and standardizes error messages
 
citus v6.0.1 (November 29, 2016)
- 
Fixes a bug causing failures during pg_upgrade
 - 
Fixes a bug preventing DML queries during colocated table creation
 - 
Fixes a bug that caused NULL parameters to be incorrectly passed as text
 
citus v6.0.0 (November 7, 2016)
- 
Adds compatibility with PostgreSQL 9.6, now the recommended version
 - 
Removes the
pg_worker_list.conffile in favor of apg_dist_nodetable - 
Adds
master_add_nodeandmaster_add_nodeUDFs to manage membership - 
Removes the
\stagecommand and corresponding csql binary in favor ofCOPY - 
Removes
copy_to_distributed_tablein favor of first-classCOPYsupport - 
Adds support for multiple DDL statements within a transaction
 - 
Adds support for certain foreign key constraints
 - 
Adds support for parallel
INSERT INTO ... SELECTagainst colocated tables - 
Adds support for the
TRUNCATEcommand - 
Adds support for
HAVINGclauses inSELECTqueries - 
Adds support for
EXCLUDEconstraints which include the partition column - 
Adds support for system columns in queries (
tableoid,ctid, etc.) - 
Adds support for relation name extension within
INDEXdefinitions - 
Adds support for no-op
UPDATEs of the partition column - 
Adds several general-purpose utility UDFs to aid in Citus maintenance
 - 
Adds
master_expire_table_cacheUDF to forcibly expire cached shards - 
Parallelizes the processing of DDL commands which affect distributed tables
 - 
Adds support for repartition jobs using composite or custom types
 - 
Enhances object name extension to handle long names and large shard counts
 - 
Parallelizes the
master_modify_multiple_shardsUDF - 
Changes distributed table creation to error if the target table is not empty
 - 
Changes the
pg_dist_shard.logicalrelidcolumn from anoidtoregclass - 
Adds a
placementidcolumn topg_dist_shard_placement, replacing Oid use - 
Removes the
pg_dist_shard.shardaliasdistribution metadata column - 
Adds
pg_dist_partition.repmodelto track tables using streaming replication - 
Adds internal infrastructure to take snapshots of distribution metadata
 - 
Addresses the need to invalidate prepared statements on metadata changes
 - 
Adds a
mark_tables_colocatedUDF for denoting pre-6.0 manual colocation - 
Fixes a bug affecting prepared statement execution within PL/pgSQL
 - 
Fixes a bug affecting
COPYcommands using composite types - 
Fixes a bug that could cause crashes during
EXPLAIN EXECUTE - 
Separates worker and master job temporary folders
 - 
Eliminates race condition between distributed modification and repair
 - 
Relaxes the requirement that shard repairs also repair colocated shards
 - 
Implements internal functions to track which tables’ shards are colocated
 - 
Adds
pg_dist_partition.colocationidto track colocation group membership - 
Extends shard copy and move operations to respect colocation settings
 - 
Adds
pg_dist_local_groupto prepare for future MX-related changes - 
Adds
create_distributed_tableto easily create shards and infer colocation 
citus v5.2.2 (November 7, 2016)
- 
Adds support for
IF NOT EXISTSclause ofCREATE INDEXcommand - 
Adds support for
RETURN QUERYandFOR ... INPL/pgSQL features - 
Extends the router planner to handle more queries
 - 
Changes
COUNTof zero-row sets to return0rather than an empty result - 
Reduces the minimum permitted
task_tracker_delayto a single millisecond - 
Fixes a bug that caused crashes during joins with a
WHERE falseclause - 
Fixes a bug triggered by unique violation errors raised in long transactions
 - 
Fixes a bug resulting in multiple registration of transaction callbacks
 - 
Fixes a bug which could result in stale reads of distribution metadata
 - 
Fixes a bug preventing distributed modifications in some PL/pgSQL functions
 - 
Fixes some code paths that could hypothetically read uninitialized memory
 - 
Lowers log level of waiting for activity messages
 
citus v5.2.1 (September 6, 2016)
- 
Fixes subquery pushdown to properly extract outer join qualifiers
 - 
Addresses possible memory leak during multi-shard transactions
 
citus v5.2.0 (August 15, 2016)
- 
Drops support for PostgreSQL 9.4; PostgreSQL 9.5 is required
 - 
Adds schema support for tables, other named objects (types, operators, etc.)
 - 
Evaluates non-immutable functions on master in all modification commands
 - 
Adds support for SERIAL types in non-partition columns
 - 
Adds support for RETURNING clause in INSERT, UPDATE, and DELETE commands
 - 
Adds support for multi-statement transactions involving a fixed set of nodes
 - 
Full SQL support for SELECT queries which can be executed on a single worker
 - 
Adds option to perform DDL changes using prepared transactions (2PC)
 - 
Adds an
enable_ddl_propagationparameter to control DDL propagation - 
Accelerates shard pruning during merges
 - 
Adds
master_modify_multiple_shardsUDF to modify many shards at once - 
Adds COPY support for arrays of user-defined types
 - 
Now supports parameterized prepared statements for certain use cases
 - 
Extends LIMIT/OFFSET support to all executor types
 - 
Constraint violations now fail fast rather than hitting all placements
 - 
Makes
master_create_empty_shardaware of shard placement policy - 
Reduces unnecessary sleep during queries processed by real-time executor
 - 
Improves task tracker executor’s task cleanup logic
 - 
Relaxes restrictions on cancellation of DDL commands
 - 
Removes ONLY keyword from worker SELECT queries
 - 
Error message improvements and standardization
 - 
Moves
master_update_shard_statisticsfunction topg_catalogschema - 
Fixes a bug where hash-partitioned anti-joins could return incorrect results
 - 
Now sets storage type correctly for foreign table-backed shards
 - 
Fixes
master_update_shard_statisticsissue with hash-partitioned tables - 
Fixes an issue related to extending table names that require escaping
 - 
Reduces risk of row counter overflows during modifications
 - 
Fixes a crash related to FILTER clause use in COUNT DISTINCT subqueries
 - 
Fixes crashes related to partition columns with high attribute numbers
 - 
Fixes certain subquery and join crashes
 - 
Detects flex for build even if PostgreSQL was built without it
 - 
Fixes assert-enabled crash when
all_modifications_commutativeis true 
citus v5.2.0-rc.1 (August 1, 2016)
- Initial 5.2.0 candidate
 
citus v5.1.1 (June 17, 2016)
- 
Adds complex count distinct expression support in repartitioned subqueries
 - 
Improves task tracker job cleanup logic, addressing a memory leak
 - 
Fixes bug that generated incorrect results for LEFT JOIN queries
 - 
Improves compatibility with Debian’s reproducible builds project
 - 
Fixes build issues on FreeBSD platforms
 
citus v5.1.0 (May 17, 2016)
- 
Adds distributed COPY to rapidly populate distributed tables
 - 
Adds support for using EXPLAIN on distributed queries
 - 
Recognizes and fast-paths single-shard SELECT statements automatically
 - 
Increases INSERT throughput via shard pruning optimizations
 - 
Improves planner performance for joins involving tables with many shards
 - 
Adds ability to pass columns as arguments to function calls in UPDATEs
 - 
Introduces transaction manager for use by multi-shard commands
 - 
Adds COUNT(DISTINCT …) pushdown optimization for hash-partitioned tables
 - 
Adds support for certain UNIQUE indexes on hash- or range-partitioned tables
 - 
Deprecates \stage in favor of using COPY for append-partition tables
 - 
Deprecates
copy_to_distributed_tablein favor of first-class COPY support - 
Fixes build problems when using non-packaged PostgreSQL installs
 - 
Fixes bug that sometimes skipped pruning when partitioned by a VARCHAR column
 - 
Fixes bug impeding use of user-defined functions in repartitioned subqueries
 - 
Fixes bug involving queries with equality comparisons of boolean types
 - 
Fixes crash that prevented use alongside
pg_stat_statements - 
Fixes crash arising from SELECT queries that lack a target list
 - 
Improves warning and error messages
 
citus v5.1.0-rc.2 (May 10, 2016)
- 
Fixes test failures
 - 
Fixes EXPLAIN output when FORMAT JSON in use
 
citus v5.1.0-rc.1 (May 4, 2016)
- Initial 5.1.0 candidate
 
citus v5.0.1 (April 15, 2016)
- Fixes issues on 32-bit systems
 
citus v5.0.0 (March 24, 2016)
- 
Public release under AGPLv3
 - 
PostgreSQL extension compatible with PostgreSQL 9.5 and 9.4