citus/src/include/distributed/subplan_execution.h

44 lines
1.3 KiB
C

/*-------------------------------------------------------------------------
*
* subplan_execution.h
*
* Functions for execution subplans.
*
* Copyright (c) Citus Data, Inc.
*-------------------------------------------------------------------------
*/
#ifndef SUBPLAN_EXECUTION_H
#define SUBPLAN_EXECUTION_H
#include "distributed/multi_physical_planner.h"
extern int MaxIntermediateResult;
extern int SubPlanLevel;
extern void ExecuteSubPlans(DistributedPlan *distributedPlan);
/**
* IntermediateResultsHashEntry is used to store which nodes need to receive
* intermediate results. Given an intermediate result name, you can lookup
* the list of nodes that can possibly run a query that will use the
* intermediate results.
*
* The nodeIdList contains a set of unique WorkerNode ids that have placements
* that can be used in non-colocated subquery joins with the intermediate result
* given in the key.
*
* writeLocalFile indicates if the intermediate result is accessed during local
* execution. Note that there can possibly be an item for the local node in the
* NodeIdList.
*/
typedef struct IntermediateResultsHashEntry
{
char key[NAMEDATALEN];
List *nodeIdList;
bool writeLocalFile;
} IntermediateResultsHashEntry;
#endif /* SUBPLAN_EXECUTION_H */