Contents
-
-
- 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 v12.1.1 (November 9, 2023)
Fixes leaking of memory and memory contexts in Citus foreign key cache (#7219)
Makes sure to disallow creating a replicated distributed table concurrently (#7236)
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., \
Adds support for creating
PRIMARY KEYs andUNIQUE/EXCLUSION/CHECK/FOREIGN KEYconstraints viaALTER TABLEcommand without providing a constraint nameAdds support for using identity columns on Citus tables
Adds support for
MERGEcommand on local tablesAdds
citus_job_list(),citus_job_status()andcitus_rebalance_status()UDFs that allow monitoring rebalancer progressAdds
citus_task_wait()UDF to wait on desired task statusAdds
source_lsn,target_lsnandstatusfields intoget_rebalance_progress()Introduces
citus_copy_shard_placement()UDF with node idIntroduces
citus_move_shard_placement()UDF with node idPropagates
BEGINproperties to worker nodesPropagates
DROP OWNED BYto worker nodesDeprecates
citus.replicate_reference_tables_on_activateand makes it alwaysoffDrops GUC
citus.defer_drop_after_shard_moveDrops GUC
citus.defer_drop_after_shard_splitDrops
SHARD_STATE_TO_DELETEstate and uses the cleanup records insteadAllows
citus_update_node()to work with nodes from different clustersAdds 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_namesAvoids leaking
search_pathto workers when executing DDL commandsFixes
alter_table_set_access_method error()for viewsFixes
citus_drain_node()to allow draining the specified worker onlyFixes 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 certainRETURNINGclausesPropagates 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 columnAllows
citus_internalapplication_namewith additional suffixDisallows having
ON DELETE/UPDATE SET DEFAULTactions on columns that default to sequencesFixes a bug in
ALTER EXTENSION citus UPDATEFixes 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 actionsFixes 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
noneFixes 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.1Fixes 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 UPDATEFixes 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 sequencesFixes a bug that might cause inserting incorrect
DEFAULTvalues when applying foreign key actionsFixes 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 applicationAdds
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 pointsAdds 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 stateMakes
citus_move_shard_placement()idempotent if shard already exists on target nodeShows
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 columnIntroduces GUC
citus.skip_constraint_validationIntroduces
citus_locksviewImproves
citus_tablesview by showing local tables added to metadataImproves 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 aggregatesAdds support for
NULLS NOT DISTINCTclauses for indexes for PG15+Adds support for setting relation options for columnar tables using
ALTER TABLEAdds 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_shardsPropagates
VACUUMandANALYZEto worker nodesMakes 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 callPrevents 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 columnFixes a bug that may cause
GRANTto propagate withinCREATE EXTENSIONFixes a bug that causes incorrectly marking
metadatasyncedflag for coordinatorFixes 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
noneFixes a bug that prevents using
AUTOoption forVACUUM (INDEX_CLEANUP)operationFixes 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 SEQUENCEstatementFixes several small memory leaks
Fixes the transaction timestamp column of the
get_current_transaction_id()on coordinatorMaps 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 ROLEstatementFixes a bug that could cause failures in
create_distributed_tableFixes 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 .. SELECTFixes 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 parametersFixes a bug that could cause failures in
INSERT INTO .. SELECTFixes a bug that prevents pushing down
INexpressions when using columnar custom scanFixes 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_exitFixes 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 columnFixes 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 versionsOpen sources non-blocking shard moves/shard rebalancer (
citus.logical_replication_timeout)Open sources propagation of
CREATE/DROP/ALTER ROLEstatementsOpen sources propagation of
GRANTstatementsOpen sources propagation of
CLUSTERstatementsOpen 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 workersOpen 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_conninfoAdds
citus.max_client_connectionsGUC to limit non-Citus connectionsAllows locally creating objects having a dependency that cannot be distributed
Distributes aggregates with
CREATE AGGREGATEcommandDistributes functions with
CREATE FUNCTIONcommandAdds
citus.create_object_propagationGUC to control DDL creation behaviour in transactionsHides shards based on
application_nameprefixPrevents specifying
application_nameviacitus.node_conninfoStarts identifying rebalancer backends by
application_name=citus_rebalancerStarts identifying internal backends by
application_name=citus_internalAdds
citus.enable_unsafe_triggersflag to enable unsafe triggers on distributed tablesAdds
fix_partition_shard_index_namesUDF to fix currently broken namesAdds propagation for foreign server commands
Adds propagation of
DOMAINobjectsAdds propagation of
TEXT SEARCH CONFIGURATIONobjectsAdds propagation of
TEXT SEARCH DICTIONARYobjectsAdds support for
ALTER FUNCTION ... SUPPORT ...commandsAdds support for
CREATE SCHEMA AUTHORIZATIONstatements without schema nameAdds support for
CREATE/DROP/ALTER VIEWcommandsAdds support for
TRUNCATEfor foreign tablesAdds support for adding local tables to metadata using
citus_add_local_table_to_metadata()UDFAdds 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 nodesAdds support for
TABLESAMPLEAdds support for propagating views when syncing Citus table metadata
Improves handling of
IN,OUTandINOUTparameters for functionsIntroduces
citus_backend_gpid()UDF to get global pid of the current backendIntroduces
citus_check_cluster_node_healthUDF to check cluster connectivityIntroduces
citus_check_connection_to_nodeUDF to check node connectivityIntroduces
citus_coordinator_nodeidUDF to find the node id of the coordinator nodeIntroduces
citus_stat_activityview and dropscitus_worker_stat_activityUDFIntroduces
citus.use_citus_managed_tablesGUC to add local tables to Citus metadata automaticallyIntroduces a new flag
force_delegationincreate_distributed_function()Introduces
run_command_on_coordinatorUDFIntroduces
synchronousoption tocitus_disable_node()UDFIntroduces
citus_is_coordinatorUDF to check whether a node is the coordinatorAllows adding a unique constraint with an index
Allows
create_distributed_function()on a function owned by an extensionAllows creating distributed tables in sequential mode
Allows disabling nodes when multiple failures happen
Allows
lock_table_if_exitsto be called outside of a transaction blocksAdds support for pushing procedures with
OUTarguments down to the worker nodesOverrides
pg_cancel_backend()andpg_terminate_backend()to run with global pidDelegates function calls of the form
SELECT .. FROM func()Adds propagation of
CREATE SCHEMA .. GRANT ON SCHEMA ..commandsPropagates
pg_dist_objectto worker nodesAdds propagation of
SCHEMAoperationsAdds 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_pathcitus_shards_on_workershows all local shards regardless ofsearch_pathEnables distributed execution from
run_command_on_*functionsDeprecates 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_metadataUDFDisallows remote execution from queries on shards
Drops
citus.enable_cte_inliningGUCDrops
citus.single_shard_commit_protocolGUC, defaults to 2PCDrops support for
citus.multi_shard_commit_protocol, always use 2PCAvoids unnecessary errors for
ALTER STATISTICS IF EXISTSwhen the statistics does not existFixes 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_nodeFixes schema name qualification for
ALTER/DROP SEQUENCEFixes schema name qualification for
ALTER/DROP STATISTICSFixes schema name qualification for
CREATE STATISTICSFixes 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 tableFixes a bug that could break pg upgrades due to missing
pg_dependrecords for columnar table access methodFixes a bug that could cause
CREATE INDEXto fail for expressions when using customsearch_pathFixes a bug that could cause
worker_save_query_explain_analyzeto fail on custom typesFixes 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 failFixes a bug that could cause wrong schema and ownership after
alter_distributed_tableFixes a bug that could cause
EXPLAIN ANALYZEto fail for prepared statements with custom typeFixes 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 subplansFixes a bug that limits usage of sequences in non-int columns
Fixes a bug that prevents
DROP SCHEMA CASCADEFixes a build error that happens when
lz4is not installedFixes 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 errorFixes 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 PARTITIONlogicFixes naming issues of newly created partitioned indexes
Honors
enable_metadata_syncin node operationsImproves 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 higherMoves
pg_dist_objecttopg_catalogschemaParallelizes 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_functioncallsReinstates optimisation for uniform shard interval ranges
Relaxes table ownership check to privileges check while acquiring lock
Drops support for
citus.shard_placement_policyGUCDrops
master_append_table_to_shardUDFDrops
master_apply_delete_commandUDFRemoves copy into new shard logic for append-distributed tables
Drops support for distributed
cstore_fdwtables in favor of Citus columnar table access methodRemoves support for dropping distributed and local indexes in the same statement
Replaces
citus.enable_object_propagationGUC withcitus.enable_metadata_syncRequires superuser for
citus_add_node()andcitus_activate_node()UDFsRevokes read access to
columnar.chunkfrom unprivileged userDisallows 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 typesFixes 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 returnTABLEFixes a build error that happens when
lz4is not installedImproves self-deadlock prevention for
CREATE INDEX&REINDEX CONCURRENTLYcommands for builds using PG14 or higherFixes 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 tableFixes a build error that happens when
lz4is not installedFixes a missing
FROMclause entry errorReinstates 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 namesFixes a bug that could break
DROP SCHEMA/EXTENSIONcommands when there is a columnar tableFixes a bug that could break pg upgrades due to missing
pg_dependrecords for columnar table access methodFixes a missing
FROMclause entry errorFixes 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 superuserFixes a bug with local cached plans on tables with dropped columns
Fixes a missing
FROMclause entry errorFixes 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 shardsFixes a bug with local cached plans on tables with dropped columns
Fixes a crash in queries with a modifying
CTEand aSELECTwithoutFROMFixes a missing
FROMclause entry errorFixes 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 bugFixes
CREATE INDEX CONCURRENTLYwith no index name on a postgres table bugFixes 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_pathFixes 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 superuserFixes 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 superuserFixes 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_partitionsAdds 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 detectionIncludes
data_typeandcachein sequence definition on workerMakes 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 tableReduces 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 superuserFixes a bug that caused
worker_create_or_alter_roleto crash with NULL inputFixes 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 COLUMNImproves 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 COLUMNImproves 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_tablefunctionAdds support for
ALTER DATABASE OWNERAdds support for temporary columnar tables
Adds support for using sequences as column default values when syncing metadata
alter_columnar_table_setenforces columnar table option constraintsContinues to remove shards after failure in
DropMarkedShardsDeprecates the
citus.replication_modelGUCEnables
citus.defer_drop_after_shard_moveby defaultEnsures 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 movesImproves orphaned shard cleanup logic
Improves performance of
citus_shardsIntroduces
citus.local_hostnameGUC for connections to the current nodeMakes 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 aJOINReduces 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_progressFixes
FROM ONLYqueries on partitioned tablesFixes 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 withUNIONbugFixes null relationName bug at parallel execution
Fixes possible segfaults when using Citus in the middle of an upgrade
Fixes problems with concurrent calls of
DropMarkedShardsFixes shared dependencies that are not resident in a database
Fixes stale hostnames bug in prepared statements after
master_update_nodeFixes 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 nodeRemoves 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 ALLbelowJOINFixes a crash in queries with a modifying
CTEand aSELECTwithoutFROMFixes upgrade and downgrade paths for
citus_update_table_statisticsFixes a bug that causes
SELECTqueries to use 2PC unnecessarilyFixes a bug that might cause self-deadlocks with
CREATE INDEX/REINDEX CONCURRENTLYcommandsAdds
citus.max_cached_connection_lifetimeGUC to set maximum connection lifetimeAdds
citus.remote_copy_flush_thresholdGUC that controls per-shard memory usages byCOPYAdds
citus_get_active_worker_nodesUDF to deprecatemaster_get_active_worker_nodesSkips 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 13Fixes a compatibility issue with pg_audit in utility calls
Fixes insert query with CTEs/sublinks/subqueries etc
Grants
SELECTpermission oncitus_tablesview topublicGrants
SELECTpermission on columnar metadata tables topublicImproves
citus_update_table_statisticsand provides distributed deadlock detectionPreserves colocation with procedures in
alter_distributed_tablePrevents using
alter_columnar_table_setandalter_columnar_table_reseton a columnar table not owned by the userRemoves 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 blockFixes 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 nodesAdds
citus_drain_nodeto move all shards away from any nodeEnables 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_methodUDFsAdds
alter_old_partitions_set_access_methodUDF to compress old partitionsAdds cascade option to
undistribute_tableUDF for foreign key connected relationsAllows 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-partitioningAdds
public.citus_tablesviewAdds
pg_catalog.citus_shards,pg_catalog.citus_shards_on_workerandpg_catalog.citus_shard_indexes_on_workerviewsAdds
pg_catalog.time_partitionsview for simple (time) partitions and their access methodsAdds
remove_local_tables_from_metadataUDF for local tables automatically added to metadata when defining foreign keys with reference tablesAdds support for
CREATE INDEXcommands without index name on citus tablesAdds support for
CREATE TABLE ... USING table_access_methodstatementsPropagates
ALTER TABLE .. SET LOGGED/UNLOGGEDstatementsPropagates
ALTER INDEX .. SET STATISTICSstatementsPropagates
ALTER SCHEMA RENAMEstatementsPropagates
CREATE STATISTICSstatements across workers.Propagates
DROP STATISTICSstatements across the workersPropagates 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_formatGUCRemoves unused
citus.expire_cached_shardsGUCRemoves unused
citus.large_table_shard_countGUCRemoves unused
citus.max_assign_task_batch_sizeGUCRemoves unused
citus.max_running_tasks_per_nodeGUCRemoves unused
citus.max_task_string_sizeGUCRemoves unused
citus.max_tracked_tasks_per_nodeGUCRemoves unused
citus.sslmodeGUCRemoves unused
citus.task_tracker_delayGUCRemoves the word 'master' from Citus UDFs
Removes unused UDF
mark_tables_colocatedRemoves
upgrade_to_reference_tableUDFRenames 'master' to 'distributed' for columns of
citus_dist_stat_activityRenames 'master' to 'distributed' for columns of
citus_worker_stat_activityChooses 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_metadataFixes
EXPLAIN ANALYZEerror when query returns no columnsFixes a bug preventing
INSERT SELECT .. ON CONFLICTwith a constraint name on local shardsFixes a bug related to correctness of multiple joins
Fixes a bug that might cause self-deadlocks when
COPYused in xact blockFixes 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 OFcommandsFixes deadlock issue for
CREATE INDEXin single nodeFixes 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 STOREDexpressionsImproves 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 tablesAdds support for
EXPLAIN (ANALYZE) EXECUTEandEXPLAIN EXECUTEAdds support for
EXPLAIN (ANALYZE, WAL)for PG13Sorts 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 queriesAvoids taking multi-shard locks on workers
Enforces
citus.max_shared_pool_sizeconfig in COPY queriesEnables custom aggregates with multiple parameters to be executed on workers
Enforces
citus.max_intermediate_result_sizein local executionImproves 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 tablesDisallows
ON TRUEouter joins with reference & distributed tables when reference table is outer relation to avoid incorrect resultsDisallows 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 tablesFixes a bug that cause failures when
RECURSIVE VIEWjoined reference tableFixes 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 bugFixes
CREATE INDEX CONCURRENTLYwith no index name on a postgres table bugFixes 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 bugFixes
CREATE INDEX CONCURRENTLYwith no index name on a postgres table bugFixes 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 sessionsAdds 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 .. SETstatementsAdds
update_distributed_table_colocationUDF to update colocation of tablesIntroduces 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 coordinatorAdds support for local execution of
COPY/TRUNCATE/DROP/DDLcommandsAdds 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 nodesAllows 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 daemonIncreases the default of
citus.node_connection_timeoutto 30 secondsFixes 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 fileFixes 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
GROUPINGFixes an error when using
LEFT JOIN with GROUP BYon primary keyFixes 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_nodeFixes 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
HAVINGImproves correctness of planning subqueries in
HAVINGPrevents using old connections for security if
citus.node_conninfochangedUses 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-partitioningAdds
citus.coordinator_aggregation_strategyto support more aggregatesAdds 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 SCHEMAqueriesAdds support for CTE pushdown via CTE inlining in distributed planning
Adds support for
ALTER TABLE ... SET SCHEMApropagation.Adds support for
DROP ROUTINE&ALTER ROUTINEcommandsAdds support for any inner join on a reference table
Changes
citus.log_remote_commandslevel toNOTICEDisallows 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_fileGUCRevokes 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_functionUDFIntroduces local query execution for Citus MX
Implements infrastructure for routing
CALLto MX workersImplements infrastructure for routing
SELECT function()to MX workersAdds support for foreign key constraints between reference tables
Adds a feature flag to turn off
CREATE TYPEpropagationAdds option
citus.single_shard_commit_protocolAdds support for
EXPLAIN SUMMARYAdds support for
GENERATE ALWAYS AS STOREDAdds support for
serialandsmallserialin MX modeAdds support for anon composite types on the target list in router queries
Avoids race condition between
create_reference_table&master_add_nodeFixes a bug in schemas of distributed sequence definitions
Fixes a bug that caused
run_command_on_colocated_placementsto failFixes a bug that leads to various issues when a connection is lost
Fixes a schema leak on
CREATE INDEXstatementFixes assert failure in bare
SELECT FROM reference table FOR UPDATEin MXMakes
master_update_nodeMX compatiblePrevents
pg_dist_colocationfrom multiple records for reference tablesPrevents segfault in
worker_partition_protocoledgecasePropagates
ALTER FUNCTIONstatements for distributed functionsPropagates
CREATE OR REPLACE FUNCTIONfor distributed functionsPropagates
REINDEXon tables & indexesProvides 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_*activetransactions 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_sizeFixes 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_modeAdds 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 plannerAdds 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 superuserAdds specialised error codes for connection failures
Improves error messages on connection failure
Fixes issue which prevented multiple
citus_table_sizecalls per queryTests 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 functionsAdds 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 switchAdds 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
WHEREclauseIncreases
COPYthroughputEnables pushing down queries containing only recurring tuples and
GROUP BYLoad-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
ANALYZEstatementsFixes 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
ANALYZEusageFixes 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 replicationLogs 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/DELETEqueriesExpands reference table support in subquery pushdown
Adds window function support for subqueries and
INSERT ... SELECTqueriesAdds support for
COUNT(DISTINCT) [ON]queries on non-partition columnsAdds support for
DISTINCT [ON]queries on non-partition columnsIntroduces basic usage statistic collector
Adds support for setting replica identity while creating distributed tables
Adds support for
ALTER TABLE ... REPLICA IDENTITYqueriesAdds pushdown support for
LIMITandHAVINGgrouped by partition keyAdds support for
INSERT ... SELECTqueries via worker nodes on MX clustersAdds 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 nameAdds
master_move_nodeUDF to make changes on nodename/nodeport more easyFixes a bug that could cause casting error with
INSERT ... SELECTqueriesFixes 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 ... SELECTqueriesFixes 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 ... SELECTqueriesFixes 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
INSERTAdds support for router
UPDATEandDELETEqueries with subqueriesAdds infrastructure for distributed deadlock detection
Deprecates
enable_deadlock_preventionflagAdds support for partitioned tables
Adds support for creating
UNLOGGEDtablesAdds support for
SAVEPOINTAdds UDF
citus_create_restore_pointfor taking distributed snapshotsAdds support for evaluating non-pushable
INSERT ... SELECTqueriesAdds support for subquery pushdown on reference tables
Adds shard pruning support for
INandANYAdds support for
UPDATEandDELETEcommands that prune down to 0 shardEnhances 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 columnsFixes a bug causing failure during
DROP EXTENSIONFixes a bug preventing executing
VACUUMandINSERTconcurrentlyFixes a bug in prepared
INSERTstatements containing an implicit castFixes 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 CONCURRENTLYAdds support for
ALTER TABLE ... ADD CONSTRAINTAdds support for
ALTER TABLE ... RENAME COLUMNAdds support for
DISABLE/ENABLE TRIGGER ALLAdds 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 offStarts 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 queriesFixes 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 tablesExpands prepared statement support to nearly all statements
Adds support for creating
VIEWs which reference distributed tablesAdds targeted
VACUUM/ANALYZEsupportAdds support for the
FILTERclause in aggregate expressionsAdds support for function evaluation within
INSERT INTO ... SELECTAdds support for creating foreign key constraints with
ALTER TABLEAdds logic to choose router planner for all queries it supports
Enhances
create_distributed_tablewith parameter for explicit colocationAdds 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 semanticsImproves support for cancellation for a number of queries and commands
Adds
column_to_column_nameUDF to help users understandpartkeyvaluesAdds
master_disable_nodeUDF for temporarily disabling nodesAdds proper MX ("masterless") metadata propagation logic
Adds
start_metadata_sync_to_nodeUDF to propagate metadata changes to nodesEnhances
SERIALcompatibility with MX tablesAdds
node_connection_timeoutparameter to control node connection timeoutsAdds
enable_deadlock_preventionsetting to permit multi-node transactionsAdds a
replication_modelsetting to specify replication of new tablesChanges the
shard_replication_factorsetting's default value to oneAdds code to automatically set
max_prepared_transactionsif not configuredAccelerates lookup of colocated shard placements
Fixes a bug affecting
INSERT INTO ... SELECTqueries using constant valuesFixes a bug by ensuring
COPYdoes not mark placements inactiveFixes a bug affecting reads from
pg_dist_shard_placementtableFixes 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_nodetableFixes 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_nodetableAdds
master_add_nodeandmaster_add_nodeUDFs to manage membershipRemoves the
\stagecommand and corresponding csql binary in favor ofCOPYRemoves
copy_to_distributed_tablein favor of first-classCOPYsupportAdds support for multiple DDL statements within a transaction
Adds support for certain foreign key constraints
Adds support for parallel
INSERT INTO ... SELECTagainst colocated tablesAdds support for the
TRUNCATEcommandAdds support for
HAVINGclauses inSELECTqueriesAdds support for
EXCLUDEconstraints which include the partition columnAdds support for system columns in queries (
tableoid,ctid, etc.)Adds support for relation name extension within
INDEXdefinitionsAdds support for no-op
UPDATEs of the partition columnAdds several general-purpose utility UDFs to aid in Citus maintenance
Adds
master_expire_table_cacheUDF to forcibly expire cached shardsParallelizes 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_shardsUDFChanges distributed table creation to error if the target table is not empty
Changes the
pg_dist_shard.logicalrelidcolumn from anoidtoregclassAdds a
placementidcolumn topg_dist_shard_placement, replacing Oid useRemoves the
pg_dist_shard.shardaliasdistribution metadata columnAdds
pg_dist_partition.repmodelto track tables using streaming replicationAdds 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 colocationFixes a bug affecting prepared statement execution within PL/pgSQL
Fixes a bug affecting
COPYcommands using composite typesFixes a bug that could cause crashes during
EXPLAIN EXECUTESeparates 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 membershipExtends shard copy and move operations to respect colocation settings
Adds
pg_dist_local_groupto prepare for future MX-related changesAdds
create_distributed_tableto easily create shards and infer colocation
citus v5.2.2 (November 7, 2016)
Adds support for
IF NOT EXISTSclause ofCREATE INDEXcommandAdds support for
RETURN QUERYandFOR ... INPL/pgSQL featuresExtends the router planner to handle more queries
Changes
COUNTof zero-row sets to return0rather than an empty resultReduces the minimum permitted
task_tracker_delayto a single millisecondFixes a bug that caused crashes during joins with a
WHERE falseclauseFixes 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 propagationAccelerates shard pruning during merges
Adds
master_modify_multiple_shardsUDF to modify many shards at onceAdds 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 policyReduces 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_catalogschemaFixes 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 tablesFixes 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 supportFixes 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_statementsFixes 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