citus/src/include/distributed/merge_planner.h

37 lines
1.2 KiB
C

/*-------------------------------------------------------------------------
*
* merge_planner.h
*
* Declarations for public functions and types related to router planning.
*
* Copyright (c) Citus Data, Inc.
*
*-------------------------------------------------------------------------
*/
#ifndef MERGE_PLANNER_H
#define MERGE_PLANNER_H
#include "c.h"
#include "nodes/parsenodes.h"
#include "distributed/distributed_planner.h"
#include "distributed/errormessage.h"
#include "distributed/multi_physical_planner.h"
extern DistributedPlan * CreateMergePlan(uint64 planId, Query *originalQuery,
Query *query,
PlannerRestrictionContext *
plannerRestrictionContext,
ParamListInfo boundParams);
extern bool IsLocalTableModification(Oid targetRelationId, Query *query,
uint64 shardId,
RTEListProperties *rteProperties);
extern void NonPushableMergeCommandExplainScan(CustomScanState *node, List *ancestors,
struct ExplainState *es);
extern Var * FetchAndValidateInsertVarIfExists(Oid targetRelationId, Query *query);
extern RangeTblEntry * ExtractMergeSourceRangeTableEntry(Query *query, bool joinSourceOk);
#endif /* MERGE_PLANNER_H */