From fa2cf164aaf91e074be653c28e035f65d80eb666 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 29 Jan 2019 16:49:25 -0500 Subject: [PATCH] Rename nodes/relation.h to nodes/pathnodes.h. The old name of this file was never a very good indication of what it was for. Now that there's also access/relation.h, we have a potential confusion hazard as well, so let's rename it to something more apropos. Per discussion, "pathnodes.h" is reasonable, since a good fraction of the file is Path node definitions. While at it, tweak a couple of other headers that were gratuitously importing relation.h into modules that don't need it. Discussion: https://postgr.es/m/7719.1548688728@sss.pgh.pa.us --- contrib/bloom/bloom.h | 2 +- contrib/postgres_fdw/postgres_fdw.h | 2 +- src/backend/executor/execAmi.c | 3 ++- src/backend/executor/nodeCustom.c | 1 + src/backend/nodes/README | 2 +- src/backend/nodes/copyfuncs.c | 4 ++-- src/backend/nodes/equalfuncs.c | 4 ++-- src/backend/nodes/nodeFuncs.c | 2 +- src/backend/nodes/outfuncs.c | 4 ++-- src/backend/nodes/print.c | 2 +- src/backend/optimizer/path/costsize.c | 4 ++-- src/backend/optimizer/util/predtest.c | 2 +- src/backend/rewrite/rewriteManip.c | 2 +- src/backend/statistics/dependencies.c | 2 +- src/backend/statistics/extended_stats.c | 1 - src/include/access/tsmapi.h | 2 +- src/include/executor/executor.h | 2 +- src/include/executor/nodeCustom.h | 1 - src/include/foreign/fdwapi.h | 2 +- src/include/nodes/extensible.h | 2 +- src/include/nodes/nodes.h | 8 ++++---- src/include/nodes/{relation.h => pathnodes.h} | 12 ++++++------ src/include/optimizer/appendinfo.h | 2 +- src/include/optimizer/clauses.h | 2 +- src/include/optimizer/cost.h | 2 +- src/include/optimizer/geqo.h | 2 +- src/include/optimizer/inherit.h | 2 +- src/include/optimizer/joininfo.h | 2 +- src/include/optimizer/optimizer.h | 4 ++-- src/include/optimizer/orclauses.h | 2 +- src/include/optimizer/paramassign.h | 2 +- src/include/optimizer/pathnode.h | 2 +- src/include/optimizer/paths.h | 2 +- src/include/optimizer/placeholder.h | 2 +- src/include/optimizer/plancat.h | 2 +- src/include/optimizer/planmain.h | 2 +- src/include/optimizer/planner.h | 2 +- src/include/optimizer/prep.h | 2 +- src/include/optimizer/restrictinfo.h | 2 +- src/include/optimizer/subselect.h | 2 +- src/include/optimizer/tlist.h | 2 +- src/include/partitioning/partprune.h | 9 +++++---- src/include/statistics/statistics.h | 2 +- src/include/utils/selfuncs.h | 2 +- 44 files changed, 60 insertions(+), 59 deletions(-) rename src/include/nodes/{relation.h => pathnodes.h} (99%) diff --git a/contrib/bloom/bloom.h b/contrib/bloom/bloom.h index 24200fb5fa..d641361aef 100644 --- a/contrib/bloom/bloom.h +++ b/contrib/bloom/bloom.h @@ -17,7 +17,7 @@ #include "access/generic_xlog.h" #include "access/itup.h" #include "access/xlog.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "fmgr.h" /* Support procedures numbers */ diff --git a/contrib/postgres_fdw/postgres_fdw.h b/contrib/postgres_fdw/postgres_fdw.h index ce24c2a4d2..3f50103285 100644 --- a/contrib/postgres_fdw/postgres_fdw.h +++ b/contrib/postgres_fdw/postgres_fdw.h @@ -15,7 +15,7 @@ #include "foreign/foreign.h" #include "lib/stringinfo.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "utils/relcache.h" #include "libpq-fe.h" diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c index cd77f9927e..187f892421 100644 --- a/src/backend/executor/execAmi.c +++ b/src/backend/executor/execAmi.c @@ -56,8 +56,9 @@ #include "executor/nodeValuesscan.h" #include "executor/nodeWindowAgg.h" #include "executor/nodeWorktablescan.h" +#include "nodes/extensible.h" #include "nodes/nodeFuncs.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "utils/rel.h" #include "utils/syscache.h" diff --git a/src/backend/executor/nodeCustom.c b/src/backend/executor/nodeCustom.c index eb65a6385f..6dd0916818 100644 --- a/src/backend/executor/nodeCustom.c +++ b/src/backend/executor/nodeCustom.c @@ -14,6 +14,7 @@ #include "executor/executor.h" #include "executor/nodeCustom.h" #include "nodes/execnodes.h" +#include "nodes/extensible.h" #include "nodes/plannodes.h" #include "miscadmin.h" #include "parser/parsetree.h" diff --git a/src/backend/nodes/README b/src/backend/nodes/README index 2df4389437..dcd66d7243 100644 --- a/src/backend/nodes/README +++ b/src/backend/nodes/README @@ -36,8 +36,8 @@ FILES IN src/include/nodes/ nodes.h - define node tags (NodeTag) primnodes.h - primitive nodes parsenodes.h - parse tree nodes + pathnodes.h - path tree nodes and planner internal structures plannodes.h - plan tree nodes - relation.h - planner internal nodes execnodes.h - executor nodes memnodes.h - memory nodes pg_list.h - generic list diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 3eb7e95d64..807393dfaa 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -24,8 +24,8 @@ #include "miscadmin.h" #include "nodes/extensible.h" +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" #include "utils/datum.h" #include "utils/rel.h" @@ -2196,7 +2196,7 @@ _copyOnConflictExpr(const OnConflictExpr *from) } /* **************************************************************** - * relation.h copy functions + * pathnodes.h copy functions * * We don't support copying RelOptInfo, IndexOptInfo, or Path nodes. * There are some subsidiary structs that are useful to copy, though. diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 5c4fa7d077..a397de155e 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -31,7 +31,7 @@ #include "miscadmin.h" #include "nodes/extensible.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "utils/datum.h" @@ -814,7 +814,7 @@ _equalOnConflictExpr(const OnConflictExpr *a, const OnConflictExpr *b) } /* - * Stuff from relation.h + * Stuff from pathnodes.h */ static bool diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index ecb9abd7fe..1275c7168f 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -20,7 +20,7 @@ #include "nodes/makefuncs.h" #include "nodes/execnodes.h" #include "nodes/nodeFuncs.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "utils/builtins.h" #include "utils/lsyscache.h" diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 33f7939e05..9d44e3e4c6 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -32,8 +32,8 @@ #include "lib/stringinfo.h" #include "miscadmin.h" #include "nodes/extensible.h" +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" #include "utils/datum.h" #include "utils/rel.h" @@ -1676,7 +1676,7 @@ _outOnConflictExpr(StringInfo str, const OnConflictExpr *node) /***************************************************************************** * - * Stuff from relation.h. + * Stuff from pathnodes.h. * *****************************************************************************/ diff --git a/src/backend/nodes/print.c b/src/backend/nodes/print.c index 6d6da5299f..4b9e141404 100644 --- a/src/backend/nodes/print.c +++ b/src/backend/nodes/print.c @@ -22,8 +22,8 @@ #include "access/printtup.h" #include "lib/stringinfo.h" #include "nodes/nodeFuncs.h" +#include "nodes/pathnodes.h" #include "nodes/print.h" -#include "nodes/relation.h" #include "parser/parsetree.h" #include "utils/lsyscache.h" diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c index 532de4484f..b8d406f230 100644 --- a/src/backend/optimizer/path/costsize.c +++ b/src/backend/optimizer/path/costsize.c @@ -540,7 +540,7 @@ cost_index(IndexPath *path, PlannerInfo *root, double loop_count, * for scanning the index, as well as the selectivity of the index (ie, * the fraction of main-table tuples we will have to retrieve) and its * correlation to the main-table tuple order. We need a cast here because - * relation.h uses a weak function type to avoid including amapi.h. + * pathnodes.h uses a weak function type to avoid including amapi.h. */ amcostestimate = (amcostestimate_function) index->amcostestimate; amcostestimate(root, path, loop_count, @@ -4072,7 +4072,7 @@ get_restriction_qual_cost(PlannerInfo *root, RelOptInfo *baserel, * sjinfo: SpecialJoinInfo relevant to this join * restrictlist: join quals * Output parameters: - * *semifactors is filled in (see relation.h for field definitions) + * *semifactors is filled in (see pathnodes.h for field definitions) */ void compute_semi_anti_join_factors(PlannerInfo *root, diff --git a/src/backend/optimizer/util/predtest.c b/src/backend/optimizer/util/predtest.c index 3b260b1e3c..01f64eeab5 100644 --- a/src/backend/optimizer/util/predtest.c +++ b/src/backend/optimizer/util/predtest.c @@ -21,7 +21,7 @@ #include "miscadmin.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "optimizer/optimizer.h" #include "utils/array.h" #include "utils/inval.h" diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index 57aee3d760..8fa5c11cc7 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -16,8 +16,8 @@ #include "catalog/pg_type.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" #include "parser/parse_coerce.h" #include "parser/parse_relation.h" #include "parser/parsetree.h" diff --git a/src/backend/statistics/dependencies.c b/src/backend/statistics/dependencies.c index 13492ceb9c..96916eafe1 100644 --- a/src/backend/statistics/dependencies.c +++ b/src/backend/statistics/dependencies.c @@ -22,7 +22,7 @@ #include "optimizer/clauses.h" #include "optimizer/optimizer.h" #include "nodes/nodes.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "statistics/extended_stats_internal.h" #include "statistics/statistics.h" #include "utils/bytea.h" diff --git a/src/backend/statistics/extended_stats.c b/src/backend/statistics/extended_stats.c index 7f13e434a8..d429a531de 100644 --- a/src/backend/statistics/extended_stats.c +++ b/src/backend/statistics/extended_stats.c @@ -22,7 +22,6 @@ #include "catalog/indexing.h" #include "catalog/pg_collation.h" #include "catalog/pg_statistic_ext.h" -#include "nodes/relation.h" #include "postmaster/autovacuum.h" #include "statistics/extended_stats_internal.h" #include "statistics/statistics.h" diff --git a/src/include/access/tsmapi.h b/src/include/access/tsmapi.h index f39c55d8d6..a5c0b4cafe 100644 --- a/src/include/access/tsmapi.h +++ b/src/include/access/tsmapi.h @@ -13,7 +13,7 @@ #define TSMAPI_H #include "nodes/execnodes.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" /* diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h index 3831cceedf..537fe5cef0 100644 --- a/src/include/executor/executor.h +++ b/src/include/executor/executor.h @@ -87,7 +87,7 @@ extern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook; /* * prototypes from functions in execAmi.c */ -struct Path; /* avoid including relation.h here */ +struct Path; /* avoid including pathnodes.h here */ extern void ExecReScan(PlanState *node); extern void ExecMarkPos(PlanState *node); diff --git a/src/include/executor/nodeCustom.h b/src/include/executor/nodeCustom.h index 0ef5870006..3c1dd19a4a 100644 --- a/src/include/executor/nodeCustom.h +++ b/src/include/executor/nodeCustom.h @@ -14,7 +14,6 @@ #include "access/parallel.h" #include "nodes/execnodes.h" -#include "nodes/extensible.h" /* * General executor code diff --git a/src/include/foreign/fdwapi.h b/src/include/foreign/fdwapi.h index e19d53a41f..01c95c3267 100644 --- a/src/include/foreign/fdwapi.h +++ b/src/include/foreign/fdwapi.h @@ -14,7 +14,7 @@ #include "access/parallel.h" #include "nodes/execnodes.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" /* To avoid including explain.h here, reference ExplainState thus: */ struct ExplainState; diff --git a/src/include/nodes/extensible.h b/src/include/nodes/extensible.h index 7f9b6d8052..58878edba2 100644 --- a/src/include/nodes/extensible.h +++ b/src/include/nodes/extensible.h @@ -17,8 +17,8 @@ #include "access/parallel.h" #include "commands/explain.h" #include "nodes/execnodes.h" +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" /* maximum length of an extensible node identifier */ #define EXTNODENAME_MAX_LEN 64 diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index 4808a9e76d..fbe2dc14a7 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -215,7 +215,7 @@ typedef enum NodeTag T_DomainConstraintState, /* - * TAGS FOR PLANNER NODES (relation.h) + * TAGS FOR PLANNER NODES (pathnodes.h) */ T_PlannerInfo, T_PlannerGlobal, @@ -741,7 +741,7 @@ typedef enum JoinType * AggStrategy - * overall execution strategies for Agg plan nodes * - * This is needed in both plannodes.h and relation.h, so put it here... + * This is needed in both pathnodes.h and plannodes.h, so put it here... */ typedef enum AggStrategy { @@ -755,7 +755,7 @@ typedef enum AggStrategy * AggSplit - * splitting (partial aggregation) modes for Agg plan nodes * - * This is needed in both plannodes.h and relation.h, so put it here... + * This is needed in both pathnodes.h and plannodes.h, so put it here... */ /* Primitive options supported by nodeAgg.c: */ @@ -785,7 +785,7 @@ typedef enum AggSplit * SetOpCmd and SetOpStrategy - * overall semantics and execution strategies for SetOp plan nodes * - * This is needed in both plannodes.h and relation.h, so put it here... + * This is needed in both pathnodes.h and plannodes.h, so put it here... */ typedef enum SetOpCmd { diff --git a/src/include/nodes/relation.h b/src/include/nodes/pathnodes.h similarity index 99% rename from src/include/nodes/relation.h rename to src/include/nodes/pathnodes.h index 7917b889ae..d3c477a542 100644 --- a/src/include/nodes/relation.h +++ b/src/include/nodes/pathnodes.h @@ -1,18 +1,18 @@ /*------------------------------------------------------------------------- * - * relation.h - * Definitions for planner's internal data structures. + * pathnodes.h + * Definitions for planner's internal data structures, especially Paths. * * * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * src/include/nodes/relation.h + * src/include/nodes/pathnodes.h * *------------------------------------------------------------------------- */ -#ifndef RELATION_H -#define RELATION_H +#ifndef PATHNODES_H +#define PATHNODES_H #include "access/sdir.h" #include "fmgr.h" @@ -2433,4 +2433,4 @@ typedef struct JoinCostWorkspace double inner_rows_total; } JoinCostWorkspace; -#endif /* RELATION_H */ +#endif /* PATHNODES_H */ diff --git a/src/include/optimizer/appendinfo.h b/src/include/optimizer/appendinfo.h index 604e36d73c..790914c1b0 100644 --- a/src/include/optimizer/appendinfo.h +++ b/src/include/optimizer/appendinfo.h @@ -14,7 +14,7 @@ #ifndef APPENDINFO_H #define APPENDINFO_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "utils/relcache.h" extern AppendRelInfo *make_append_rel_info(Relation parentrel, diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h index cfedd424ce..23073c0402 100644 --- a/src/include/optimizer/clauses.h +++ b/src/include/optimizer/clauses.h @@ -15,7 +15,7 @@ #define CLAUSES_H #include "access/htup.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" typedef struct { diff --git a/src/include/optimizer/cost.h b/src/include/optimizer/cost.h index 48efbe58f7..ac6de0f6be 100644 --- a/src/include/optimizer/cost.h +++ b/src/include/optimizer/cost.h @@ -14,8 +14,8 @@ #ifndef COST_H #define COST_H +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" /* defaults for costsize.c's Cost parameters */ diff --git a/src/include/optimizer/geqo.h b/src/include/optimizer/geqo.h index dc88fbbc1b..5b3327665e 100644 --- a/src/include/optimizer/geqo.h +++ b/src/include/optimizer/geqo.h @@ -22,7 +22,7 @@ #ifndef GEQO_H #define GEQO_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "optimizer/geqo_gene.h" diff --git a/src/include/optimizer/inherit.h b/src/include/optimizer/inherit.h index b2687abd4e..d2418f15cf 100644 --- a/src/include/optimizer/inherit.h +++ b/src/include/optimizer/inherit.h @@ -14,7 +14,7 @@ #ifndef INHERIT_H #define INHERIT_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" extern void expand_inherited_tables(PlannerInfo *root); diff --git a/src/include/optimizer/joininfo.h b/src/include/optimizer/joininfo.h index 6598174331..c6e4be6cf4 100644 --- a/src/include/optimizer/joininfo.h +++ b/src/include/optimizer/joininfo.h @@ -14,7 +14,7 @@ #ifndef JOININFO_H #define JOININFO_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" extern bool have_relevant_joinclause(PlannerInfo *root, diff --git a/src/include/optimizer/optimizer.h b/src/include/optimizer/optimizer.h index 1cd5c80e76..ffaf5b9450 100644 --- a/src/include/optimizer/optimizer.h +++ b/src/include/optimizer/optimizer.h @@ -25,10 +25,10 @@ #include "nodes/parsenodes.h" /* - * We don't want to include nodes/relation.h here, because non-planner + * We don't want to include nodes/pathnodes.h here, because non-planner * code should generally treat PlannerInfo as an opaque typedef. * But we'd like such code to use that typedef name, so define the - * typedef either here or in relation.h, whichever is read first. + * typedef either here or in pathnodes.h, whichever is read first. */ #ifndef HAVE_PLANNERINFO_TYPEDEF typedef struct PlannerInfo PlannerInfo; diff --git a/src/include/optimizer/orclauses.h b/src/include/optimizer/orclauses.h index 8ccb98e567..b527900189 100644 --- a/src/include/optimizer/orclauses.h +++ b/src/include/optimizer/orclauses.h @@ -14,7 +14,7 @@ #ifndef ORCLAUSES_H #define ORCLAUSES_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" extern void extract_restriction_or_clauses(PlannerInfo *root); diff --git a/src/include/optimizer/paramassign.h b/src/include/optimizer/paramassign.h index d18c85c938..e18f420eb4 100644 --- a/src/include/optimizer/paramassign.h +++ b/src/include/optimizer/paramassign.h @@ -13,7 +13,7 @@ #ifndef PARAMASSIGN_H #define PARAMASSIGN_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" extern Param *replace_outer_var(PlannerInfo *root, Var *var); extern Param *replace_outer_placeholdervar(PlannerInfo *root, diff --git a/src/include/optimizer/pathnode.h b/src/include/optimizer/pathnode.h index aaaf3f4ff5..d0c8f99d0a 100644 --- a/src/include/optimizer/pathnode.h +++ b/src/include/optimizer/pathnode.h @@ -15,7 +15,7 @@ #define PATHNODE_H #include "nodes/bitmapset.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" /* diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h index 666217c189..1b02b3b889 100644 --- a/src/include/optimizer/paths.h +++ b/src/include/optimizer/paths.h @@ -14,7 +14,7 @@ #ifndef PATHS_H #define PATHS_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" /* diff --git a/src/include/optimizer/placeholder.h b/src/include/optimizer/placeholder.h index c7764a7226..86a1e5d039 100644 --- a/src/include/optimizer/placeholder.h +++ b/src/include/optimizer/placeholder.h @@ -14,7 +14,7 @@ #ifndef PLACEHOLDER_H #define PLACEHOLDER_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" extern PlaceHolderVar *make_placeholder_expr(PlannerInfo *root, Expr *expr, diff --git a/src/include/optimizer/plancat.h b/src/include/optimizer/plancat.h index a1b23251a1..40f70f9f2b 100644 --- a/src/include/optimizer/plancat.h +++ b/src/include/optimizer/plancat.h @@ -14,7 +14,7 @@ #ifndef PLANCAT_H #define PLANCAT_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #include "utils/relcache.h" /* Hook for plugins to get control in get_relation_info() */ diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h index b2e1c07732..3bbdb5e2f7 100644 --- a/src/include/optimizer/planmain.h +++ b/src/include/optimizer/planmain.h @@ -14,8 +14,8 @@ #ifndef PLANMAIN_H #define PLANMAIN_H +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" /* GUC parameters */ #define DEFAULT_CURSOR_TUPLE_FRACTION 0.1 diff --git a/src/include/optimizer/planner.h b/src/include/optimizer/planner.h index 769a2f8e01..cb41e409dc 100644 --- a/src/include/optimizer/planner.h +++ b/src/include/optimizer/planner.h @@ -18,8 +18,8 @@ #ifndef PLANNER_H #define PLANNER_H +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" /* Hook for plugins to get control in planner() */ diff --git a/src/include/optimizer/prep.h b/src/include/optimizer/prep.h index 5277e990ed..a9b2c9026c 100644 --- a/src/include/optimizer/prep.h +++ b/src/include/optimizer/prep.h @@ -14,8 +14,8 @@ #ifndef PREP_H #define PREP_H +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" /* diff --git a/src/include/optimizer/restrictinfo.h b/src/include/optimizer/restrictinfo.h index bca480f446..feeaf0e674 100644 --- a/src/include/optimizer/restrictinfo.h +++ b/src/include/optimizer/restrictinfo.h @@ -14,7 +14,7 @@ #ifndef RESTRICTINFO_H #define RESTRICTINFO_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" /* Convenience macro for the common case of a valid-everywhere qual */ diff --git a/src/include/optimizer/subselect.h b/src/include/optimizer/subselect.h index 22959ff423..2d2c3bcbc0 100644 --- a/src/include/optimizer/subselect.h +++ b/src/include/optimizer/subselect.h @@ -13,8 +13,8 @@ #ifndef SUBSELECT_H #define SUBSELECT_H +#include "nodes/pathnodes.h" #include "nodes/plannodes.h" -#include "nodes/relation.h" extern void SS_process_ctes(PlannerInfo *root); extern JoinExpr *convert_ANY_sublink_to_join(PlannerInfo *root, diff --git a/src/include/optimizer/tlist.h b/src/include/optimizer/tlist.h index 13ac7b88b4..58db79203b 100644 --- a/src/include/optimizer/tlist.h +++ b/src/include/optimizer/tlist.h @@ -14,7 +14,7 @@ #ifndef TLIST_H #define TLIST_H -#include "nodes/relation.h" +#include "nodes/pathnodes.h" extern TargetEntry *tlist_member(Expr *node, List *targetlist); diff --git a/src/include/partitioning/partprune.h b/src/include/partitioning/partprune.h index ce9bc8d9fd..397ffaab36 100644 --- a/src/include/partitioning/partprune.h +++ b/src/include/partitioning/partprune.h @@ -15,7 +15,8 @@ #define PARTPRUNE_H #include "nodes/execnodes.h" -#include "nodes/relation.h" +struct PlannerInfo; /* avoid including pathnodes.h here */ +struct RelOptInfo; /* @@ -71,12 +72,12 @@ typedef struct PartitionPruneContext #define PruneCxtStateIdx(partnatts, step_id, keyno) \ ((partnatts) * (step_id) + (keyno)) -extern PartitionPruneInfo *make_partition_pruneinfo(PlannerInfo *root, - RelOptInfo *parentrel, +extern PartitionPruneInfo *make_partition_pruneinfo(struct PlannerInfo *root, + struct RelOptInfo *parentrel, List *subpaths, List *partitioned_rels, List *prunequal); -extern Relids prune_append_rel_partitions(RelOptInfo *rel); +extern Bitmapset *prune_append_rel_partitions(struct RelOptInfo *rel); extern Bitmapset *get_matching_partitions(PartitionPruneContext *context, List *pruning_steps); diff --git a/src/include/statistics/statistics.h b/src/include/statistics/statistics.h index 02d1efb54d..4876e9523f 100644 --- a/src/include/statistics/statistics.h +++ b/src/include/statistics/statistics.h @@ -14,7 +14,7 @@ #define STATISTICS_H #include "commands/vacuum.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" #define STATS_MAX_DIMENSIONS 8 /* max number of attributes */ diff --git a/src/include/utils/selfuncs.h b/src/include/utils/selfuncs.h index 5cc4cf15e2..6b1ef91af6 100644 --- a/src/include/utils/selfuncs.h +++ b/src/include/utils/selfuncs.h @@ -17,7 +17,7 @@ #include "fmgr.h" #include "access/htup.h" -#include "nodes/relation.h" +#include "nodes/pathnodes.h" /* -- 2.40.0