*
*-------------------------------------------------------------------------
*/
-#include <string.h>
-#include <stdio.h>
-
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-#include "nodes/primnodes.h"
-
-#include "optimizer/internal.h"
-
-#include "optimizer/paths.h"
-#include "optimizer/pathnode.h"
-#include "optimizer/clauses.h"
-#include "optimizer/xfunc.h"
#include "optimizer/cost.h"
-
-#include "commands/creatinh.h"
-
-#include "optimizer/geqo_gene.h"
#include "optimizer/geqo.h"
+#include "optimizer/internal.h"
+#include "optimizer/pathnode.h"
+#include "optimizer/paths.h"
#ifdef GEQO
bool _use_geqo_ = true;
#include "postgres.h"
#include "catalog/pg_operator.h"
-#include "fmgr.h"
-#include "nodes/pg_list.h"
-#include "nodes/primnodes.h"
-#include "nodes/relation.h"
#include "optimizer/clauses.h"
-#include "optimizer/restrictinfo.h"
#include "optimizer/cost.h"
#include "optimizer/internal.h"
-#include "optimizer/plancat.h"
-#include "parser/parsetree.h" /* for getrelid() */
+#include "optimizer/plancat.h"
+#include "optimizer/restrictinfo.h"
+#include "parser/parsetree.h"
#include "utils/lsyscache.h"
-
static Cost compute_selec(Query *root, List *clauses, List *or_selectivities);
/****************************************************************************
*-------------------------------------------------------------------------
*/
-#include "postgres.h"
-
#include <math.h>
+#include "postgres.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#ifndef MAXINT
#endif
#endif
-#include "nodes/relation.h"
+
#include "optimizer/cost.h"
#include "optimizer/internal.h"
-#include "optimizer/keys.h"
#include "optimizer/tlist.h"
#include "utils/lsyscache.h"
*-------------------------------------------------------------------------
*/
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-#include "optimizer/internal.h"
-#include "optimizer/paths.h"
#include "optimizer/clauses.h"
+#include "optimizer/paths.h"
static HashInfo *match_hashop_hashinfo(Oid hashop, List *hashinfo_list);
#include "postgres.h"
-#include "storage/buf_internals.h"
-
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-#include "nodes/plannodes.h"
-
-#include "optimizer/internal.h"
-#include "optimizer/paths.h"
+#include "optimizer/cost.h"
#include "optimizer/pathnode.h"
-#include "optimizer/keys.h"
-#include "optimizer/cost.h" /* for _enable_{hashjoin,
- * _enable_mergejoin} */
+#include "optimizer/paths.h"
static Path *best_innerjoin(List *join_paths, List *outer_relid);
static List *sort_inner_and_outer(RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel,
*/
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-
-#include "optimizer/internal.h"
#include "optimizer/cost.h"
-#include "optimizer/paths.h"
-#include "optimizer/tlist.h"
#include "optimizer/joininfo.h"
#include "optimizer/pathnode.h"
+#include "optimizer/paths.h"
+#include "optimizer/tlist.h"
static List *new_joininfo_list(List *joininfo_list, Relids join_relids);
static bool nonoverlap_sets(List *s1, List *s2);
*/
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-
-#include "optimizer/internal.h"
-#include "optimizer/paths.h"
#include "optimizer/clauses.h"
#include "optimizer/ordering.h"
+#include "optimizer/paths.h"
/*
* group_clauses_by_order
*/
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-#include "nodes/primnodes.h"
-
-#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
-
-#include "optimizer/internal.h"
#include "optimizer/clauses.h"
-#include "optimizer/restrictinfo.h"
-#include "optimizer/paths.h"
#include "optimizer/cost.h"
+#include "optimizer/internal.h"
+#include "optimizer/paths.h"
#include "optimizer/plancat.h"
-#include "optimizer/xfunc.h"
-
-#include "parser/parsetree.h"
-
+#include "optimizer/restrictinfo.h"
+#include "parser/parsetree.h"
static void best_or_subclause_indices(Query *root, RelOptInfo *rel, List *subclauses,
List *indices, List **indexids, Cost *cost, Cost *selec);
*/
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-#include "nodes/plannodes.h"
-#include "optimizer/internal.h"
-#include "optimizer/paths.h"
-#include "optimizer/var.h"
-#include "optimizer/keys.h"
-#include "optimizer/tlist.h"
#include "optimizer/joininfo.h"
+#include "optimizer/keys.h"
#include "optimizer/ordering.h"
+#include "optimizer/paths.h"
+#include "optimizer/tlist.h"
static int match_pathkey_joinkeys(List *pathkey, List *joinkeys,
int outer_or_inner);
*/
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-#include "optimizer/internal.h"
#include "optimizer/cost.h"
-#include "optimizer/paths.h"
#include "optimizer/pathnode.h"
+#include "optimizer/paths.h"
-#include "utils/elog.h"
static List *merge_rel_with_same_relids(RelOptInfo *rel, Relids unjoined_relids);
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/plannodes.h"
-#include "nodes/parsenodes.h"
-#include "nodes/relation.h"
-#include "nodes/makefuncs.h"
-
-#include "access/htup.h"
-
+#include "postgres.h"
#include "catalog/pg_type.h"
-
-#include "utils/lsyscache.h"
-#include "utils/palloc.h"
-
-#include "optimizer/internal.h"
-#include "optimizer/planmain.h"
+#include "nodes/makefuncs.h"
+#include "optimizer/clauses.h"
+#include "optimizer/cost.h"
#include "optimizer/joininfo.h"
#include "optimizer/pathnode.h"
+#include "optimizer/planmain.h"
#include "optimizer/tlist.h"
#include "optimizer/var.h"
-#include "optimizer/clauses.h"
-#include "optimizer/cost.h"
+#include "utils/lsyscache.h"
extern int Quiet;
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/plannodes.h"
-#include "nodes/parsenodes.h"
-#include "nodes/print.h"
-#include "nodes/relation.h"
-#include "nodes/makefuncs.h"
+#include "optimizer/clauses.h"
+#include "optimizer/paths.h"
#include "optimizer/planmain.h"
-#include "optimizer/subselect.h"
-#include "optimizer/internal.h"
#include "optimizer/prep.h"
-#include "optimizer/paths.h"
-#include "optimizer/clauses.h"
-#include "optimizer/keys.h"
+#include "optimizer/subselect.h"
#include "optimizer/tlist.h"
-#include "optimizer/var.h"
-#include "optimizer/xfunc.h"
-#include "optimizer/cost.h"
-
-#include "tcop/dest.h"
-#include "utils/elog.h"
-#include "utils/palloc.h"
-#include "nodes/memnodes.h"
-#include "utils/mcxt.h"
-#include "utils/lsyscache.h"
+
static Plan *subplanner(Query *root, List *flat_tlist, List *qual);
static Result *make_result(List *tlist, Node *resconstantqual, Plan *subplan);
*-------------------------------------------------------------------------
*/
#include <sys/types.h>
-#include <string.h>
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/plannodes.h"
-#include "nodes/parsenodes.h"
-#include "nodes/relation.h"
-#include "nodes/makefuncs.h"
-#include "catalog/pg_type.h"
-#include "parser/parse_expr.h"
-
-#include "utils/elog.h"
-#include "utils/lsyscache.h"
+#include "access/genam.h"
#include "access/heapam.h"
-
+#include "catalog/pg_type.h"
+#include "executor/executor.h"
+#include "nodes/makefuncs.h"
+#include "optimizer/clauses.h"
#include "optimizer/internal.h"
+#include "optimizer/planmain.h"
#include "optimizer/planner.h"
-#include "optimizer/plancat.h"
#include "optimizer/prep.h"
-#include "optimizer/planmain.h"
#include "optimizer/subselect.h"
-#include "optimizer/paths.h"
-#include "optimizer/cost.h"
-
-/* DATA STRUCTURE CREATION/MANIPULATION ROUTINES */
-#include "nodes/relation.h"
-#include "optimizer/restrictinfo.h"
-#include "optimizer/joininfo.h"
-#include "optimizer/keys.h"
-#include "optimizer/ordering.h"
-#include "optimizer/pathnode.h"
-#include "optimizer/clauses.h"
#include "optimizer/tlist.h"
#include "optimizer/var.h"
-
-#include "executor/executor.h"
-
+#include "parser/parse_expr.h"
+#include "parser/parse_oper.h"
#include "utils/builtins.h"
+#include "utils/lsyscache.h"
#include "utils/syscache.h"
-#include "access/genam.h"
-#include "parser/parse_oper.h"
static List *make_subplanTargetList(Query *parse, List *tlist,
AttrNumber **groupColIdx);
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/plannodes.h"
-#include "nodes/primnodes.h"
-#include "nodes/relation.h"
-#include "utils/elog.h"
-#include "nodes/nodeFuncs.h"
-#include "nodes/makefuncs.h"
-#include "optimizer/internal.h"
+#include "nodes/makefuncs.h"
+#include "nodes/nodeFuncs.h"
#include "optimizer/clauses.h"
-#include "optimizer/restrictinfo.h"
-#include "optimizer/keys.h"
#include "optimizer/planmain.h"
#include "optimizer/tlist.h"
#include "optimizer/var.h"
-#include "optimizer/tlist.h"
static void set_join_tlist_references(Join *join);
static void set_nonamescan_tlist_references(SeqScan *nonamescan);
#include "postgres.h"
#include "catalog/pg_type.h"
-#include "nodes/pg_list.h"
-#include "nodes/plannodes.h"
-#include "nodes/parsenodes.h"
-#include "nodes/relation.h"
#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
-#include "optimizer/subselect.h"
-#include "optimizer/planner.h"
-#include "optimizer/planmain.h"
-#include "optimizer/internal.h"
-#include "optimizer/paths.h"
#include "optimizer/clauses.h"
-#include "optimizer/keys.h"
-#include "optimizer/tlist.h"
-#include "optimizer/var.h"
-#include "optimizer/cost.h"
+#include "optimizer/planner.h"
+#include "optimizer/subselect.h"
int PlannerQueryLevel; /* level of current query */
List *PlannerInitPlan; /* init subplans for current query */
*
*-------------------------------------------------------------------------
*/
-#include <stdio.h>
-#include <string.h>
#include "postgres.h"
#include "optimizer/planmain.h"
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/makefuncs.h"
-#include "optimizer/internal.h"
+
+#include "nodes/makefuncs.h"
#include "optimizer/clauses.h"
#include "optimizer/prep.h"
-
#include "utils/lsyscache.h"
static Expr *pull_args(Expr *qual);
*
*-------------------------------------------------------------------------
*/
-#include <string.h>
#include "postgres.h"
#include "catalog/pg_type.h"
-#include "nodes/pg_list.h"
-#include "nodes/relation.h"
-#include "nodes/primnodes.h"
-#include "nodes/parsenodes.h"
-
#include "nodes/makefuncs.h"
-
-#include "utils/builtins.h"
-#include "utils/syscache.h"
-#include "utils/lsyscache.h"
-#include "utils/palloc.h"
-#include "parser/parse_type.h"
-
-#include "parser/parsetree.h" /* for getrelid() */
-
-#include "optimizer/internal.h"
-#include "optimizer/prep.h"
#include "optimizer/clauses.h"
-#include "optimizer/tlist.h"
+#include "optimizer/prep.h"
+#include "parser/parsetree.h"
+#include "utils/lsyscache.h"
+#include "utils/syscache.h"
static List *expand_targetlist(List *tlist, Oid relid, int command_type,
Index result_relation);
*
*-------------------------------------------------------------------------
*/
-#include <string.h>
#include <sys/types.h>
#include "postgres.h"
-#include "nodes/nodes.h"
-#include "nodes/pg_list.h"
-#include "nodes/execnodes.h"
-#include "nodes/plannodes.h"
-#include "nodes/relation.h"
-
-#include "parser/parsetree.h"
-#include "parser/parse_clause.h"
-
-#include "utils/elog.h"
-#include "utils/lsyscache.h"
-
-#include "optimizer/internal.h"
-#include "optimizer/prep.h"
#include "optimizer/plancat.h"
-#include "optimizer/planner.h"
#include "optimizer/planmain.h"
+#include "optimizer/planner.h"
+#include "optimizer/prep.h"
+#include "parser/parse_clause.h"
+#include "parser/parsetree.h"
+#include "utils/lsyscache.h"
static List *plan_inherit_query(Relids relids, Index rt_index,
RangeTblEntry *rt_entry, Query *parse, List *tlist,
#include "postgres.h"
-#include <catalog/pg_operator.h>
-#include "nodes/primnodes.h"
-#include "nodes/relation.h"
-#include "nodes/parsenodes.h"
-#include "nodes/plannodes.h"
+#include "catalog/pg_operator.h"
#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
-
-#include "catalog/pg_aggregate.h"
-
-#include "utils/syscache.h"
-#include "utils/lsyscache.h"
-
+#include "nodes/plannodes.h"
#include "optimizer/clauses.h"
#include "optimizer/internal.h"
#include "optimizer/var.h"
-
+#include "utils/lsyscache.h"
static bool fix_opid_walker(Node *node, void *context);
#include "postgres.h"
-#include "nodes/plannodes.h"
-#include "nodes/parsenodes.h"
-#include "nodes/relation.h"
-#include "optimizer/internal.h"
+#include "optimizer/pathnode.h"
#include "optimizer/plancat.h"
-#include "optimizer/pathnode.h" /* where the decls go */
static List *find_secondary_index(Query *root, Oid relid);
*/
#include "postgres.h"
-#include "nodes/relation.h"
-#include "optimizer/internal.h"
-#include "optimizer/joininfo.h"
-#include "optimizer/var.h"
#include "optimizer/clauses.h"
+#include "optimizer/joininfo.h"
/*
*-------------------------------------------------------------------------
*/
#include "postgres.h"
-#include "nodes/pg_list.h"
-#include "nodes/nodes.h"
-#include "nodes/relation.h"
-#include "utils/elog.h"
-#include "optimizer/internal.h"
#include "optimizer/keys.h"
-#include "optimizer/tlist.h"
static Expr *matching2_tlvar(int var, List *tlist, bool (*test) ());
#include "postgres.h"
-#include "optimizer/internal.h"
#include "optimizer/ordering.h"
static bool sortops_order_match(Oid *ordering1, Oid *ordering2,
#include "postgres.h"
-#include "nodes/relation.h"
-#include "utils/elog.h"
-
-#include "optimizer/internal.h"
-#include "optimizer/pathnode.h"
-#include "optimizer/restrictinfo.h"
-#include "optimizer/plancat.h"
#include "optimizer/cost.h"
#include "optimizer/keys.h"
-#include "optimizer/xfunc.h"
#include "optimizer/ordering.h"
-
-#include "parser/parsetree.h" /* for getrelid() */
+#include "optimizer/pathnode.h"
+#include "optimizer/paths.h"
+#include "optimizer/plancat.h"
+#include "optimizer/restrictinfo.h"
+#include "parser/parsetree.h"
static Path *better_path(Path *new_path, List *unique_paths, bool *is_new);
*/
#include "postgres.h"
-#include "nodes/relation.h"
-
#include "optimizer/internal.h"
-#include "optimizer/pathnode.h" /* where the decls go */
+#include "optimizer/pathnode.h"
#include "optimizer/plancat.h"
-
-
/*
* get_base_rel
* Returns relation entry corresponding to 'relid', creating a new one if
*/
#include "postgres.h"
-#include "nodes/relation.h"
#include "nodes/nodeFuncs.h"
-
-#include "optimizer/internal.h"
#include "optimizer/clauses.h"
+#include "optimizer/internal.h"
#include "optimizer/restrictinfo.h"
/*
*/
#include "postgres.h"
-#include "nodes/relation.h"
-#include "nodes/primnodes.h"
-#include "nodes/pg_list.h"
-#include "nodes/nodeFuncs.h"
-#include "utils/elog.h"
-#include "utils/lsyscache.h"
-#include "optimizer/internal.h"
-#include "optimizer/var.h"
-#include "optimizer/tlist.h"
-#include "optimizer/clauses.h"
#include "nodes/makefuncs.h"
+#include "nodes/nodeFuncs.h"
+#include "optimizer/clauses.h"
+#include "optimizer/tlist.h"
+#include "optimizer/var.h"
static Node *flatten_tlistentry(Node *tlistentry, List *flat_tlist);
#include "postgres.h"
-#include "nodes/relation.h"
-#include "nodes/primnodes.h"
-#include "nodes/plannodes.h"
-#include "nodes/nodeFuncs.h"
-#include "optimizer/internal.h"
#include "optimizer/clauses.h"
#include "optimizer/var.h"
-#include "parser/parsetree.h"
static bool pull_varnos_walker(Node *node, List **listptr);