mirror of https://github.com/citusdata/citus.git
Remove master from file hierarchy
parent
b71f82b31e
commit
d1bab78d79
|
@ -16,7 +16,7 @@ generated_sql_files = $(patsubst %,$(citus_abs_srcdir)/build/%,$(template_sql_fi
|
||||||
DATA_built = $(generated_sql_files)
|
DATA_built = $(generated_sql_files)
|
||||||
|
|
||||||
# directories with source files
|
# directories with source files
|
||||||
SUBDIRS = . commands connection ddl deparser executor master metadata planner progress relay safeclib test transaction utils worker
|
SUBDIRS = . commands connection ddl deparser executor metadata operations planner progress relay safeclib test transaction utils worker
|
||||||
|
|
||||||
# Symlinks are not copied over to the build directory if a separete build
|
# Symlinks are not copied over to the build directory if a separete build
|
||||||
# directory is used during configure (such as on CI)
|
# directory is used during configure (such as on CI)
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "distributed/commands/utility_hook.h"
|
#include "distributed/commands/utility_hook.h"
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/deparse_shard_query.h"
|
#include "distributed/deparse_shard_query.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#include "distributed/commands.h"
|
#include "distributed/commands.h"
|
||||||
#include "distributed/deparser.h"
|
#include "distributed/deparser.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata/distobject.h"
|
#include "distributed/metadata/distobject.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
#include "distributed/commands.h"
|
#include "distributed/commands.h"
|
||||||
#include "distributed/distribution_column.h"
|
#include "distributed/distribution_column.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
#include "miscadmin.h"
|
#include "miscadmin.h"
|
||||||
|
|
||||||
#include "distributed/commands/utility_hook.h"
|
#include "distributed/commands/utility_hook.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/worker_transaction.h"
|
#include "distributed/worker_transaction.h"
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include "distributed/commands/utility_hook.h"
|
#include "distributed/commands/utility_hook.h"
|
||||||
#include "distributed/deparser.h"
|
#include "distributed/deparser.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/metadata/dependency.h"
|
#include "distributed/metadata/dependency.h"
|
||||||
#include "distributed/metadata/distobject.h"
|
#include "distributed/metadata/distobject.h"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "distributed/colocation_utils.h"
|
#include "distributed/colocation_utils.h"
|
||||||
#include "distributed/commands.h"
|
#include "distributed/commands.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
#include "distributed/namespace_utils.h"
|
#include "distributed/namespace_utils.h"
|
||||||
#include "distributed/reference_table_utils.h"
|
#include "distributed/reference_table_utils.h"
|
||||||
|
|
|
@ -39,8 +39,8 @@
|
||||||
#include "distributed/deparser.h"
|
#include "distributed/deparser.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/maintenanced.h"
|
#include "distributed/maintenanced.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata/distobject.h"
|
#include "distributed/metadata/distobject.h"
|
||||||
#include "distributed/metadata/pg_dist_object.h"
|
#include "distributed/metadata/pg_dist_object.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "distributed/deparse_shard_query.h"
|
#include "distributed/deparse_shard_query.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
#include "distributed/resource_lock.h"
|
#include "distributed/resource_lock.h"
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
#include "distributed/intermediate_results.h"
|
#include "distributed/intermediate_results.h"
|
||||||
#include "distributed/local_executor.h"
|
#include "distributed/local_executor.h"
|
||||||
#include "distributed/log_utils.h"
|
#include "distributed/log_utils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_partitioning_utils.h"
|
#include "distributed/multi_partitioning_utils.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include "distributed/commands/utility_hook.h"
|
#include "distributed/commands/utility_hook.h"
|
||||||
#include "distributed/deparser.h"
|
#include "distributed/deparser.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata/distobject.h"
|
#include "distributed/metadata/distobject.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/worker_transaction.h"
|
#include "distributed/worker_transaction.h"
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include "distributed/deparser.h"
|
#include "distributed/deparser.h"
|
||||||
#include "distributed/deparse_shard_query.h"
|
#include "distributed/deparse_shard_query.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/multi_partitioning_utils.h"
|
#include "distributed/multi_partitioning_utils.h"
|
||||||
|
|
|
@ -9,12 +9,20 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
#include "miscadmin.h"
|
||||||
|
|
||||||
#include "catalog/namespace.h"
|
#include "catalog/namespace.h"
|
||||||
#include "catalog/pg_class.h"
|
#include "catalog/pg_class.h"
|
||||||
|
#include "commands/tablecmds.h"
|
||||||
|
#include "commands/trigger.h"
|
||||||
|
#include "distributed/adaptive_executor.h"
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/commands.h"
|
#include "distributed/commands.h"
|
||||||
|
#include "distributed/commands/utility_hook.h"
|
||||||
|
#include "distributed/coordinator_protocol.h"
|
||||||
|
#include "distributed/deparse_shard_query.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
|
#include "distributed/foreign_key_relationship.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
|
@ -27,6 +35,7 @@
|
||||||
#include "storage/lmgr.h"
|
#include "storage/lmgr.h"
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
#include "utils/lsyscache.h"
|
#include "utils/lsyscache.h"
|
||||||
|
#include "utils/regproc.h"
|
||||||
#include "utils/rel.h"
|
#include "utils/rel.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,6 +48,192 @@ static void ExecuteTruncateStmtSequentialIfNecessary(TruncateStmt *command);
|
||||||
static void EnsurePartitionTableNotReplicatedForTruncate(TruncateStmt *truncateStatement);
|
static void EnsurePartitionTableNotReplicatedForTruncate(TruncateStmt *truncateStatement);
|
||||||
static void LockTruncatedRelationMetadataInWorkers(TruncateStmt *truncateStatement);
|
static void LockTruncatedRelationMetadataInWorkers(TruncateStmt *truncateStatement);
|
||||||
static void AcquireDistributedLockOnRelations(List *relationIdList, LOCKMODE lockMode);
|
static void AcquireDistributedLockOnRelations(List *relationIdList, LOCKMODE lockMode);
|
||||||
|
static List * TruncateTaskList(Oid relationId);
|
||||||
|
|
||||||
|
|
||||||
|
/* exports for SQL callable functions */
|
||||||
|
PG_FUNCTION_INFO_V1(citus_truncate_trigger);
|
||||||
|
PG_FUNCTION_INFO_V1(truncate_local_data_after_distributing_table);
|
||||||
|
|
||||||
|
void EnsureLocalTableCanBeTruncated(Oid relationId);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* citus_truncate_trigger is called as a trigger when a distributed
|
||||||
|
* table is truncated.
|
||||||
|
*/
|
||||||
|
Datum
|
||||||
|
citus_truncate_trigger(PG_FUNCTION_ARGS)
|
||||||
|
{
|
||||||
|
if (!CALLED_AS_TRIGGER(fcinfo))
|
||||||
|
{
|
||||||
|
ereport(ERROR, (errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED),
|
||||||
|
errmsg("must be called as trigger")));
|
||||||
|
}
|
||||||
|
|
||||||
|
TriggerData *triggerData = (TriggerData *) fcinfo->context;
|
||||||
|
Relation truncatedRelation = triggerData->tg_relation;
|
||||||
|
Oid relationId = RelationGetRelid(truncatedRelation);
|
||||||
|
char partitionMethod = PartitionMethod(relationId);
|
||||||
|
|
||||||
|
if (!EnableDDLPropagation)
|
||||||
|
{
|
||||||
|
PG_RETURN_DATUM(PointerGetDatum(NULL));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (partitionMethod == DISTRIBUTE_BY_APPEND)
|
||||||
|
{
|
||||||
|
Oid schemaId = get_rel_namespace(relationId);
|
||||||
|
char *schemaName = get_namespace_name(schemaId);
|
||||||
|
char *relationName = get_rel_name(relationId);
|
||||||
|
|
||||||
|
DirectFunctionCall3(master_drop_all_shards,
|
||||||
|
ObjectIdGetDatum(relationId),
|
||||||
|
CStringGetTextDatum(relationName),
|
||||||
|
CStringGetTextDatum(schemaName));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
List *taskList = TruncateTaskList(relationId);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If it is a local placement of a distributed table or a reference table,
|
||||||
|
* then execute TRUNCATE command locally.
|
||||||
|
*/
|
||||||
|
bool localExecutionSupported = true;
|
||||||
|
ExecuteUtilityTaskList(taskList, localExecutionSupported);
|
||||||
|
}
|
||||||
|
|
||||||
|
PG_RETURN_DATUM(PointerGetDatum(NULL));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TruncateTaskList returns a list of tasks to execute a TRUNCATE on a
|
||||||
|
* distributed table. This is handled separately from other DDL commands
|
||||||
|
* because we handle it via the TRUNCATE trigger, which is called whenever
|
||||||
|
* a truncate cascades.
|
||||||
|
*/
|
||||||
|
static List *
|
||||||
|
TruncateTaskList(Oid relationId)
|
||||||
|
{
|
||||||
|
/* resulting task list */
|
||||||
|
List *taskList = NIL;
|
||||||
|
|
||||||
|
/* enumerate the tasks when putting them to the taskList */
|
||||||
|
int taskId = 1;
|
||||||
|
|
||||||
|
Oid schemaId = get_rel_namespace(relationId);
|
||||||
|
char *schemaName = get_namespace_name(schemaId);
|
||||||
|
char *relationName = get_rel_name(relationId);
|
||||||
|
|
||||||
|
List *shardIntervalList = LoadShardIntervalList(relationId);
|
||||||
|
|
||||||
|
/* lock metadata before getting placement lists */
|
||||||
|
LockShardListMetadata(shardIntervalList, ShareLock);
|
||||||
|
|
||||||
|
ShardInterval *shardInterval = NULL;
|
||||||
|
foreach_ptr(shardInterval, shardIntervalList)
|
||||||
|
{
|
||||||
|
uint64 shardId = shardInterval->shardId;
|
||||||
|
char *shardRelationName = pstrdup(relationName);
|
||||||
|
|
||||||
|
/* build shard relation name */
|
||||||
|
AppendShardIdToName(&shardRelationName, shardId);
|
||||||
|
|
||||||
|
char *quotedShardName = quote_qualified_identifier(schemaName, shardRelationName);
|
||||||
|
|
||||||
|
StringInfo shardQueryString = makeStringInfo();
|
||||||
|
appendStringInfo(shardQueryString, "TRUNCATE TABLE %s CASCADE", quotedShardName);
|
||||||
|
|
||||||
|
Task *task = CitusMakeNode(Task);
|
||||||
|
task->jobId = INVALID_JOB_ID;
|
||||||
|
task->taskId = taskId++;
|
||||||
|
task->taskType = DDL_TASK;
|
||||||
|
SetTaskQueryString(task, shardQueryString->data);
|
||||||
|
task->dependentTaskList = NULL;
|
||||||
|
task->replicationModel = REPLICATION_MODEL_INVALID;
|
||||||
|
task->anchorShardId = shardId;
|
||||||
|
task->taskPlacementList = ActiveShardPlacementList(shardId);
|
||||||
|
|
||||||
|
taskList = lappend(taskList, task);
|
||||||
|
}
|
||||||
|
|
||||||
|
return taskList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* truncate_local_data_after_distributing_table truncates the local records of a distributed table.
|
||||||
|
*
|
||||||
|
* The main advantage of this function is to truncate all local records after creating a
|
||||||
|
* distributed table, and prevent constraints from failing due to outdated local records.
|
||||||
|
*/
|
||||||
|
Datum
|
||||||
|
truncate_local_data_after_distributing_table(PG_FUNCTION_ARGS)
|
||||||
|
{
|
||||||
|
Oid relationId = PG_GETARG_OID(0);
|
||||||
|
|
||||||
|
CheckCitusVersion(ERROR);
|
||||||
|
EnsureCoordinator();
|
||||||
|
EnsureLocalTableCanBeTruncated(relationId);
|
||||||
|
|
||||||
|
TruncateStmt *truncateStmt = makeNode(TruncateStmt);
|
||||||
|
|
||||||
|
char *relationName = generate_qualified_relation_name(relationId);
|
||||||
|
List *names = stringToQualifiedNameList(relationName);
|
||||||
|
truncateStmt->relations = list_make1(makeRangeVarFromNameList(names));
|
||||||
|
truncateStmt->restart_seqs = false;
|
||||||
|
truncateStmt->behavior = DROP_CASCADE;
|
||||||
|
|
||||||
|
set_config_option("citus.enable_ddl_propagation", "false",
|
||||||
|
(superuser() ? PGC_SUSET : PGC_USERSET), PGC_S_SESSION,
|
||||||
|
GUC_ACTION_LOCAL, true, 0, false);
|
||||||
|
ExecuteTruncate(truncateStmt);
|
||||||
|
set_config_option("citus.enable_ddl_propagation", "true",
|
||||||
|
(superuser() ? PGC_SUSET : PGC_USERSET), PGC_S_SESSION,
|
||||||
|
GUC_ACTION_LOCAL, true, 0, false);
|
||||||
|
|
||||||
|
PG_RETURN_VOID();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* EnsureLocalTableCanBeTruncated performs the necessary checks to make sure it
|
||||||
|
* is safe to truncate the local table of a distributed table
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
EnsureLocalTableCanBeTruncated(Oid relationId)
|
||||||
|
{
|
||||||
|
/* error out if the relation is not a distributed table */
|
||||||
|
if (!IsCitusTable(relationId))
|
||||||
|
{
|
||||||
|
ereport(ERROR, (errmsg("supplied parameter is not a distributed relation"),
|
||||||
|
errdetail("This UDF only truncates local records of distributed "
|
||||||
|
"tables.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* make sure there are no foreign key references from a local table */
|
||||||
|
SetForeignConstraintRelationshipGraphInvalid();
|
||||||
|
List *referencingRelationList = ReferencingRelationIdList(relationId);
|
||||||
|
|
||||||
|
Oid referencingRelation = InvalidOid;
|
||||||
|
foreach_oid(referencingRelation, referencingRelationList)
|
||||||
|
{
|
||||||
|
/* we do not truncate a table if there is a local table referencing it */
|
||||||
|
if (!IsCitusTable(referencingRelation))
|
||||||
|
{
|
||||||
|
char *referencedRelationName = get_rel_name(relationId);
|
||||||
|
char *referencingRelationName = get_rel_name(referencingRelation);
|
||||||
|
|
||||||
|
ereport(ERROR, (errmsg("cannot truncate a table referenced in a "
|
||||||
|
"foreign key constraint by a local table"),
|
||||||
|
errdetail("Table \"%s\" references \"%s\"",
|
||||||
|
referencingRelationName,
|
||||||
|
referencedRelationName)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/local_executor.h"
|
#include "distributed/local_executor.h"
|
||||||
#include "distributed/maintenanced.h"
|
#include "distributed/maintenanced.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/hash_helpers.h"
|
#include "distributed/hash_helpers.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
#include "distributed/multi_partitioning_utils.h"
|
#include "distributed/multi_partitioning_utils.h"
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/multi_partitioning_utils.h"
|
#include "distributed/multi_partitioning_utils.h"
|
||||||
#include "distributed/relay_utility.h"
|
#include "distributed/relay_utility.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/version_compat.h"
|
#include "distributed/version_compat.h"
|
||||||
#include "foreign/foreign.h"
|
#include "foreign/foreign.h"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "distributed/deparse_shard_query.h"
|
#include "distributed/deparse_shard_query.h"
|
||||||
#include "distributed/intermediate_results.h"
|
#include "distributed/intermediate_results.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "distributed/error_codes.h"
|
#include "distributed/error_codes.h"
|
||||||
#include "distributed/intermediate_results.h"
|
#include "distributed/intermediate_results.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_client_executor.h"
|
#include "distributed/multi_client_executor.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
#include "distributed/local_executor.h"
|
#include "distributed/local_executor.h"
|
||||||
#include "distributed/local_plan_cache.h"
|
#include "distributed/local_plan_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/relation_access_tracking.h"
|
#include "distributed/relation_access_tracking.h"
|
||||||
#include "distributed/remote_commands.h" /* to access LogRemoteCommands */
|
#include "distributed/remote_commands.h" /* to access LogRemoteCommands */
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
#include "distributed/insert_select_executor.h"
|
#include "distributed/insert_select_executor.h"
|
||||||
#include "distributed/insert_select_planner.h"
|
#include "distributed/insert_select_planner.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/multi_master_planner.h"
|
#include "distributed/merge_planner.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
#include "distributed/multi_router_planner.h"
|
#include "distributed/multi_router_planner.h"
|
||||||
#include "distributed/multi_resowner.h"
|
#include "distributed/multi_resowner.h"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
#include "distributed/multi_resowner.h"
|
#include "distributed/multi_resowner.h"
|
||||||
#include "distributed/multi_server_executor.h"
|
#include "distributed/multi_server_executor.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/subplan_execution.h"
|
#include "distributed/subplan_execution.h"
|
||||||
#include "distributed/worker_protocol.h"
|
#include "distributed/worker_protocol.h"
|
||||||
#include "utils/lsyscache.h"
|
#include "utils/lsyscache.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include "catalog/pg_am.h"
|
#include "catalog/pg_am.h"
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
#include "distributed/intermediate_results.h"
|
#include "distributed/intermediate_results.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/pg_dist_shard.h"
|
#include "distributed/pg_dist_shard.h"
|
||||||
|
|
|
@ -1,221 +0,0 @@
|
||||||
/*-------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* master_truncate.c
|
|
||||||
*
|
|
||||||
* Routine for truncating local data after a table has been distributed.
|
|
||||||
*
|
|
||||||
* Copyright (c) Citus Data, Inc.
|
|
||||||
*
|
|
||||||
*-------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "postgres.h"
|
|
||||||
#include "miscadmin.h"
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "commands/tablecmds.h"
|
|
||||||
#include "commands/trigger.h"
|
|
||||||
#include "distributed/citus_ruleutils.h"
|
|
||||||
#include "distributed/adaptive_executor.h"
|
|
||||||
#include "distributed/commands/utility_hook.h"
|
|
||||||
#include "distributed/deparse_shard_query.h"
|
|
||||||
#include "distributed/foreign_key_relationship.h"
|
|
||||||
#include "distributed/listutils.h"
|
|
||||||
#include "distributed/master_metadata_utility.h"
|
|
||||||
#include "distributed/master_protocol.h"
|
|
||||||
#include "distributed/multi_executor.h"
|
|
||||||
#include "distributed/multi_join_order.h"
|
|
||||||
#include "distributed/pg_dist_partition.h"
|
|
||||||
#include "distributed/resource_lock.h"
|
|
||||||
#include "utils/builtins.h"
|
|
||||||
#include "utils/lsyscache.h"
|
|
||||||
#include "utils/regproc.h"
|
|
||||||
#include "utils/rel.h"
|
|
||||||
|
|
||||||
static List * TruncateTaskList(Oid relationId);
|
|
||||||
|
|
||||||
|
|
||||||
/* exports for SQL callable functions */
|
|
||||||
PG_FUNCTION_INFO_V1(citus_truncate_trigger);
|
|
||||||
PG_FUNCTION_INFO_V1(truncate_local_data_after_distributing_table);
|
|
||||||
|
|
||||||
void EnsureLocalTableCanBeTruncated(Oid relationId);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* citus_truncate_trigger is called as a trigger when a distributed
|
|
||||||
* table is truncated.
|
|
||||||
*/
|
|
||||||
Datum
|
|
||||||
citus_truncate_trigger(PG_FUNCTION_ARGS)
|
|
||||||
{
|
|
||||||
if (!CALLED_AS_TRIGGER(fcinfo))
|
|
||||||
{
|
|
||||||
ereport(ERROR, (errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED),
|
|
||||||
errmsg("must be called as trigger")));
|
|
||||||
}
|
|
||||||
|
|
||||||
TriggerData *triggerData = (TriggerData *) fcinfo->context;
|
|
||||||
Relation truncatedRelation = triggerData->tg_relation;
|
|
||||||
Oid relationId = RelationGetRelid(truncatedRelation);
|
|
||||||
char partitionMethod = PartitionMethod(relationId);
|
|
||||||
|
|
||||||
if (!EnableDDLPropagation)
|
|
||||||
{
|
|
||||||
PG_RETURN_DATUM(PointerGetDatum(NULL));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (partitionMethod == DISTRIBUTE_BY_APPEND)
|
|
||||||
{
|
|
||||||
Oid schemaId = get_rel_namespace(relationId);
|
|
||||||
char *schemaName = get_namespace_name(schemaId);
|
|
||||||
char *relationName = get_rel_name(relationId);
|
|
||||||
|
|
||||||
DirectFunctionCall3(master_drop_all_shards,
|
|
||||||
ObjectIdGetDatum(relationId),
|
|
||||||
CStringGetTextDatum(relationName),
|
|
||||||
CStringGetTextDatum(schemaName));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
List *taskList = TruncateTaskList(relationId);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If it is a local placement of a distributed table or a reference table,
|
|
||||||
* then execute TRUNCATE command locally.
|
|
||||||
*/
|
|
||||||
bool localExecutionSupported = true;
|
|
||||||
ExecuteUtilityTaskList(taskList, localExecutionSupported);
|
|
||||||
}
|
|
||||||
|
|
||||||
PG_RETURN_DATUM(PointerGetDatum(NULL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* TruncateTaskList returns a list of tasks to execute a TRUNCATE on a
|
|
||||||
* distributed table. This is handled separately from other DDL commands
|
|
||||||
* because we handle it via the TRUNCATE trigger, which is called whenever
|
|
||||||
* a truncate cascades.
|
|
||||||
*/
|
|
||||||
static List *
|
|
||||||
TruncateTaskList(Oid relationId)
|
|
||||||
{
|
|
||||||
/* resulting task list */
|
|
||||||
List *taskList = NIL;
|
|
||||||
|
|
||||||
/* enumerate the tasks when putting them to the taskList */
|
|
||||||
int taskId = 1;
|
|
||||||
|
|
||||||
Oid schemaId = get_rel_namespace(relationId);
|
|
||||||
char *schemaName = get_namespace_name(schemaId);
|
|
||||||
char *relationName = get_rel_name(relationId);
|
|
||||||
|
|
||||||
List *shardIntervalList = LoadShardIntervalList(relationId);
|
|
||||||
|
|
||||||
/* lock metadata before getting placement lists */
|
|
||||||
LockShardListMetadata(shardIntervalList, ShareLock);
|
|
||||||
|
|
||||||
ShardInterval *shardInterval = NULL;
|
|
||||||
foreach_ptr(shardInterval, shardIntervalList)
|
|
||||||
{
|
|
||||||
uint64 shardId = shardInterval->shardId;
|
|
||||||
char *shardRelationName = pstrdup(relationName);
|
|
||||||
|
|
||||||
/* build shard relation name */
|
|
||||||
AppendShardIdToName(&shardRelationName, shardId);
|
|
||||||
|
|
||||||
char *quotedShardName = quote_qualified_identifier(schemaName, shardRelationName);
|
|
||||||
|
|
||||||
StringInfo shardQueryString = makeStringInfo();
|
|
||||||
appendStringInfo(shardQueryString, "TRUNCATE TABLE %s CASCADE", quotedShardName);
|
|
||||||
|
|
||||||
Task *task = CitusMakeNode(Task);
|
|
||||||
task->jobId = INVALID_JOB_ID;
|
|
||||||
task->taskId = taskId++;
|
|
||||||
task->taskType = DDL_TASK;
|
|
||||||
SetTaskQueryString(task, shardQueryString->data);
|
|
||||||
task->dependentTaskList = NULL;
|
|
||||||
task->replicationModel = REPLICATION_MODEL_INVALID;
|
|
||||||
task->anchorShardId = shardId;
|
|
||||||
task->taskPlacementList = ActiveShardPlacementList(shardId);
|
|
||||||
|
|
||||||
taskList = lappend(taskList, task);
|
|
||||||
}
|
|
||||||
|
|
||||||
return taskList;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* truncate_local_data_after_distributing_table truncates the local records of a distributed table.
|
|
||||||
*
|
|
||||||
* The main advantage of this function is to truncate all local records after creating a
|
|
||||||
* distributed table, and prevent constraints from failing due to outdated local records.
|
|
||||||
*/
|
|
||||||
Datum
|
|
||||||
truncate_local_data_after_distributing_table(PG_FUNCTION_ARGS)
|
|
||||||
{
|
|
||||||
Oid relationId = PG_GETARG_OID(0);
|
|
||||||
|
|
||||||
CheckCitusVersion(ERROR);
|
|
||||||
EnsureCoordinator();
|
|
||||||
EnsureLocalTableCanBeTruncated(relationId);
|
|
||||||
|
|
||||||
TruncateStmt *truncateStmt = makeNode(TruncateStmt);
|
|
||||||
|
|
||||||
char *relationName = generate_qualified_relation_name(relationId);
|
|
||||||
List *names = stringToQualifiedNameList(relationName);
|
|
||||||
truncateStmt->relations = list_make1(makeRangeVarFromNameList(names));
|
|
||||||
truncateStmt->restart_seqs = false;
|
|
||||||
truncateStmt->behavior = DROP_CASCADE;
|
|
||||||
|
|
||||||
set_config_option("citus.enable_ddl_propagation", "false",
|
|
||||||
(superuser() ? PGC_SUSET : PGC_USERSET), PGC_S_SESSION,
|
|
||||||
GUC_ACTION_LOCAL, true, 0, false);
|
|
||||||
ExecuteTruncate(truncateStmt);
|
|
||||||
set_config_option("citus.enable_ddl_propagation", "true",
|
|
||||||
(superuser() ? PGC_SUSET : PGC_USERSET), PGC_S_SESSION,
|
|
||||||
GUC_ACTION_LOCAL, true, 0, false);
|
|
||||||
|
|
||||||
PG_RETURN_VOID();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* EnsureLocalTableCanBeTruncated performs the necessary checks to make sure it
|
|
||||||
* is safe to truncate the local table of a distributed table
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
EnsureLocalTableCanBeTruncated(Oid relationId)
|
|
||||||
{
|
|
||||||
/* error out if the relation is not a distributed table */
|
|
||||||
if (!IsCitusTable(relationId))
|
|
||||||
{
|
|
||||||
ereport(ERROR, (errmsg("supplied parameter is not a distributed relation"),
|
|
||||||
errdetail("This UDF only truncates local records of distributed "
|
|
||||||
"tables.")));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* make sure there are no foreign key references from a local table */
|
|
||||||
SetForeignConstraintRelationshipGraphInvalid();
|
|
||||||
List *referencingRelationList = ReferencingRelationIdList(relationId);
|
|
||||||
|
|
||||||
Oid referencingRelation = InvalidOid;
|
|
||||||
foreach_oid(referencingRelation, referencingRelationList)
|
|
||||||
{
|
|
||||||
/* we do not truncate a table if there is a local table referencing it */
|
|
||||||
if (!IsCitusTable(referencingRelation))
|
|
||||||
{
|
|
||||||
char *referencedRelationName = get_rel_name(relationId);
|
|
||||||
char *referencingRelationName = get_rel_name(referencingRelation);
|
|
||||||
|
|
||||||
ereport(ERROR, (errmsg("cannot truncate a table referenced in a "
|
|
||||||
"foreign key constraint by a local table"),
|
|
||||||
errdetail("Table \"%s\" references \"%s\"",
|
|
||||||
referencingRelationName,
|
|
||||||
referencedRelationName)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -37,7 +37,7 @@
|
||||||
#include "distributed/function_utils.h"
|
#include "distributed/function_utils.h"
|
||||||
#include "distributed/foreign_key_relationship.h"
|
#include "distributed/foreign_key_relationship.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata/pg_dist_object.h"
|
#include "distributed/metadata/pg_dist_object.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
|
|
@ -32,8 +32,8 @@
|
||||||
#include "distributed/deparser.h"
|
#include "distributed/deparser.h"
|
||||||
#include "distributed/distribution_column.h"
|
#include "distributed/distribution_column.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_metadata_utility.c
|
* metadata_utility.c
|
||||||
* Routines for reading and modifying master node's metadata.
|
* Routines for reading and modifying master node's metadata.
|
||||||
*
|
*
|
||||||
* Copyright (c) Citus Data, Inc.
|
* Copyright (c) Citus Data, Inc.
|
||||||
|
@ -35,8 +35,8 @@
|
||||||
#include "distributed/citus_nodes.h"
|
#include "distributed/citus_nodes.h"
|
||||||
#include "distributed/citus_safe_lib.h"
|
#include "distributed/citus_safe_lib.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
#include "distributed/multi_logical_optimizer.h"
|
#include "distributed/multi_logical_optimizer.h"
|
||||||
|
@ -317,7 +317,7 @@ ShardIntervalsOnWorkerGroup(WorkerNode *workerNode, Oid relationId)
|
||||||
* size of multiple tables. Note that, different size functions supported by PG
|
* size of multiple tables. Note that, different size functions supported by PG
|
||||||
* are also supported by this function changing the size query given as the
|
* are also supported by this function changing the size query given as the
|
||||||
* last parameter to function. Format of sizeQuery is pg_*_size(%s). Examples
|
* last parameter to function. Format of sizeQuery is pg_*_size(%s). Examples
|
||||||
* of it can be found in the master_protocol.h
|
* of it can be found in the coordinator_protocol.h
|
||||||
*/
|
*/
|
||||||
StringInfo
|
StringInfo
|
||||||
GenerateSizeQueryOnMultiplePlacements(List *shardIntervalList, char *sizeQuery)
|
GenerateSizeQueryOnMultiplePlacements(List *shardIntervalList, char *sizeQuery)
|
|
@ -28,8 +28,8 @@
|
||||||
#include "distributed/commands/utility_hook.h"
|
#include "distributed/commands/utility_hook.h"
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/maintenanced.h"
|
#include "distributed/maintenanced.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata/distobject.h"
|
#include "distributed/metadata/distobject.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/remote_commands.h"
|
#include "distributed/remote_commands.h"
|
||||||
#include "nodes/pg_list.h"
|
#include "nodes/pg_list.h"
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_citus_tools.c
|
* citus_tools.c
|
||||||
* UDF to run multi shard/worker queries
|
* UDF to run multi shard/worker queries
|
||||||
*
|
*
|
||||||
* This file contains functions to run commands on other worker/shards.
|
* This file contains functions to run commands on other worker/shards.
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_create_shards.c
|
* create_shards.c
|
||||||
*
|
*
|
||||||
* This file contains functions to distribute a table by creating shards for it
|
* This file contains functions to distribute a table by creating shards for it
|
||||||
* across a set of worker nodes.
|
* across a set of worker nodes.
|
||||||
|
@ -26,8 +26,8 @@
|
||||||
#include "catalog/namespace.h"
|
#include "catalog/namespace.h"
|
||||||
#include "catalog/pg_class.h"
|
#include "catalog/pg_class.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_delete_protocol.c
|
* delete_protocol.c
|
||||||
*
|
*
|
||||||
* Routine for deleting shards in the distributed cluster. This function takes
|
* Routine for deleting shards in the distributed cluster. This function takes
|
||||||
* in a delete command and deletes a shard if and only if all rows in the shard
|
* in a delete command and deletes a shard if and only if all rows in the shard
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
#include "distributed/deparse_shard_query.h"
|
#include "distributed/deparse_shard_query.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/local_executor.h"
|
#include "distributed/local_executor.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_client_executor.h"
|
#include "distributed/multi_client_executor.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_modify_multiple_shards.c
|
* modify_multiple_shards.c
|
||||||
* UDF to run multi shard update/delete queries
|
* UDF to run multi shard update/delete queries
|
||||||
*
|
*
|
||||||
* This file contains master_modify_multiple_shards function, which takes a update
|
* This file contains master_modify_multiple_shards function, which takes a update
|
||||||
|
@ -30,8 +30,8 @@
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/commands.h"
|
#include "distributed/commands.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_client_executor.h"
|
#include "distributed/multi_client_executor.h"
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_node_protocol.c
|
* node_protocol.c
|
||||||
* Routines for requesting information from the master node for creating or
|
* Routines for requesting information from the master node for creating or
|
||||||
* updating shards.
|
* updating shards.
|
||||||
*
|
*
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/commands.h"
|
#include "distributed/commands.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/namespace_utils.h"
|
#include "distributed/namespace_utils.h"
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_repair_shards.c
|
* repair_shards.c
|
||||||
*
|
*
|
||||||
* This file contains functions to repair unhealthy shard placements using data
|
* This file contains functions to repair unhealthy shard placements using data
|
||||||
* from healthy ones.
|
* from healthy ones.
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_split_shards.c
|
* split_shards.c
|
||||||
*
|
*
|
||||||
* This file contains functions to split a shard according to a given
|
* This file contains functions to split a shard according to a given
|
||||||
* distribution column value.
|
* distribution column value.
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
#include "catalog/pg_class.h"
|
#include "catalog/pg_class.h"
|
||||||
#include "distributed/colocation_utils.h"
|
#include "distributed/colocation_utils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_stage_protocol.c
|
* stage_protocol.c
|
||||||
*
|
*
|
||||||
* Routines for staging PostgreSQL table data as shards into the distributed
|
* Routines for staging PostgreSQL table data as shards into the distributed
|
||||||
* cluster. These user-defined functions are similar to the psql-side \stage
|
* cluster. These user-defined functions are similar to the psql-side \stage
|
||||||
|
@ -35,8 +35,8 @@
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/multi_client_executor.h"
|
#include "distributed/multi_client_executor.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
#include "distributed/multi_partitioning_utils.h"
|
#include "distributed/multi_partitioning_utils.h"
|
|
@ -29,7 +29,7 @@
|
||||||
#include "distributed/intermediate_result_pruning.h"
|
#include "distributed/intermediate_result_pruning.h"
|
||||||
#include "distributed/intermediate_results.h"
|
#include "distributed/intermediate_results.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
#include "distributed/multi_logical_planner.h"
|
#include "distributed/multi_logical_planner.h"
|
||||||
#include "distributed/multi_partitioning_utils.h"
|
#include "distributed/multi_partitioning_utils.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
#include "distributed/multi_master_planner.h"
|
#include "distributed/merge_planner.h"
|
||||||
#include "distributed/multi_router_planner.h"
|
#include "distributed/multi_router_planner.h"
|
||||||
#include "distributed/query_utils.h"
|
#include "distributed/query_utils.h"
|
||||||
#include "distributed/recursive_planning.h"
|
#include "distributed/recursive_planning.h"
|
||||||
|
|
|
@ -27,8 +27,8 @@
|
||||||
#include "distributed/function_call_delegation.h"
|
#include "distributed/function_call_delegation.h"
|
||||||
#include "distributed/insert_select_planner.h"
|
#include "distributed/insert_select_planner.h"
|
||||||
#include "distributed/insert_select_executor.h"
|
#include "distributed/insert_select_executor.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* multi_master_planner.c
|
* merge_planner.c
|
||||||
* Routines for building create table and select into table statements on the
|
* Routines for building create table and select into table statements on the
|
||||||
* master node.
|
* master node.
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
#include "distributed/insert_select_planner.h"
|
#include "distributed/insert_select_planner.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_master_planner.h"
|
#include "distributed/merge_planner.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
#include "nodes/makefuncs.h"
|
#include "nodes/makefuncs.h"
|
||||||
#include "nodes/nodeFuncs.h"
|
#include "nodes/nodeFuncs.h"
|
|
@ -34,7 +34,7 @@
|
||||||
#include "distributed/multi_explain.h"
|
#include "distributed/multi_explain.h"
|
||||||
#include "distributed/multi_logical_optimizer.h"
|
#include "distributed/multi_logical_optimizer.h"
|
||||||
#include "distributed/multi_logical_planner.h"
|
#include "distributed/multi_logical_planner.h"
|
||||||
#include "distributed/multi_master_planner.h"
|
#include "distributed/merge_planner.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
#include "distributed/multi_router_planner.h"
|
#include "distributed/multi_router_planner.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/colocation_utils.h"
|
#include "distributed/colocation_utils.h"
|
||||||
#include "distributed/deparse_shard_query.h"
|
#include "distributed/deparse_shard_query.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_router_planner.h"
|
#include "distributed/multi_router_planner.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
|
|
|
@ -30,8 +30,8 @@
|
||||||
#include "distributed/log_utils.h"
|
#include "distributed/log_utils.h"
|
||||||
#include "distributed/insert_select_planner.h"
|
#include "distributed/insert_select_planner.h"
|
||||||
#include "distributed/intermediate_result_pruning.h"
|
#include "distributed/intermediate_result_pruning.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
#include "distributed/pg_version_constants.h"
|
#include "distributed/pg_version_constants.h"
|
||||||
|
|
||||||
#include "distributed/multi_master_planner.h"
|
#include "distributed/merge_planner.h"
|
||||||
#include "nodes/plannodes.h"
|
#include "nodes/plannodes.h"
|
||||||
#if PG_VERSION_NUM >= PG_VERSION_12
|
#if PG_VERSION_NUM >= PG_VERSION_12
|
||||||
#include "nodes/nodeFuncs.h"
|
#include "nodes/nodeFuncs.h"
|
||||||
|
|
|
@ -39,8 +39,8 @@
|
||||||
#include "distributed/intermediate_result_pruning.h"
|
#include "distributed/intermediate_result_pruning.h"
|
||||||
#include "distributed/local_executor.h"
|
#include "distributed/local_executor.h"
|
||||||
#include "distributed/maintenanced.h"
|
#include "distributed/maintenanced.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
#include "distributed/multi_logical_optimizer.h"
|
#include "distributed/multi_logical_optimizer.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
#include "distributed/multi_master_planner.h"
|
#include "distributed/merge_planner.h"
|
||||||
#include "distributed/multi_router_planner.h"
|
#include "distributed/multi_router_planner.h"
|
||||||
#include "distributed/multi_server_executor.h"
|
#include "distributed/multi_server_executor.h"
|
||||||
#include "distributed/pg_dist_partition.h"
|
#include "distributed/pg_dist_partition.h"
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/insert_select_planner.h"
|
#include "distributed/insert_select_planner.h"
|
||||||
#include "distributed/multi_router_planner.h"
|
#include "distributed/multi_router_planner.h"
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
#include "distributed/distribution_column.h"
|
#include "distributed/distribution_column.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#include "distributed/worker_protocol.h"
|
#include "distributed/worker_protocol.h"
|
||||||
#include "distributed/transmit.h"
|
#include "distributed/transmit.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "fmgr.h"
|
#include "fmgr.h"
|
||||||
#include "lib/stringinfo.h"
|
#include "lib/stringinfo.h"
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
#include "distributed/resource_lock.h"
|
#include "distributed/resource_lock.h"
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/function_utils.h"
|
#include "distributed/function_utils.h"
|
||||||
#include "distributed/lock_graph.h"
|
#include "distributed/lock_graph.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/remote_commands.h"
|
#include "distributed/remote_commands.h"
|
||||||
#include "distributed/run_from_same_connection.h"
|
#include "distributed/run_from_same_connection.h"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/lock_graph.h"
|
#include "distributed/lock_graph.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/remote_commands.h"
|
#include "distributed/remote_commands.h"
|
||||||
#include "distributed/transaction_identifier.h"
|
#include "distributed/transaction_identifier.h"
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include "distributed/multi_physical_planner.h"
|
#include "distributed/multi_physical_planner.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
#include "distributed/multi_server_executor.h"
|
#include "distributed/multi_server_executor.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "lib/stringinfo.h"
|
#include "lib/stringinfo.h"
|
||||||
#include "nodes/plannodes.h"
|
#include "nodes/plannodes.h"
|
||||||
#if PG_VERSION_NUM >= PG_VERSION_12
|
#if PG_VERSION_NUM >= PG_VERSION_12
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
#include "commands/sequence.h"
|
#include "commands/sequence.h"
|
||||||
#include "distributed/colocation_utils.h"
|
#include "distributed/colocation_utils.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_logical_planner.h"
|
#include "distributed/multi_logical_planner.h"
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include "distributed/citus_safe_lib.h"
|
#include "distributed/citus_safe_lib.h"
|
||||||
#include "distributed/distributed_deadlock_detection.h"
|
#include "distributed/distributed_deadlock_detection.h"
|
||||||
#include "distributed/maintenanced.h"
|
#include "distributed/maintenanced.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/statistics_collection.h"
|
#include "distributed/statistics_collection.h"
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
#include "catalog/pg_inherits.h"
|
#include "catalog/pg_inherits.h"
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/colocation_utils.h"
|
#include "distributed/colocation_utils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/multi_partitioning_utils.h"
|
#include "distributed/multi_partitioning_utils.h"
|
||||||
#include "distributed/shardinterval_utils.h"
|
#include "distributed/shardinterval_utils.h"
|
||||||
#include "lib/stringinfo.h"
|
#include "lib/stringinfo.h"
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
#include "distributed/colocation_utils.h"
|
#include "distributed/colocation_utils.h"
|
||||||
#include "distributed/commands.h"
|
#include "distributed/commands.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_executor.h"
|
#include "distributed/multi_executor.h"
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
#include "commands/tablecmds.h"
|
#include "commands/tablecmds.h"
|
||||||
#include "distributed/colocation_utils.h"
|
#include "distributed/colocation_utils.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "distributed/multi_join_order.h"
|
#include "distributed/multi_join_order.h"
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
#include "distributed/commands/utility_hook.h"
|
#include "distributed/commands/utility_hook.h"
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_client_executor.h"
|
#include "distributed/multi_client_executor.h"
|
||||||
#include "distributed/commands/multi_copy.h"
|
#include "distributed/commands/multi_copy.h"
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/distribution_column.h"
|
#include "distributed/distribution_column.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "foreign/foreign.h"
|
#include "foreign/foreign.h"
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
#include "commands/defrem.h"
|
#include "commands/defrem.h"
|
||||||
#include "distributed/listutils.h"
|
#include "distributed/listutils.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/worker_protocol.h"
|
#include "distributed/worker_protocol.h"
|
||||||
#include "foreign/foreign.h"
|
#include "foreign/foreign.h"
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include "catalog/namespace.h"
|
#include "catalog/namespace.h"
|
||||||
#include "catalog/pg_class.h"
|
#include "catalog/pg_class.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/master_protocol.h"
|
#include "distributed/coordinator_protocol.h"
|
||||||
#include "distributed/worker_protocol.h"
|
#include "distributed/worker_protocol.h"
|
||||||
#include "distributed/worker_shard_visibility.h"
|
#include "distributed/worker_shard_visibility.h"
|
||||||
#include "nodes/nodeFuncs.h"
|
#include "nodes/nodeFuncs.h"
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#include "fmgr.h"
|
#include "fmgr.h"
|
||||||
|
|
||||||
#include "distributed/citus_ruleutils.h"
|
#include "distributed/citus_ruleutils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/metadata_sync.h"
|
#include "distributed/metadata_sync.h"
|
||||||
#include "utils/elog.h"
|
#include "utils/elog.h"
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#define MULTI_COPY_H
|
#define MULTI_COPY_H
|
||||||
|
|
||||||
|
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "nodes/execnodes.h"
|
#include "nodes/execnodes.h"
|
||||||
#include "nodes/parsenodes.h"
|
#include "nodes/parsenodes.h"
|
||||||
|
|
|
@ -1,18 +1,16 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_protocol.h
|
* coordinator_protocol.h
|
||||||
* Header for shared declarations for access to master node data. These data
|
* Header for shared declarations for access to coordinator node data.
|
||||||
* are used to create new shards or update existing ones.
|
* These data are used to create new shards or update existing ones.
|
||||||
*
|
*
|
||||||
* Copyright (c) Citus Data, Inc.
|
* Copyright (c) Citus Data, Inc.
|
||||||
*
|
*
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MASTER_PROTOCOL_H
|
#ifndef COORDINATOR_PROTOCOL_H
|
||||||
#define MASTER_PROTOCOL_H
|
#define COORDINATOR_PROTOCOL_H
|
||||||
|
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
#include "c.h"
|
#include "c.h"
|
||||||
|
@ -21,7 +19,7 @@
|
||||||
#include "distributed/connection_management.h"
|
#include "distributed/connection_management.h"
|
||||||
#include "distributed/shardinterval_utils.h"
|
#include "distributed/shardinterval_utils.h"
|
||||||
#include "nodes/pg_list.h"
|
#include "nodes/pg_list.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -176,4 +174,4 @@ extern ShardPlacement * ForceSearchShardPlacementInList(List *shardPlacementList
|
||||||
const char *nodeName,
|
const char *nodeName,
|
||||||
uint32 nodePort);
|
uint32 nodePort);
|
||||||
|
|
||||||
#endif /* MASTER_PROTOCOL_H */
|
#endif /* COORDINATOR_PROTOCOL_H */
|
|
@ -1,18 +1,16 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* multi_master_planner.h
|
* merge_planner.h
|
||||||
* Function declarations for building planned statements; these statements
|
* Function declarations for building planned statements; these statements
|
||||||
* are then executed on the master node.
|
* are then executed on the coordinator node.
|
||||||
*
|
*
|
||||||
* Copyright (c) Citus Data, Inc.
|
* Copyright (c) Citus Data, Inc.
|
||||||
*
|
*
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MULTI_MASTER_PLANNER_H
|
#ifndef MERGE_PLANNER_H
|
||||||
#define MULTI_MASTER_PLANNER_H
|
#define MERGE_PLANNER_H
|
||||||
|
|
||||||
#include "lib/stringinfo.h"
|
#include "lib/stringinfo.h"
|
||||||
#include "nodes/parsenodes.h"
|
#include "nodes/parsenodes.h"
|
||||||
|
@ -37,4 +35,4 @@ extern Unique * make_unique_from_sortclauses(Plan *lefttree, List *distinctList)
|
||||||
extern bool ReplaceCitusExtraDataContainer;
|
extern bool ReplaceCitusExtraDataContainer;
|
||||||
extern CustomScan *ReplaceCitusExtraDataContainerWithCustomScan;
|
extern CustomScan *ReplaceCitusExtraDataContainerWithCustomScan;
|
||||||
|
|
||||||
#endif /* MULTI_MASTER_PLANNER_H */
|
#endif /* MERGE_PLANNER_H */
|
|
@ -14,7 +14,7 @@
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
|
||||||
#include "fmgr.h"
|
#include "fmgr.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/pg_dist_partition.h"
|
#include "distributed/pg_dist_partition.h"
|
||||||
#include "distributed/worker_manager.h"
|
#include "distributed/worker_manager.h"
|
||||||
#include "utils/hsearch.h"
|
#include "utils/hsearch.h"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* master_metadata_utility.h
|
* metadata_utility.h
|
||||||
* Type and function declarations used for reading and modifying master
|
* Type and function declarations used for reading and modifying master
|
||||||
* node's metadata.
|
* node's metadata.
|
||||||
*
|
*
|
||||||
|
@ -11,8 +11,8 @@
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MASTER_METADATA_UTILITY_H
|
#ifndef METADATA_UTILITY_H
|
||||||
#define MASTER_METADATA_UTILITY_H
|
#define METADATA_UTILITY_H
|
||||||
|
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
|
||||||
|
@ -168,4 +168,4 @@ extern ShardInterval * DeformedDistShardTupleToShardInterval(Datum *datumArray,
|
||||||
extern void GetIntervalTypeInfo(char partitionMethod, Var *partitionColumn,
|
extern void GetIntervalTypeInfo(char partitionMethod, Var *partitionColumn,
|
||||||
Oid *intervalTypeId, int32 *intervalTypeMod);
|
Oid *intervalTypeId, int32 *intervalTypeMod);
|
||||||
|
|
||||||
#endif /* MASTER_METADATA_UTILITY_H */
|
#endif /* METADATA_UTILITY_H */
|
|
@ -14,7 +14,7 @@
|
||||||
#ifndef MULTI_LOGICAL_OPTIMIZER_H
|
#ifndef MULTI_LOGICAL_OPTIMIZER_H
|
||||||
#define MULTI_LOGICAL_OPTIMIZER_H
|
#define MULTI_LOGICAL_OPTIMIZER_H
|
||||||
|
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/multi_logical_planner.h"
|
#include "distributed/multi_logical_planner.h"
|
||||||
#include "distributed/relation_restriction_equivalence.h"
|
#include "distributed/relation_restriction_equivalence.h"
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#define MULTI_PARTITIONING_UTILS_H_
|
#define MULTI_PARTITIONING_UTILS_H_
|
||||||
|
|
||||||
|
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "nodes/pg_list.h"
|
#include "nodes/pg_list.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "distributed/citus_nodes.h"
|
#include "distributed/citus_nodes.h"
|
||||||
#include "distributed/errormessage.h"
|
#include "distributed/errormessage.h"
|
||||||
#include "distributed/log_utils.h"
|
#include "distributed/log_utils.h"
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/worker_manager.h"
|
#include "distributed/worker_manager.h"
|
||||||
#include "distributed/multi_logical_planner.h"
|
#include "distributed/multi_logical_planner.h"
|
||||||
#include "distributed/distributed_planner.h"
|
#include "distributed/distributed_planner.h"
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#ifndef RELATION_ACCESS_TRACKING_H_
|
#ifndef RELATION_ACCESS_TRACKING_H_
|
||||||
#define RELATION_ACCESS_TRACKING_H_
|
#define RELATION_ACCESS_TRACKING_H_
|
||||||
|
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/multi_physical_planner.h" /* access Task struct */
|
#include "distributed/multi_physical_planner.h" /* access Task struct */
|
||||||
#include "distributed/placement_connection.h"
|
#include "distributed/placement_connection.h"
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#ifndef SHARDINTERVAL_UTILS_H_
|
#ifndef SHARDINTERVAL_UTILS_H_
|
||||||
#define SHARDINTERVAL_UTILS_H_
|
#define SHARDINTERVAL_UTILS_H_
|
||||||
|
|
||||||
#include "distributed/master_metadata_utility.h"
|
#include "distributed/metadata_utility.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "nodes/primnodes.h"
|
#include "nodes/primnodes.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue