diff --git a/src/backend/distributed/commands/create_distributed_table.c b/src/backend/distributed/commands/create_distributed_table.c index ab755835b..69b6621fe 100644 --- a/src/backend/distributed/commands/create_distributed_table.c +++ b/src/backend/distributed/commands/create_distributed_table.c @@ -88,7 +88,6 @@ static void EnsureRelationCanBeDistributed(Oid relationId, Var *distributionColu static void EnsureTableCanBeColocatedWith(Oid relationId, char replicationModel, Oid distributionColumnType, Oid sourceRelationId); -static void EnsureSchemaExistsOnAllNodes(Oid relationId); static void EnsureLocalTableEmpty(Oid relationId); static void EnsureTableNotDistributed(Oid relationId); static char LookupDistributionMethod(Oid distributionMethodOid); @@ -134,6 +133,14 @@ master_create_distributed_table(PG_FUNCTION_ARGS) EnsureCoordinator(); EnsureTableOwner(relationId); + /* + * Ensure schema exists on each worker node. We can not run this function + * transactionally, since we may create shards over separate sessions and + * shard creation depends on the schema being present and visible from all + * sessions. + */ + EnsureSchemaExistsOnAllNodes(relationId); + /* * Lock target relation with an exclusive lock - there's no way to make * sense of this table until we've committed, and we don't want multiple @@ -200,6 +207,14 @@ create_distributed_table(PG_FUNCTION_ARGS) EnsureTableOwner(relationId); + /* + * Ensure schema exists on each worker node. We can not run this function + * transactionally, since we may create shards over separate sessions and + * shard creation depends on the schema being present and visible from all + * sessions. + */ + EnsureSchemaExistsOnAllNodes(relationId); + /* * Lock target relation with an exclusive lock - there's no way to make * sense of this table until we've committed, and we don't want multiple @@ -469,14 +484,6 @@ CreateHashDistributedTableShards(Oid relationId, Oid colocatedTableId, { bool useExclusiveConnection = false; - /* - * Ensure schema exists on each worker node. We can not run this function - * transactionally, since we may create shards over separate sessions and - * shard creation depends on the schema being present and visible from all - * sessions. - */ - EnsureSchemaExistsOnAllNodes(relationId); - /* * Decide whether to use exclusive connections per placement or not. Note that * if the local table is not empty, we cannot use sequential mode since the COPY @@ -804,43 +811,6 @@ EnsureTableCanBeColocatedWith(Oid relationId, char replicationModel, } -/* - * EnsureSchemaExistsOnAllNodes connects to all nodes with citus extension user - * and creates the schema of the given relationId. The function errors out if the - * command cannot be executed in any of the worker nodes. - */ -static void -EnsureSchemaExistsOnAllNodes(Oid relationId) -{ - List *workerNodeList = ActivePrimaryNodeList(); - ListCell *workerNodeCell = NULL; - StringInfo applySchemaCreationDDL = makeStringInfo(); - - Oid schemaId = get_rel_namespace(relationId); - const char *createSchemaDDL = CreateSchemaDDLCommand(schemaId); - uint64 connectionFlag = FORCE_NEW_CONNECTION; - - if (createSchemaDDL == NULL) - { - return; - } - - appendStringInfo(applySchemaCreationDDL, "%s", createSchemaDDL); - - foreach(workerNodeCell, workerNodeList) - { - WorkerNode *workerNode = (WorkerNode *) lfirst(workerNodeCell); - char *nodeName = workerNode->workerName; - uint32 nodePort = workerNode->workerPort; - MultiConnection *connection = - GetNodeUserDatabaseConnection(connectionFlag, nodeName, nodePort, NULL, - NULL); - - ExecuteCriticalRemoteCommand(connection, applySchemaCreationDDL->data); - } -} - - /* * EnsureLocalTableEmptyIfNecessary only checks for emptiness if only an empty * relation can be distributed in given configuration. diff --git a/src/backend/distributed/commands/schema.c b/src/backend/distributed/commands/schema.c index 79fdd8888..392f61141 100644 --- a/src/backend/distributed/commands/schema.c +++ b/src/backend/distributed/commands/schema.c @@ -18,8 +18,12 @@ #include "catalog/namespace.h" #include "catalog/pg_class.h" #include "distributed/commands.h" +#include #include "distributed/commands/utility_hook.h" #include "distributed/metadata_cache.h" +#include +#include +#include #include "nodes/parsenodes.h" #include "utils/fmgroids.h" #include "utils/lsyscache.h" @@ -134,3 +138,53 @@ PlanAlterObjectSchemaStmt(AlterObjectSchemaStmt *alterObjectSchemaStmt, return NIL; } + + +/* + * EnsureSchemaExistsOnAllNodes connects to all nodes with citus extension user + * and creates the schema of the given relationId. The function errors out if the + * command cannot be executed in any of the worker nodes. + */ +void +EnsureSchemaExistsOnAllNodes(Oid relationId) +{ + List *workerNodeList = ActivePrimaryNodeList(); + ListCell *workerNodeCell = NULL; + + foreach(workerNodeCell, workerNodeList) + { + WorkerNode *workerNode = (WorkerNode *) lfirst(workerNodeCell); + char *nodeName = workerNode->workerName; + uint32 nodePort = workerNode->workerPort; + + EnsureSchemaExistsOnNode(relationId, nodeName, nodePort); + } +} + + +/* + * EnsureSchemaExistsOnNode connects to one node with citus extension user + * and creates the schema of the given relationId. The function errors out if the + * command cannot be executed in the node. + */ +void +EnsureSchemaExistsOnNode(Oid relationId, char *nodeName, int32 nodePort) +{ + uint64 connectionFlag = FORCE_NEW_CONNECTION; + MultiConnection *connection = NULL; + + /* if the schema creation command is not provided, create it */ + Oid schemaId = get_rel_namespace(relationId); + char *schemaCreationDDL = CreateSchemaDDLCommand(schemaId); + + /* if the relation lives in public namespace, no need to perform any queries in workers */ + if (schemaCreationDDL == NULL) + { + return; + } + + connection = GetNodeUserDatabaseConnection(connectionFlag, nodeName, + nodePort, CitusExtensionOwnerName(), NULL); + + ExecuteCriticalRemoteCommand(connection, schemaCreationDDL); +} diff --git a/src/backend/distributed/master/master_create_shards.c b/src/backend/distributed/master/master_create_shards.c index 4e3a25305..2ee64df33 100644 --- a/src/backend/distributed/master/master_create_shards.c +++ b/src/backend/distributed/master/master_create_shards.c @@ -75,6 +75,14 @@ master_create_worker_shards(PG_FUNCTION_ARGS) EnsureCoordinator(); CheckCitusVersion(ERROR); + /* + * Ensure schema exists on each worker node. We can not run this function + * transactionally, since we may create shards over separate sessions and + * shard creation depends on the schema being present and visible from all + * sessions. + */ + EnsureSchemaExistsOnAllNodes(distributedTableId); + CreateShardsWithRoundRobinPolicy(distributedTableId, shardCount, replicationFactor, useExclusiveConnections); diff --git a/src/backend/distributed/master/master_node_protocol.c b/src/backend/distributed/master/master_node_protocol.c index edc330a0d..8e91fdfac 100644 --- a/src/backend/distributed/master/master_node_protocol.c +++ b/src/backend/distributed/master/master_node_protocol.c @@ -618,9 +618,7 @@ GetTableCreationCommands(Oid relationId, bool includeSequenceDefaults) char tableType = 0; char *tableSchemaDef = NULL; char *tableColumnOptionsDef = NULL; - char *createSchemaCommand = NULL; char *tableOwnerDef = NULL; - Oid schemaId = InvalidOid; /* * Set search_path to NIL so that all objects outside of pg_catalog will be @@ -646,14 +644,6 @@ GetTableCreationCommands(Oid relationId, bool includeSequenceDefaults) tableDDLEventList = lappend(tableDDLEventList, serverDef); } - /* create schema if the table is not in the default namespace (public) */ - schemaId = get_rel_namespace(relationId); - createSchemaCommand = CreateSchemaDDLCommand(schemaId); - if (createSchemaCommand != NULL) - { - tableDDLEventList = lappend(tableDDLEventList, createSchemaCommand); - } - /* fetch table schema and column option definitions */ tableSchemaDef = pg_get_tableschemadef_string(relationId, includeSequenceDefaults); tableColumnOptionsDef = pg_get_tablecolumnoptionsdef_string(relationId); diff --git a/src/backend/distributed/master/master_repair_shards.c b/src/backend/distributed/master/master_repair_shards.c index 29bb09651..11005fc21 100644 --- a/src/backend/distributed/master/master_repair_shards.c +++ b/src/backend/distributed/master/master_repair_shards.c @@ -233,6 +233,15 @@ RepairShardPlacement(int64 shardId, char *sourceNodeName, int32 sourceNodePort, EnsureTableOwner(distributedTableId); + /* + * Ensure schema exists on the target worker node. We can not run this + * function transactionally, since we may create shards over separate + * sessions and shard creation depends on the schema being present and + * visible from all sessions. + */ + EnsureSchemaExistsOnNode(distributedTableId, targetNodeName, + targetNodePort); + if (relationKind == RELKIND_FOREIGN_TABLE) { char *relationName = get_rel_name(distributedTableId); diff --git a/src/backend/distributed/master/master_stage_protocol.c b/src/backend/distributed/master/master_stage_protocol.c index df820475e..b69f5f0cf 100644 --- a/src/backend/distributed/master/master_stage_protocol.c +++ b/src/backend/distributed/master/master_stage_protocol.c @@ -99,6 +99,14 @@ master_create_empty_shard(PG_FUNCTION_ARGS) EnsureTablePermissions(relationId, ACL_INSERT); CheckDistributedTable(relationId); + /* + * Ensure schema exists on each worker node. We can not run this function + * transactionally, since we may create shards over separate sessions and + * shard creation depends on the schema being present and visible from all + * sessions. + */ + EnsureSchemaExistsOnAllNodes(relationId); + /* don't allow the table to be dropped */ LockRelationOid(relationId, AccessShareLock); diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index 82d0b8ad0..ef2b75d39 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -292,6 +292,14 @@ MetadataCreateCommands(void) List *ddlCommandList = GetTableDDLEvents(relationId, includeSequenceDefaults); char *tableOwnerResetCommand = TableOwnerResetCommand(relationId); + /* + * Ensure schema exists on each worker node. We can not run this function + * transactionally, since we may create shards over separate sessions and + * shard creation depends on the schema being present and visible from all + * sessions. + */ + EnsureSchemaExistsOnAllNodes(relationId); + metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList, workerSequenceDDLCommands); metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList, @@ -929,20 +937,11 @@ SequenceDDLCommandsForTable(Oid relationId) char *escapedSequenceDef = quote_literal_cstr(sequenceDef); StringInfo wrappedSequenceDef = makeStringInfo(); StringInfo sequenceGrantStmt = makeStringInfo(); - Oid schemaId = InvalidOid; - char *createSchemaCommand = NULL; char *sequenceName = generate_qualified_relation_name(sequenceOid); EnsureSupportedSequenceColumnType(sequenceOid); /* create schema if needed */ - schemaId = get_rel_namespace(sequenceOid); - createSchemaCommand = CreateSchemaDDLCommand(schemaId); - if (createSchemaCommand != NULL) - { - sequenceDDLList = lappend(sequenceDDLList, createSchemaCommand); - } - appendStringInfo(wrappedSequenceDef, WORKER_APPLY_SEQUENCE_COMMAND, escapedSequenceDef); diff --git a/src/backend/distributed/utils/reference_table_utils.c b/src/backend/distributed/utils/reference_table_utils.c index 2661eaf71..aa850f0bd 100644 --- a/src/backend/distributed/utils/reference_table_utils.c +++ b/src/backend/distributed/utils/reference_table_utils.c @@ -296,6 +296,16 @@ ReplicateShardToNode(ShardInterval *shardInterval, char *nodeName, int nodePort) missingWorkerOk); char *tableOwner = TableOwner(shardInterval->relationId); + + /* + * Ensure schema exists on the worker node. We can not run this + * function transactionally, since we may create shards over separate + * sessions and shard creation depends on the schema being present and + * visible from all sessions. + */ + EnsureSchemaExistsOnNode(shardInterval->relationId, nodeName, nodePort); + + /* * Although this function is used for reference tables and reference table shard * placements always have shardState = FILE_FINALIZED, in case of an upgrade of diff --git a/src/include/distributed/master_metadata_utility.h b/src/include/distributed/master_metadata_utility.h index 093b0697b..e7fcc202f 100644 --- a/src/include/distributed/master_metadata_utility.h +++ b/src/include/distributed/master_metadata_utility.h @@ -151,6 +151,9 @@ extern void CreateDistributedTable(Oid relationId, Var *distributionColumn, char distributionMethod, char *colocateWithTableName, bool viaDeprecatedAPI); extern void CreateTruncateTrigger(Oid relationId); +extern void EnsureSchemaExistsOnAllNodes(Oid relationId); +extern void EnsureSchemaExistsOnNode(Oid relationId, char *nodeName, + int32 nodePort); /* Remaining metadata utility functions */ extern char * TableOwner(Oid relationId); diff --git a/src/test/regress/expected/failure_add_disable_node.out b/src/test/regress/expected/failure_add_disable_node.out index 3423e239d..3728008a5 100644 --- a/src/test/regress/expected/failure_add_disable_node.out +++ b/src/test/regress/expected/failure_add_disable_node.out @@ -120,7 +120,6 @@ SELECT citus.mitmproxy('conn.onQuery(query="CREATE SCHEMA").kill()'); (1 row) SELECT master_activate_node('localhost', :worker_2_proxy_port); -NOTICE: Replicating reference table "user_table" to the node localhost:9060 ERROR: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. diff --git a/src/test/regress/expected/failure_create_table.out b/src/test/regress/expected/failure_create_table.out index de6695f0a..92a6c8a92 100644 --- a/src/test/regress/expected/failure_create_table.out +++ b/src/test/regress/expected/failure_create_table.out @@ -595,10 +595,10 @@ SELECT citus.mitmproxy('conn.kill()'); (1 row) SELECT master_create_worker_shards('test_table_2', 4, 2); -WARNING: connection not open -CONTEXT: while executing command on localhost:9060 ERROR: connection error: localhost:9060 -DETAIL: connection not open +DETAIL: server closed the connection unexpectedly + This probably means the server terminated abnormally + before or while processing the request. SELECT count(*) FROM pg_dist_shard; count ------- diff --git a/src/test/regress/expected/foreign_key_restriction_enforcement.out b/src/test/regress/expected/foreign_key_restriction_enforcement.out index fdd41e2a8..fce35abd4 100644 --- a/src/test/regress/expected/foreign_key_restriction_enforcement.out +++ b/src/test/regress/expected/foreign_key_restriction_enforcement.out @@ -596,10 +596,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -613,14 +609,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -641,10 +629,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -658,14 +642,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -700,10 +676,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -717,14 +689,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -738,14 +702,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -768,10 +724,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -785,14 +737,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -820,10 +764,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -837,14 +777,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -867,14 +799,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -888,10 +812,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -918,14 +838,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -939,10 +851,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -1004,10 +912,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 DEBUG: switching to sequential query execution mode DETAIL: Reference relation "test_table_1" is modified, which might lead to data inconsistencies or distributed deadlocks via parallel accesses to hash distributed relations due to foreign keys. Any parallel modification to those hash distributed relations in the same transaction can only be executed in sequential query execution mode NOTICE: Copying data from local table... @@ -1048,10 +952,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 NOTICE: Copying data from local table... DEBUG: Copied 101 rows create_reference_table @@ -1090,10 +990,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 DEBUG: switching to sequential query execution mode DETAIL: Reference relation "test_table_1" is modified, which might lead to data inconsistencies or distributed deadlocks via parallel accesses to hash distributed relations due to foreign keys. Any parallel modification to those hash distributed relations in the same transaction can only be executed in sequential query execution mode -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -1104,14 +1000,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -1149,10 +1037,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -1166,14 +1050,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- diff --git a/src/test/regress/expected/foreign_key_restriction_enforcement_0.out b/src/test/regress/expected/foreign_key_restriction_enforcement_0.out index 794f44b1b..e08a5dec4 100644 --- a/src/test/regress/expected/foreign_key_restriction_enforcement_0.out +++ b/src/test/regress/expected/foreign_key_restriction_enforcement_0.out @@ -596,10 +596,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -613,14 +609,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -641,10 +629,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -658,14 +642,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -700,10 +676,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -717,14 +689,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -738,14 +702,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -768,10 +724,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -785,14 +737,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -820,10 +764,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -837,14 +777,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -867,14 +799,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -888,10 +812,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -918,14 +838,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -939,10 +851,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -1004,10 +912,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 DEBUG: switching to sequential query execution mode DETAIL: Reference relation "test_table_1" is modified, which might lead to data inconsistencies or distributed deadlocks via parallel accesses to hash distributed relations due to foreign keys. Any parallel modification to those hash distributed relations in the same transaction can only be executed in sequential query execution mode NOTICE: Copying data from local table... @@ -1048,10 +952,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 NOTICE: Copying data from local table... DEBUG: Copied 101 rows create_reference_table @@ -1090,10 +990,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 DEBUG: switching to sequential query execution mode DETAIL: Reference relation "test_table_1" is modified, which might lead to data inconsistencies or distributed deadlocks via parallel accesses to hash distributed relations due to foreign keys. Any parallel modification to those hash distributed relations in the same transaction can only be executed in sequential query execution mode -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -1104,14 +1000,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- @@ -1149,10 +1037,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_reference_table ------------------------ @@ -1166,14 +1050,6 @@ DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "test_fkey_to_ref_in_tx" already exists, skipping -DETAIL: NOTICE from localhost:57638 create_distributed_table -------------------------- diff --git a/src/test/regress/expected/multi_generate_ddl_commands.out b/src/test/regress/expected/multi_generate_ddl_commands.out index d7655837d..aa949d167 100644 --- a/src/test/regress/expected/multi_generate_ddl_commands.out +++ b/src/test/regress/expected/multi_generate_ddl_commands.out @@ -27,16 +27,6 @@ SELECT master_get_table_ddl_events('not_null_table'); ALTER TABLE public.not_null_table OWNER TO postgres (2 rows) --- ensure tables not in search path are schema-prefixed -CREATE SCHEMA not_in_path CREATE TABLE simple_table (id bigint); -SELECT master_get_table_ddl_events('not_in_path.simple_table'); - master_get_table_ddl_events ----------------------------------------------------------------- - CREATE SCHEMA IF NOT EXISTS not_in_path AUTHORIZATION postgres - CREATE TABLE not_in_path.simple_table (id bigint) - ALTER TABLE not_in_path.simple_table OWNER TO postgres -(3 rows) - -- even more complex constraints should be preserved... CREATE TABLE column_constraint_table ( first_name text, diff --git a/src/test/regress/expected/multi_metadata_sync.out b/src/test/regress/expected/multi_metadata_sync.out index ea84fadf5..0e163cdc1 100644 --- a/src/test/regress/expected/multi_metadata_sync.out +++ b/src/test/regress/expected/multi_metadata_sync.out @@ -102,10 +102,8 @@ SELECT unnest(master_metadata_snapshot()); SELECT worker_drop_distributed_table(logicalrelid::regclass::text) FROM pg_dist_partition TRUNCATE pg_dist_node CASCADE INSERT INTO pg_dist_node (nodeid, groupid, nodename, nodeport, noderack, hasmetadata, isactive, noderole, nodecluster) VALUES (1, 1, 'localhost', 57637, 'default', FALSE, TRUE, 'primary'::noderole, 'default'),(2, 2, 'localhost', 57638, 'default', FALSE, TRUE, 'primary'::noderole, 'default') - CREATE SCHEMA IF NOT EXISTS mx_testing_schema AUTHORIZATION postgres SELECT worker_apply_sequence_command ('CREATE SEQUENCE IF NOT EXISTS mx_testing_schema.mx_test_table_col_3_seq INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 NO CYCLE') ALTER SEQUENCE mx_testing_schema.mx_test_table_col_3_seq OWNER TO postgres - CREATE SCHEMA IF NOT EXISTS mx_testing_schema AUTHORIZATION postgres CREATE TABLE mx_testing_schema.mx_test_table (col_1 integer, col_2 text NOT NULL, col_3 bigint DEFAULT nextval('mx_testing_schema.mx_test_table_col_3_seq'::regclass) NOT NULL) ALTER TABLE mx_testing_schema.mx_test_table OWNER TO postgres CREATE INDEX mx_index ON mx_testing_schema.mx_test_table USING btree (col_2) TABLESPACE pg_default @@ -115,7 +113,7 @@ SELECT unnest(master_metadata_snapshot()); SELECT worker_create_truncate_trigger('mx_testing_schema.mx_test_table') INSERT INTO pg_dist_placement (shardid, shardstate, shardlength, groupid, placementid) VALUES (1310000, 1, 0, 1, 100000),(1310001, 1, 0, 2, 100001),(1310002, 1, 0, 1, 100002),(1310003, 1, 0, 2, 100003),(1310004, 1, 0, 1, 100004),(1310005, 1, 0, 2, 100005),(1310006, 1, 0, 1, 100006),(1310007, 1, 0, 2, 100007) INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ('mx_testing_schema.mx_test_table'::regclass, 1310000, 't', '-2147483648', '-1610612737'),('mx_testing_schema.mx_test_table'::regclass, 1310001, 't', '-1610612736', '-1073741825'),('mx_testing_schema.mx_test_table'::regclass, 1310002, 't', '-1073741824', '-536870913'),('mx_testing_schema.mx_test_table'::regclass, 1310003, 't', '-536870912', '-1'),('mx_testing_schema.mx_test_table'::regclass, 1310004, 't', '0', '536870911'),('mx_testing_schema.mx_test_table'::regclass, 1310005, 't', '536870912', '1073741823'),('mx_testing_schema.mx_test_table'::regclass, 1310006, 't', '1073741824', '1610612735'),('mx_testing_schema.mx_test_table'::regclass, 1310007, 't', '1610612736', '2147483647') -(16 rows) +(14 rows) -- Show that append distributed tables are not included in the metadata snapshot CREATE TABLE non_mx_test_table (col_1 int, col_2 text); @@ -132,10 +130,8 @@ SELECT unnest(master_metadata_snapshot()); SELECT worker_drop_distributed_table(logicalrelid::regclass::text) FROM pg_dist_partition TRUNCATE pg_dist_node CASCADE INSERT INTO pg_dist_node (nodeid, groupid, nodename, nodeport, noderack, hasmetadata, isactive, noderole, nodecluster) VALUES (1, 1, 'localhost', 57637, 'default', FALSE, TRUE, 'primary'::noderole, 'default'),(2, 2, 'localhost', 57638, 'default', FALSE, TRUE, 'primary'::noderole, 'default') - CREATE SCHEMA IF NOT EXISTS mx_testing_schema AUTHORIZATION postgres SELECT worker_apply_sequence_command ('CREATE SEQUENCE IF NOT EXISTS mx_testing_schema.mx_test_table_col_3_seq INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 NO CYCLE') ALTER SEQUENCE mx_testing_schema.mx_test_table_col_3_seq OWNER TO postgres - CREATE SCHEMA IF NOT EXISTS mx_testing_schema AUTHORIZATION postgres CREATE TABLE mx_testing_schema.mx_test_table (col_1 integer, col_2 text NOT NULL, col_3 bigint DEFAULT nextval('mx_testing_schema.mx_test_table_col_3_seq'::regclass) NOT NULL) ALTER TABLE mx_testing_schema.mx_test_table OWNER TO postgres CREATE INDEX mx_index ON mx_testing_schema.mx_test_table USING btree (col_2) TABLESPACE pg_default @@ -145,7 +141,7 @@ SELECT unnest(master_metadata_snapshot()); SELECT worker_create_truncate_trigger('mx_testing_schema.mx_test_table') INSERT INTO pg_dist_placement (shardid, shardstate, shardlength, groupid, placementid) VALUES (1310000, 1, 0, 1, 100000),(1310001, 1, 0, 2, 100001),(1310002, 1, 0, 1, 100002),(1310003, 1, 0, 2, 100003),(1310004, 1, 0, 1, 100004),(1310005, 1, 0, 2, 100005),(1310006, 1, 0, 1, 100006),(1310007, 1, 0, 2, 100007) INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ('mx_testing_schema.mx_test_table'::regclass, 1310000, 't', '-2147483648', '-1610612737'),('mx_testing_schema.mx_test_table'::regclass, 1310001, 't', '-1610612736', '-1073741825'),('mx_testing_schema.mx_test_table'::regclass, 1310002, 't', '-1073741824', '-536870913'),('mx_testing_schema.mx_test_table'::regclass, 1310003, 't', '-536870912', '-1'),('mx_testing_schema.mx_test_table'::regclass, 1310004, 't', '0', '536870911'),('mx_testing_schema.mx_test_table'::regclass, 1310005, 't', '536870912', '1073741823'),('mx_testing_schema.mx_test_table'::regclass, 1310006, 't', '1073741824', '1610612735'),('mx_testing_schema.mx_test_table'::regclass, 1310007, 't', '1610612736', '2147483647') -(16 rows) +(14 rows) -- Show that range distributed tables are not included in the metadata snapshot UPDATE pg_dist_partition SET partmethod='r' WHERE logicalrelid='non_mx_test_table'::regclass; @@ -155,10 +151,8 @@ SELECT unnest(master_metadata_snapshot()); SELECT worker_drop_distributed_table(logicalrelid::regclass::text) FROM pg_dist_partition TRUNCATE pg_dist_node CASCADE INSERT INTO pg_dist_node (nodeid, groupid, nodename, nodeport, noderack, hasmetadata, isactive, noderole, nodecluster) VALUES (1, 1, 'localhost', 57637, 'default', FALSE, TRUE, 'primary'::noderole, 'default'),(2, 2, 'localhost', 57638, 'default', FALSE, TRUE, 'primary'::noderole, 'default') - CREATE SCHEMA IF NOT EXISTS mx_testing_schema AUTHORIZATION postgres SELECT worker_apply_sequence_command ('CREATE SEQUENCE IF NOT EXISTS mx_testing_schema.mx_test_table_col_3_seq INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 NO CYCLE') ALTER SEQUENCE mx_testing_schema.mx_test_table_col_3_seq OWNER TO postgres - CREATE SCHEMA IF NOT EXISTS mx_testing_schema AUTHORIZATION postgres CREATE TABLE mx_testing_schema.mx_test_table (col_1 integer, col_2 text NOT NULL, col_3 bigint DEFAULT nextval('mx_testing_schema.mx_test_table_col_3_seq'::regclass) NOT NULL) ALTER TABLE mx_testing_schema.mx_test_table OWNER TO postgres CREATE INDEX mx_index ON mx_testing_schema.mx_test_table USING btree (col_2) TABLESPACE pg_default @@ -168,7 +162,7 @@ SELECT unnest(master_metadata_snapshot()); SELECT worker_create_truncate_trigger('mx_testing_schema.mx_test_table') INSERT INTO pg_dist_placement (shardid, shardstate, shardlength, groupid, placementid) VALUES (1310000, 1, 0, 1, 100000),(1310001, 1, 0, 2, 100001),(1310002, 1, 0, 1, 100002),(1310003, 1, 0, 2, 100003),(1310004, 1, 0, 1, 100004),(1310005, 1, 0, 2, 100005),(1310006, 1, 0, 1, 100006),(1310007, 1, 0, 2, 100007) INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ('mx_testing_schema.mx_test_table'::regclass, 1310000, 't', '-2147483648', '-1610612737'),('mx_testing_schema.mx_test_table'::regclass, 1310001, 't', '-1610612736', '-1073741825'),('mx_testing_schema.mx_test_table'::regclass, 1310002, 't', '-1073741824', '-536870913'),('mx_testing_schema.mx_test_table'::regclass, 1310003, 't', '-536870912', '-1'),('mx_testing_schema.mx_test_table'::regclass, 1310004, 't', '0', '536870911'),('mx_testing_schema.mx_test_table'::regclass, 1310005, 't', '536870912', '1073741823'),('mx_testing_schema.mx_test_table'::regclass, 1310006, 't', '1073741824', '1610612735'),('mx_testing_schema.mx_test_table'::regclass, 1310007, 't', '1610612736', '2147483647') -(16 rows) +(14 rows) -- Test start_metadata_sync_to_node UDF -- Ensure that hasmetadata=false for all nodes diff --git a/src/test/regress/expected/multi_multiuser.out b/src/test/regress/expected/multi_multiuser.out index 75b0836c4..5b9cd12bf 100644 --- a/src/test/regress/expected/multi_multiuser.out +++ b/src/test/regress/expected/multi_multiuser.out @@ -378,7 +378,7 @@ INSERT INTO full_access_user_schema.t1 VALUES (1),(2),(3); -- creating the table should fail with a failure on the worker machine since the user is -- not allowed to create a table SELECT create_distributed_table('full_access_user_schema.t1', 'id'); -ERROR: permission denied for database regression +ERROR: permission denied for schema full_access_user_schema CONTEXT: while executing command on localhost:57638 RESET ROLE; -- now we distribute the table as super user diff --git a/src/test/regress/expected/multi_multiuser_0.out b/src/test/regress/expected/multi_multiuser_0.out index abc717c99..238fc8976 100644 --- a/src/test/regress/expected/multi_multiuser_0.out +++ b/src/test/regress/expected/multi_multiuser_0.out @@ -378,7 +378,7 @@ INSERT INTO full_access_user_schema.t1 VALUES (1),(2),(3); -- creating the table should fail with a failure on the worker machine since the user is -- not allowed to create a table SELECT create_distributed_table('full_access_user_schema.t1', 'id'); -ERROR: permission denied for database regression +ERROR: permission denied for schema full_access_user_schema CONTEXT: while executing command on localhost:57638 RESET ROLE; -- now we distribute the table as super user diff --git a/src/test/regress/expected/multi_partitioning_utils.out b/src/test/regress/expected/multi_partitioning_utils.out index 22506c9bf..7e010f6d8 100644 --- a/src/test/regress/expected/multi_partitioning_utils.out +++ b/src/test/regress/expected/multi_partitioning_utils.out @@ -220,9 +220,6 @@ SELECT generate_partition_information('partition_parent_schema.parent_table'); -- we should be able to drop and re-create the partitioned table using the command that Citus generate SELECT drop_and_recreate_partitioned_table('partition_parent_schema.parent_table'); -NOTICE: schema "partition_parent_schema" already exists, skipping -CONTEXT: SQL statement "CREATE SCHEMA IF NOT EXISTS partition_parent_schema AUTHORIZATION postgres" -PL/pgSQL function drop_and_recreate_partitioned_table(regclass) line 15 at EXECUTE drop_and_recreate_partitioned_table ------------------------------------- diff --git a/src/test/regress/expected/multi_partitioning_utils_0.out b/src/test/regress/expected/multi_partitioning_utils_0.out index 78f3afd4a..6dc89e12d 100644 --- a/src/test/regress/expected/multi_partitioning_utils_0.out +++ b/src/test/regress/expected/multi_partitioning_utils_0.out @@ -219,9 +219,6 @@ SELECT generate_partition_information('partition_parent_schema.parent_table'); -- we should be able to drop and re-create the partitioned table using the command that Citus generate SELECT drop_and_recreate_partitioned_table('partition_parent_schema.parent_table'); -NOTICE: schema "partition_parent_schema" already exists, skipping -CONTEXT: SQL statement "CREATE SCHEMA IF NOT EXISTS partition_parent_schema AUTHORIZATION postgres" -PL/pgSQL function drop_and_recreate_partitioned_table(regclass) line 15 at EXECUTE drop_and_recreate_partitioned_table ------------------------------------- diff --git a/src/test/regress/expected/multi_reference_table.out b/src/test/regress/expected/multi_reference_table.out index eb7eadeaa..cb4bf963e 100644 --- a/src/test/regress/expected/multi_reference_table.out +++ b/src/test/regress/expected/multi_reference_table.out @@ -1421,10 +1421,9 @@ DETAIL: We currently don't support appending to shards in hash-partitioned or r SELECT master_get_table_ddl_events('reference_schema.reference_table_ddl'); master_get_table_ddl_events --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - CREATE SCHEMA IF NOT EXISTS reference_schema AUTHORIZATION postgres CREATE TABLE reference_schema.reference_table_ddl (value_2 double precision DEFAULT 25.0, value_3 text NOT NULL, value_4 timestamp without time zone, value_5 double precision) ALTER TABLE reference_schema.reference_table_ddl OWNER TO postgres -(3 rows) +(2 rows) -- in reality, we wouldn't need to repair any reference table shard placements -- however, the test could be relevant for other purposes diff --git a/src/test/regress/expected/multi_router_planner_fast_path.out b/src/test/regress/expected/multi_router_planner_fast_path.out index a22d323d6..f93993f2a 100644 --- a/src/test/regress/expected/multi_router_planner_fast_path.out +++ b/src/test/regress/expected/multi_router_planner_fast_path.out @@ -245,6 +245,10 @@ DEBUG: Plan is router executable CREATE TABLE company_employees (company_id int, employee_id int, manager_id int); SELECT master_create_distributed_table('company_employees', 'company_id', 'hash'); +DEBUG: schema "fast_path_router_select" already exists, skipping +DETAIL: NOTICE from localhost:57638 +DEBUG: schema "fast_path_router_select" already exists, skipping +DETAIL: NOTICE from localhost:57637 master_create_distributed_table --------------------------------- @@ -252,13 +256,9 @@ SELECT master_create_distributed_table('company_employees', 'company_id', 'hash' SELECT master_create_worker_shards('company_employees', 4, 1); DEBUG: schema "fast_path_router_select" already exists, skipping -DETAIL: NOTICE from localhost:57637 -DEBUG: schema "fast_path_router_select" already exists, skipping DETAIL: NOTICE from localhost:57638 DEBUG: schema "fast_path_router_select" already exists, skipping DETAIL: NOTICE from localhost:57637 -DEBUG: schema "fast_path_router_select" already exists, skipping -DETAIL: NOTICE from localhost:57638 master_create_worker_shards ----------------------------- diff --git a/src/test/regress/sql/multi_generate_ddl_commands.sql b/src/test/regress/sql/multi_generate_ddl_commands.sql index 6f5c0e23f..c74b9df45 100644 --- a/src/test/regress/sql/multi_generate_ddl_commands.sql +++ b/src/test/regress/sql/multi_generate_ddl_commands.sql @@ -22,11 +22,6 @@ CREATE TABLE not_null_table ( SELECT master_get_table_ddl_events('not_null_table'); --- ensure tables not in search path are schema-prefixed -CREATE SCHEMA not_in_path CREATE TABLE simple_table (id bigint); - -SELECT master_get_table_ddl_events('not_in_path.simple_table'); - -- even more complex constraints should be preserved... CREATE TABLE column_constraint_table ( first_name text,