citus/src/backend/distributed
Onur Tirtir fa467e05e7 Add support for creating distributed tables with a null shard key (#6745)
With this PR, we allow creating distributed tables with without
specifying a shard key via create_distributed_table(). Here are the
the important details about those tables:
* Specifying `shard_count` is not allowed because it is assumed to be 1.
* We mostly call such tables as "null shard-key" table in code /
comments.
* To avoid doing a breaking layout change in create_distributed_table();
instead of throwing an error, it will inform the user that
`distribution_type`
  param is ignored unless it's explicitly set to NULL or  'h'.
* `colocate_with` param allows colocating such null shard-key tables to
  each other.
* We define this table type, i.e., NULL_SHARD_KEY_TABLE, as a subclass
of
  DISTRIBUTED_TABLE because we mostly want to treat them as distributed
  tables in terms of SQL / DDL / operation support.
* Metadata for such tables look like:
  - distribution method => DISTRIBUTE_BY_NONE
  - replication model => REPLICATION_MODEL_STREAMING
- colocation id => **!=** INVALID_COLOCATION_ID (distinguishes from
Citus local tables)
* We assign colocation groups for such tables to different nodes in a
  round-robin fashion based on the modulo of "colocation id".

Note that this PR doesn't care about DDL (except CREATE TABLE) / SQL /
operation (i.e., Citus UDFs) support for such tables but adds a
preliminary
API.
2023-05-03 16:18:27 +03:00
..
cdc Makefile changes to build CDC in builddir for pgoutput and wal2json. (#6827) 2023-04-06 17:03:12 +05:30
clock Address the issues/comments from the original PR# 6315 2022-12-05 11:06:21 -08:00
commands Add support for creating distributed tables with a null shard key (#6745) 2023-05-03 16:18:27 +03:00
connection PR #6728  / commit - 12 2023-03-30 11:06:16 +03:00
deparser Identity column implementation refactorings (#6738) 2023-03-30 10:41:01 +03:00
executor Ensure partitionKeyValue and colocationId are set for proper tenant stats gathering (#6834) 2023-04-17 09:35:26 +03:00
metadata Add support for creating distributed tables with a null shard key (#6745) 2023-05-03 16:18:27 +03:00
operations Add support for creating distributed tables with a null shard key (#6745) 2023-05-03 16:18:27 +03:00
planner Add support for creating distributed tables with a null shard key (#6745) 2023-05-03 16:18:27 +03:00
progress Add status column to get_rebalance_progress() (#6403) 2022-10-17 16:55:31 +03:00
relay Fixes ADD {PRIMARY KEY/UNIQUE} USING INDEX cmd (#6647) 2023-01-25 21:28:07 +03:00
replication Hide shards from CDC subscriptions 2023-03-29 00:59:12 +02:00
shardsplit Make CDC decoder an independent extension (#6810) 2023-04-03 21:32:15 +05:30
sql Add CPU usage to citus_stat_tenants (#6844) 2023-04-12 16:23:00 +03:00
test Multi tenant monitoring (#6725) 2023-04-05 17:44:17 +03:00
transaction Add support for creating distributed tables with a null shard key (#6745) 2023-05-03 16:18:27 +03:00
utils Add support for creating distributed tables with a null shard key (#6745) 2023-05-03 16:18:27 +03:00
worker Identity column implementation refactorings (#6738) 2023-03-30 10:41:01 +03:00
.gitignore Change SQL migration build process for easier reviews (#2951) 2019-09-13 18:44:27 +02:00
Makefile Makefile changes to build CDC in builddir for pgoutput and wal2json. (#6827) 2023-04-06 17:03:12 +05:30
citus--11.1-1.control Support citus_columnar as separate extension (#5911) 2022-07-13 21:08:29 -07:00
citus.control Bump Citus to 12.0devel (#6840) 2023-04-10 12:05:18 +03:00
safeclib Compile safestringlib using regular configure 2020-03-19 11:52:20 +01:00
shared_library_init.c Adds control for background task executors involving a node (#6771) 2023-04-06 14:12:39 +03:00