From 69ce21a42f70fa90923caaac1806808bb3300e46 Mon Sep 17 00:00:00 2001 From: Metin Doslu Date: Thu, 24 Mar 2016 21:17:05 -0700 Subject: [PATCH] Address some of the PR feedback from Andres --- src/backend/distributed/commands/multi_copy.c | 18 ++++++------------ .../distributed/master/worker_node_manager.c | 4 ++-- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/backend/distributed/commands/multi_copy.c b/src/backend/distributed/commands/multi_copy.c index 885ccf36f..4f18d806c 100644 --- a/src/backend/distributed/commands/multi_copy.c +++ b/src/backend/distributed/commands/multi_copy.c @@ -315,10 +315,9 @@ CitusCopyFrom(CopyStmt *copyStatement, char *completionTag) nextRowFound = NextCopyFrom(copyState, executorExpressionContext, columnValues,columnNulls, NULL); - MemoryContextSwitchTo(oldContext); - if (!nextRowFound) { + MemoryContextSwitchTo(oldContext); break; } @@ -348,9 +347,11 @@ CitusCopyFrom(CopyStmt *copyStatement, char *completionTag) shardId = shardInterval->shardId; + MemoryContextSwitchTo(oldContext); + /* find the connections to the shard placements */ shardConnections = (ShardConnections *) hash_search(shardConnectionHash, - &shardInterval->shardId, + &shardId, HASH_ENTER, &found); if (!found) @@ -394,17 +395,10 @@ CitusCopyFrom(CopyStmt *copyStatement, char *completionTag) PrepareTransactions(connectionList); } - pfree(columnValues); - pfree(columnNulls); - - FreeExecutorState(executorState); - CHECK_FOR_INTERRUPTS(); } PG_CATCH(); { - EndCopyFrom(copyState); - /* roll back all transactions */ connectionList = ConnectionList(shardConnectionHash); EndRemoteCopy(connectionList, false); @@ -749,7 +743,7 @@ SendCopyDataToPlacements(StringInfo dataBuffer, ShardConnections *shardConnectio char *nodeName = ConnectionGetOptionValue(connection, "host"); char *nodePort = ConnectionGetOptionValue(connection, "port"); ereport(ERROR, (errcode(ERRCODE_IO_ERROR), - errmsg("Failed to COPY to shard %ld on %s:%s", + errmsg("failed to COPY to shard %ld on %s:%s", shardId, nodeName, nodePort))); } } @@ -817,7 +811,7 @@ EndRemoteCopy(List *connectionList, bool stopOnFailure) if (stopOnFailure) { ereport(ERROR, (errcode(ERRCODE_IO_ERROR), - errmsg("Failed to COPY to shard %ld on %s:%s", + errmsg("failed to COPY to shard %ld on %s:%s", shardId, nodeName, nodePort))); } diff --git a/src/backend/distributed/master/worker_node_manager.c b/src/backend/distributed/master/worker_node_manager.c index 9f015d5be..b7b77f24e 100644 --- a/src/backend/distributed/master/worker_node_manager.c +++ b/src/backend/distributed/master/worker_node_manager.c @@ -723,8 +723,8 @@ ParseWorkerNodeFile(const char *workerNodeFilename) /* allocate worker node structure and set fields */ workerNode = (WorkerNode *) palloc0(sizeof(WorkerNode)); - strlcpy(workerNode->workerName, nodeName, WORKER_LENGTH + 1); - strlcpy(workerNode->workerRack, nodeRack, WORKER_LENGTH + 1); + strlcpy(workerNode->workerName, nodeName, WORKER_LENGTH); + strlcpy(workerNode->workerRack, nodeRack, WORKER_LENGTH); workerNode->workerPort = nodePort; workerNode->inWorkerFile = true;