267 root->all_query_rels);
void generate_partitionwise_join_paths(PlannerInfo *root, RelOptInfo *rel)
void generate_grouped_paths(PlannerInfo *root, RelOptInfo *grouped_rel, RelOptInfo *rel)
void generate_useful_gather_paths(PlannerInfo *root, RelOptInfo *rel, bool override_rows)
bool bms_equal(const Bitmapset *a, const Bitmapset *b)
#define Assert(condition)
#define palloc_object(type)
static GeqoPrivateData * GetGeqoPrivateData(PlannerInfo *root)
static bool desirable_join(PlannerInfo *root, RelOptInfo *outer_rel, RelOptInfo *inner_rel)
Cost geqo_eval(PlannerInfo *root, Gene *tour, int num_gene)
static List * merge_clump(PlannerInfo *root, List *clumps, Clump *new_clump, int num_gene, bool force)
RelOptInfo * gimme_tree(PlannerInfo *root, Gene *tour, int num_gene)
bool have_relevant_joinclause(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2)
RelOptInfo * make_join_rel(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2)
bool have_join_order_restriction(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2)
List * lappend(List *list, void *datum)
List * list_truncate(List *list, int new_size)
List * list_insert_nth(List *list, int pos, void *datum)
void pfree(void *pointer)
MemoryContext CurrentMemoryContext
void MemoryContextDelete(MemoryContext context)
#define AllocSetContextCreate
#define ALLOCSET_DEFAULT_SIZES
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
void set_cheapest(RelOptInfo *parent_rel)
#define IS_GROUPED_REL(rel)
static int list_length(const List *l)
#define foreach_delete_current(lst, var_or_cell)
static void * list_nth(const List *list, int n)
struct Path * cheapest_total_path
struct RelOptInfo * grouped_rel