From 0b01c59fa67f23c4acce9cfe2f31efc2d59bd683 Mon Sep 17 00:00:00 2001 From: Hadi Moshayedi Date: Tue, 4 Jun 2019 15:19:49 -0700 Subject: [PATCH] Refactor ScanStateGetTupleDescriptor() into a function. --- src/backend/distributed/executor/citus_custom_scan.c | 11 +++++++++++ src/backend/distributed/executor/multi_executor.c | 2 +- .../distributed/executor/multi_router_executor.c | 6 ++---- src/include/distributed/citus_custom_scan.h | 1 + 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/backend/distributed/executor/citus_custom_scan.c b/src/backend/distributed/executor/citus_custom_scan.c index 82ddbfe57..ddbc7c75b 100644 --- a/src/backend/distributed/executor/citus_custom_scan.c +++ b/src/backend/distributed/executor/citus_custom_scan.c @@ -318,3 +318,14 @@ CitusReScan(CustomScanState *node) "parameters are currently unsupported"))); } } + + +/* + * ScanStateGetTupleDescriptor returns the tuple descriptor for the given + * scan state. + */ +extern TupleDesc +ScanStateGetTupleDescriptor(CitusScanState *scanState) +{ + return scanState->customScanState.ss.ps.ps_ResultTupleSlot->tts_tupleDescriptor; +} diff --git a/src/backend/distributed/executor/multi_executor.c b/src/backend/distributed/executor/multi_executor.c index 110c7a165..11cf69002 100644 --- a/src/backend/distributed/executor/multi_executor.c +++ b/src/backend/distributed/executor/multi_executor.c @@ -279,7 +279,7 @@ LoadTuplesIntoTupleStore(CitusScanState *citusScanState, Job *workerJob) bool interTransactions = false; char *copyFormat = "text"; - tupleDescriptor = customScanState.ss.ps.ps_ResultTupleSlot->tts_tupleDescriptor; + tupleDescriptor = ScanStateGetTupleDescriptor(citusScanState); Assert(citusScanState->tuplestorestate == NULL); citusScanState->tuplestorestate = diff --git a/src/backend/distributed/executor/multi_router_executor.c b/src/backend/distributed/executor/multi_router_executor.c index dba69fe6f..62cbd69c9 100644 --- a/src/backend/distributed/executor/multi_router_executor.c +++ b/src/backend/distributed/executor/multi_router_executor.c @@ -624,8 +624,7 @@ RouterModifyExecScan(CustomScanState *node) static void SortTupleStore(CitusScanState *scanState) { - TupleDesc tupleDescriptor = - scanState->customScanState.ss.ps.ps_ResultTupleSlot->tts_tupleDescriptor; + TupleDesc tupleDescriptor = ScanStateGetTupleDescriptor(scanState); Tuplestorestate *tupleStore = scanState->tuplestorestate; List *targetList = scanState->customScanState.ss.ps.plan->targetlist; @@ -1815,8 +1814,7 @@ StoreQueryResult(CitusScanState *scanState, MultiConnection *connection, bool alwaysThrowErrorOnFailure, int64 *rows, DistributedExecutionStats *executionStats) { - TupleDesc tupleDescriptor = - scanState->customScanState.ss.ps.ps_ResultTupleSlot->tts_tupleDescriptor; + TupleDesc tupleDescriptor = ScanStateGetTupleDescriptor(scanState); AttInMetadata *attributeInputMetadata = TupleDescGetAttInMetadata(tupleDescriptor); List *targetList = scanState->customScanState.ss.ps.plan->targetlist; uint32 expectedColumnCount = ExecCleanTargetListLength(targetList); diff --git a/src/include/distributed/citus_custom_scan.h b/src/include/distributed/citus_custom_scan.h index 2ef734e63..abf41fbab 100644 --- a/src/include/distributed/citus_custom_scan.h +++ b/src/include/distributed/citus_custom_scan.h @@ -37,5 +37,6 @@ extern CustomScanMethods DelayedErrorCustomScanMethods; extern void RegisterCitusCustomScanMethods(void); extern void CitusExplainScan(CustomScanState *node, List *ancestors, struct ExplainState *es); +extern TupleDesc ScanStateGetTupleDescriptor(CitusScanState *scanState); #endif /* CITUS_CUSTOM_SCAN_H */