mirror of https://github.com/citusdata/citus.git
52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
//
|
|
// Created by Nils Dijk on 17/01/2020.
|
|
//
|
|
|
|
#ifndef CITUS_PATH_BASED_PLANNER_H
|
|
#define CITUS_PATH_BASED_PLANNER_H
|
|
|
|
#include "nodes/parsenodes.h"
|
|
#include "nodes/pathnodes.h"
|
|
|
|
typedef List *(*optimizeFn)(PlannerInfo *root, Path *originalPath);
|
|
|
|
typedef struct OptimizationEntry
|
|
{
|
|
const char *name;
|
|
bool enabled;
|
|
optimizeFn fn;
|
|
} OptimizationEntry;
|
|
|
|
extern bool EnableBroadcastJoin;
|
|
|
|
extern Cost CollectStartupCost;
|
|
extern Cost CollectPerRowCost;
|
|
extern Cost CollectPerMBCost;
|
|
|
|
extern Cost RepartitionStartupCost;
|
|
extern Cost RepartitionPerRowCost;
|
|
extern Cost RepartitionPerMBCost;
|
|
|
|
extern OptimizationEntry joinOptimizations[];
|
|
extern OptimizationEntry groupOptimizations[];
|
|
|
|
extern void PathBasedPlannerRelationHook(PlannerInfo *root,
|
|
RelOptInfo *relOptInfo,
|
|
Index restrictionIndex,
|
|
RangeTblEntry *rte);
|
|
extern void PathBasedPlannerJoinHook(PlannerInfo *root,
|
|
RelOptInfo *joinrel,
|
|
RelOptInfo *outerrel,
|
|
RelOptInfo *innerrel,
|
|
JoinType jointype,
|
|
JoinPathExtraData *extra);
|
|
extern void PathBasedPlannedUpperPathHook(PlannerInfo *root,
|
|
UpperRelationKind stage,
|
|
RelOptInfo *input_rel,
|
|
RelOptInfo *output_rel,
|
|
void *extra);
|
|
|
|
extern PathComparison PathBasedPlannerComparePath(Path *new_path, Path *old_path);
|
|
|
|
#endif //CITUS_PATH_BASED_PLANNER_H
|