citus/src/backend/distributed/deparser
Gokhan Gulbiz e71bfd6074
Identity column implementation refactorings (#6738)
This pull request proposes a change to the logic used for propagating
identity columns to worker nodes in citus. Instead of creating a
dependent sequence for each identity column and changing its default
value to `nextval(seq)/worker_nextval(seq)`, this update will pass the
identity columns as-is to the worker nodes.

Please note that there are a few limitations to this change. 

1. Only bigint identity columns will be allowed in distributed tables to
ensure compatibility with the DDL from any node functionality. Our
current distributed sequence implementation only allows insert
statements from all nodes for bigint sequences.
2. `alter_distributed_table` and `undistribute_table` operations will
not be allowed for tables with identity columns. This is because we do
not have a proper way of keeping sequence states consistent across the
cluster.

DESCRIPTION: Prevents using identity columns on data types other than
`bigint` on distributed tables
DESCRIPTION: Prevents using `alter_distributed_table` and
`undistribute_table` UDFs when a table has identity columns
DESCRIPTION: Fixes a bug that prevents enforcing identity column
restrictions on worker nodes

Depends on #6740
Fixes #6694
2023-03-30 10:41:01 +03:00
..
citus_ruleutils.c Identity column implementation refactorings (#6738) 2023-03-30 10:41:01 +03:00
deparse.c Add support for TEXT SEARCH CONFIGURATION objects (#5685) 2022-02-17 13:12:46 +01:00
deparse_attribute_stmts.c Introduce GetDistributeObjectOps to organize dispatch of logic dependent on node/object type 2020-01-09 18:24:29 +00:00
deparse_collation_stmts.c Introduce GetDistributeObjectOps to organize dispatch of logic dependent on node/object type 2020-01-09 18:24:29 +00:00
deparse_database_stmts.c PG15: Value -> String, Integer, Float. 2022-05-02 10:12:03 -07:00
deparse_domain_stmts.c Implement DOMAIN propagation for citus 2022-04-08 15:25:39 +02:00
deparse_extension_stmts.c Refactor the deparsing of a CREATE EXTENSION to prevent NULL POINTER dereferences (#3518) 2020-03-04 16:47:07 +01:00
deparse_foreign_data_wrapper_stmts.c Make enterprise features open source (#6008) 2022-06-16 00:23:46 -07:00
deparse_foreign_server_stmts.c Make enterprise features open source (#6008) 2022-06-16 00:23:46 -07:00
deparse_function_stmts.c Pg15 support (#6085) 2022-08-24 17:59:17 +02:00
deparse_owned_stmts.c fix the problem #5763 (#6519) 2022-12-02 13:49:32 +01:00
deparse_publication_stmts.c Propagate CREATE PUBLICATION statements 2023-03-29 00:59:12 +02:00
deparse_role_stmts.c Pg15 support (#6085) 2022-08-24 17:59:17 +02:00
deparse_schema_stmts.c Make enterprise features open source (#6008) 2022-06-16 00:23:46 -07:00
deparse_sequence_stmts.c Adds support for unlogged distributed sequences (#6292) 2022-09-13 10:53:39 +03:00
deparse_statistics_stmts.c Drop postgres 12 support (#6040) 2022-07-20 17:49:36 +03:00
deparse_table_stmts.c Propagates NOT VALID option for FK&CHECK constraints w/out a name (#6649) 2023-01-25 20:41:04 +03:00
deparse_text_search.c PG15: Value -> String, Integer, Float. 2022-05-02 10:12:03 -07:00
deparse_type_stmts.c Adds AlterTableStmtObjType macro 2021-09-03 15:27:24 +03:00
deparse_view_stmts.c Add ALTER VIEW support 2022-05-13 13:21:53 +03:00
format_collate.c Remove unused functions that cppcheck found 2020-10-19 13:50:52 +03:00
objectaddress.c address method should take parameter isPostprocess 2022-08-02 21:00:23 +03:00
qualify.c Introduce GetDistributeObjectOps to organize dispatch of logic dependent on node/object type 2020-01-09 18:24:29 +00:00
qualify_aggregate_stmts.c Propagate CREATE AGGREGATE commands 2022-03-02 10:52:43 +03:00
qualify_collation_stmt.c Fixes ALTER COLLATION encoding does not exist bug 2022-03-22 17:42:20 +03:00
qualify_domain.c Fix bug in unqualified, non-existing DROP DOMAIN IF EXISTS 2022-06-15 13:59:08 +02:00
qualify_function_stmt.c Propagate DROP ROUTINE, ALTER ROUTINE 2020-01-13 15:37:46 +00:00
qualify_publication_stmt.c Propagate CREATE PUBLICATION statements 2023-03-29 00:59:12 +02:00
qualify_role_stmt.c Accept list of values in a supported ALTER ROLE .. SET statement 2020-07-21 03:49:57 +03:00
qualify_sequence_stmt.c Adds support for unlogged distributed sequences (#6292) 2022-09-13 10:53:39 +03:00
qualify_statistics_stmt.c Drop postgres 12 support (#6040) 2022-07-20 17:49:36 +03:00
qualify_table_stmt.c Support foreign tables in MX (#5461) 2022-01-06 18:50:34 +03:00
qualify_text_search_stmts.c qualify text dict and conf respect missingok (#6120) 2022-08-03 13:13:53 +03:00
qualify_type_stmt.c Implement DOMAIN propagation for citus 2022-04-08 15:25:39 +02:00
qualify_view_stmt.c Fix dropping temporary view without specifying the explicit schema name (#6003) 2022-06-15 16:41:12 +02:00
ruleutils_13.c Properly set col names for shard rels that citus_extradata_container points to (#6428) 2022-10-14 17:31:25 +03:00
ruleutils_14.c Fix the dangling pointer bug in get_merged_argument_list() 2022-11-22 09:41:10 -08:00
ruleutils_15.c MERGE: In deparser, add missing check for RETURNING clause. 2023-02-26 22:38:14 -08:00