Refactor ScanStateGetTupleDescriptor() into a function.

pull/2748/head
Hadi Moshayedi 2019-06-04 15:19:49 -07:00
parent 7abd28d3e8
commit 0b01c59fa6
4 changed files with 15 additions and 5 deletions

View File

@ -318,3 +318,14 @@ CitusReScan(CustomScanState *node)
"parameters are currently unsupported"))); "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;
}

View File

@ -279,7 +279,7 @@ LoadTuplesIntoTupleStore(CitusScanState *citusScanState, Job *workerJob)
bool interTransactions = false; bool interTransactions = false;
char *copyFormat = "text"; char *copyFormat = "text";
tupleDescriptor = customScanState.ss.ps.ps_ResultTupleSlot->tts_tupleDescriptor; tupleDescriptor = ScanStateGetTupleDescriptor(citusScanState);
Assert(citusScanState->tuplestorestate == NULL); Assert(citusScanState->tuplestorestate == NULL);
citusScanState->tuplestorestate = citusScanState->tuplestorestate =

View File

@ -624,8 +624,7 @@ RouterModifyExecScan(CustomScanState *node)
static void static void
SortTupleStore(CitusScanState *scanState) SortTupleStore(CitusScanState *scanState)
{ {
TupleDesc tupleDescriptor = TupleDesc tupleDescriptor = ScanStateGetTupleDescriptor(scanState);
scanState->customScanState.ss.ps.ps_ResultTupleSlot->tts_tupleDescriptor;
Tuplestorestate *tupleStore = scanState->tuplestorestate; Tuplestorestate *tupleStore = scanState->tuplestorestate;
List *targetList = scanState->customScanState.ss.ps.plan->targetlist; List *targetList = scanState->customScanState.ss.ps.plan->targetlist;
@ -1815,8 +1814,7 @@ StoreQueryResult(CitusScanState *scanState, MultiConnection *connection,
bool alwaysThrowErrorOnFailure, int64 *rows, bool alwaysThrowErrorOnFailure, int64 *rows,
DistributedExecutionStats *executionStats) DistributedExecutionStats *executionStats)
{ {
TupleDesc tupleDescriptor = TupleDesc tupleDescriptor = ScanStateGetTupleDescriptor(scanState);
scanState->customScanState.ss.ps.ps_ResultTupleSlot->tts_tupleDescriptor;
AttInMetadata *attributeInputMetadata = TupleDescGetAttInMetadata(tupleDescriptor); AttInMetadata *attributeInputMetadata = TupleDescGetAttInMetadata(tupleDescriptor);
List *targetList = scanState->customScanState.ss.ps.plan->targetlist; List *targetList = scanState->customScanState.ss.ps.plan->targetlist;
uint32 expectedColumnCount = ExecCleanTargetListLength(targetList); uint32 expectedColumnCount = ExecCleanTargetListLength(targetList);

View File

@ -37,5 +37,6 @@ extern CustomScanMethods DelayedErrorCustomScanMethods;
extern void RegisterCitusCustomScanMethods(void); extern void RegisterCitusCustomScanMethods(void);
extern void CitusExplainScan(CustomScanState *node, List *ancestors, struct extern void CitusExplainScan(CustomScanState *node, List *ancestors, struct
ExplainState *es); ExplainState *es);
extern TupleDesc ScanStateGetTupleDescriptor(CitusScanState *scanState);
#endif /* CITUS_CUSTOM_SCAN_H */ #endif /* CITUS_CUSTOM_SCAN_H */