From 300349e646a79d0dc0a13fc82a19d24f19bbfdf4 Mon Sep 17 00:00:00 2001 From: Jason Petersen Date: Wed, 19 Apr 2017 20:42:44 -0600 Subject: [PATCH] Handle BeginCopyFrom changes BeginCopyFrom now accepts a ParseState and callback argument, but it's again fine to just NULL out both arguments. --- src/backend/distributed/commands/multi_copy.c | 20 +++++++++++++++++++ .../distributed/executor/multi_executor.c | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/src/backend/distributed/commands/multi_copy.c b/src/backend/distributed/commands/multi_copy.c index ba7ff8b8b..4361c6192 100644 --- a/src/backend/distributed/commands/multi_copy.c +++ b/src/backend/distributed/commands/multi_copy.c @@ -356,11 +356,21 @@ CopyToExistingShards(CopyStmt *copyStatement, char *completionTag) dest->rStartup(dest, 0, tupleDescriptor); /* initialize copy state to read from COPY data source */ +#if (PG_VERSION_NUM >= 100000) + copyState = BeginCopyFrom(NULL, + distributedRelation, + copyStatement->filename, + copyStatement->is_program, + NULL, + copyStatement->attlist, + copyStatement->options); +#else copyState = BeginCopyFrom(distributedRelation, copyStatement->filename, copyStatement->is_program, copyStatement->attlist, copyStatement->options); +#endif /* set up callback to identify error line number */ errorCallback.callback = CopyFromErrorCallback; @@ -455,11 +465,21 @@ CopyToNewShards(CopyStmt *copyStatement, char *completionTag, Oid relationId) (ShardConnections *) palloc0(sizeof(ShardConnections)); /* initialize copy state to read from COPY data source */ +#if (PG_VERSION_NUM >= 100000) + CopyState copyState = BeginCopyFrom(NULL, + distributedRelation, + copyStatement->filename, + copyStatement->is_program, + NULL, + copyStatement->attlist, + copyStatement->options); +#else CopyState copyState = BeginCopyFrom(distributedRelation, copyStatement->filename, copyStatement->is_program, copyStatement->attlist, copyStatement->options); +#endif CopyOutState copyOutState = (CopyOutState) palloc0(sizeof(CopyOutStateData)); copyOutState->delim = (char *) delimiterCharacter; diff --git a/src/backend/distributed/executor/multi_executor.c b/src/backend/distributed/executor/multi_executor.c index 8125cfaef..bdc00ead1 100644 --- a/src/backend/distributed/executor/multi_executor.c +++ b/src/backend/distributed/executor/multi_executor.c @@ -310,8 +310,13 @@ LoadTuplesIntoTupleStore(CitusScanState *citusScanState, Job *workerJob) jobDirectoryName = MasterJobDirectoryName(workerTask->jobId); taskFilename = TaskFilename(jobDirectoryName, workerTask->taskId); +#if (PG_VERSION_NUM >= 100000) + copyState = BeginCopyFrom(NULL, stubRelation, taskFilename->data, false, NULL, + NULL, copyOptions); +#else copyState = BeginCopyFrom(stubRelation, taskFilename->data, false, NULL, copyOptions); +#endif while (true) {