23#ifndef SQL_JOIN_OPTIMIZER_JOIN_OPTIMIZER_H
24#define SQL_JOIN_OPTIMIZER_JOIN_OPTIMIZER_H
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1155
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
bool FinalizePlanForQueryBlock(THD *thd, Query_block *query_block)
Definition: finalize_plan.cc:655
void FindSargablePredicates(THD *thd, std::string *trace, JoinHypergraph *graph)
void EstimateAggregateCost(AccessPath *path)
void EstimateMaterializeCost(THD *thd, AccessPath *path)
Definition: cost_model.cc:178
AccessPath * FindBestQueryPlan(THD *thd, Query_block *query_block, std::string *trace)
The main entry point for the hypergraph join optimizer; takes in a query block and returns an access ...
static char * path
Definition: mysqldump.cc:133
Access paths are a query planning structure that correspond 1:1 to iterators, in that an access path ...
Definition: access_path.h:192
A struct containing a join hypergraph of a single query block, encapsulating the constraints given by...
Definition: make_join_hypergraph.h:76
hypergraph::Hypergraph graph
Definition: make_join_hypergraph.h:85
const Query_block * query_block() const
Returns a pointer to the query block that is being planned.
Definition: make_join_hypergraph.h:146