|
PostgreSQL Source Code git master
|
#include "postgres.h"#include <float.h>#include <limits.h>#include <math.h>#include "optimizer/geqo.h"#include "optimizer/joininfo.h"#include "optimizer/pathnode.h"#include "optimizer/paths.h"#include "utils/memutils.h"
Go to the source code of this file.
Data Structures | |
| struct | Clump |
Functions | |
| static List * | merge_clump (PlannerInfo *root, List *clumps, Clump *new_clump, int num_gene, bool force) |
| static bool | desirable_join (PlannerInfo *root, RelOptInfo *outer_rel, RelOptInfo *inner_rel) |
| Cost | geqo_eval (PlannerInfo *root, Gene *tour, int num_gene) |
| RelOptInfo * | gimme_tree (PlannerInfo *root, Gene *tour, int num_gene) |
|
static |
Definition at line 344 of file geqo_eval.c.
References have_join_order_restriction(), have_relevant_joinclause(), and root.
Referenced by merge_clump().
| Cost geqo_eval | ( | PlannerInfo * | root, |
| Gene * | tour, | ||
| int | num_gene | ||
| ) |
Definition at line 57 of file geqo_eval.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, Assert(), RelOptInfo::cheapest_total_path, CurrentMemoryContext, gimme_tree(), list_length(), list_truncate(), MemoryContextDelete(), MemoryContextSwitchTo(), root, and Path::total_cost.
Referenced by geqo(), and random_init_pool().
| RelOptInfo * gimme_tree | ( | PlannerInfo * | root, |
| Gene * | tour, | ||
| int | num_gene | ||
| ) |
Definition at line 163 of file geqo_eval.c.
References GetGeqoPrivateData(), Clump::joinrel, lfirst, linitial, list_length(), list_nth(), merge_clump(), NIL, palloc(), root, and Clump::size.
Referenced by geqo(), and geqo_eval().
|
static |
Definition at line 238 of file geqo_eval.c.
References Assert(), bms_equal(), desirable_join(), foreach_delete_current, generate_grouped_paths(), generate_partitionwise_join_paths(), generate_useful_gather_paths(), RelOptInfo::grouped_rel, IS_GROUPED_REL, Clump::joinrel, lappend(), lfirst, list_insert_nth(), list_length(), list_nth(), make_join_rel(), merge_clump(), NIL, pfree(), RelOptInfo::relids, root, set_cheapest(), and Clump::size.
Referenced by gimme_tree(), and merge_clump().