mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
MWL#89 Addressing Sergey's review comments - Part 1.
Address the 'trivial' part of Sergey's review of MWL#89.
This commit is contained in:
parent
c22045aa59
commit
56c0e19ed0
5 changed files with 19 additions and 17 deletions
|
|
@ -536,7 +536,7 @@ public:
|
|||
SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM, TYPE_HOLDER,
|
||||
PARAM_ITEM, TRIGGER_FIELD_ITEM, DECIMAL_ITEM,
|
||||
XPATH_NODESET, XPATH_NODESET_CMP,
|
||||
VIEW_FIXER_ITEM, EXPR_CACHE_ITEM, UNKNOWN_ITEM};
|
||||
VIEW_FIXER_ITEM, EXPR_CACHE_ITEM};
|
||||
|
||||
enum cond_result { COND_UNDEF,COND_OK,COND_TRUE,COND_FALSE };
|
||||
|
||||
|
|
|
|||
|
|
@ -1766,7 +1766,7 @@ Item_in_subselect::create_single_in_to_exists_cond(JOIN * join,
|
|||
*having_item= new_having;
|
||||
}
|
||||
else
|
||||
DBUG_ASSERT(FALSE);
|
||||
DBUG_ASSERT(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3640,7 +3640,7 @@ static void remove_subq_pushed_predicates(JOIN *join, Item **where)
|
|||
|
||||
|
||||
/**
|
||||
Optimize all subqueries of a query that have were flattened into a semijoin.
|
||||
Optimize all subqueries of a query that were not flattened into a semijoin.
|
||||
|
||||
@details
|
||||
Optimize all immediate children subqueries of a query.
|
||||
|
|
@ -3699,7 +3699,7 @@ bool JOIN::optimize_unflattened_subqueries()
|
|||
|
||||
bool JOIN::choose_subquery_plan(table_map join_tables)
|
||||
{
|
||||
Query_plan_state save_qep; /* The original QEP of the subquery. */
|
||||
Join_plan_state save_qep; /* The original QEP of the subquery. */
|
||||
enum_reopt_result reopt_result= REOPT_NONE;
|
||||
Item_in_subselect *in_subs;
|
||||
|
||||
|
|
|
|||
|
|
@ -959,7 +959,8 @@ JOIN::optimize()
|
|||
*/
|
||||
if ((res=opt_sum_query(thd, select_lex->leaf_tables, all_fields, conds)))
|
||||
{
|
||||
if (res == HA_ERR_KEY_NOT_FOUND || res < 0)
|
||||
DBUG_ASSERT(res >= 0);
|
||||
if (res == HA_ERR_KEY_NOT_FOUND)
|
||||
{
|
||||
DBUG_PRINT("info",("No matching min/max row"));
|
||||
zero_result_cause= "No matching min/max row";
|
||||
|
|
@ -20528,7 +20529,7 @@ void JOIN::set_allowed_join_cache_types()
|
|||
@param save_to The object into which the current query plan state is saved
|
||||
*/
|
||||
|
||||
void JOIN::save_query_plan(Query_plan_state *save_to)
|
||||
void JOIN::save_query_plan(Join_plan_state *save_to)
|
||||
{
|
||||
if (keyuse.elements)
|
||||
{
|
||||
|
|
@ -20558,7 +20559,7 @@ void JOIN::save_query_plan(Query_plan_state *save_to)
|
|||
@param The object from which the current query plan state is restored.
|
||||
*/
|
||||
|
||||
void JOIN::restore_query_plan(Query_plan_state *restore_from)
|
||||
void JOIN::restore_query_plan(Join_plan_state *restore_from)
|
||||
{
|
||||
if (restore_from->keyuse.elements)
|
||||
{
|
||||
|
|
@ -20607,7 +20608,7 @@ void JOIN::restore_query_plan(Query_plan_state *restore_from)
|
|||
|
||||
JOIN::enum_reopt_result
|
||||
JOIN::reoptimize(Item *added_where, table_map join_tables,
|
||||
Query_plan_state *save_to)
|
||||
Join_plan_state *save_to)
|
||||
{
|
||||
DYNAMIC_ARRAY added_keyuse;
|
||||
SARGABLE_PARAM *sargables= 0; /* Used only as a dummy parameter. */
|
||||
|
|
|
|||
|
|
@ -611,9 +611,10 @@ protected:
|
|||
|
||||
/**
|
||||
The subset of the state of a JOIN that represents an optimized query
|
||||
execution plan. Allows saving/restoring different plans for the same query.
|
||||
execution plan. Allows saving/restoring different JOIN plans for the same
|
||||
query.
|
||||
*/
|
||||
class Query_plan_state {
|
||||
class Join_plan_state {
|
||||
public:
|
||||
DYNAMIC_ARRAY keyuse; /* Copy of the JOIN::keyuse array. */
|
||||
POSITION best_positions[MAX_TABLES+1]; /* Copy of JOIN::best_positions */
|
||||
|
|
@ -622,13 +623,13 @@ protected:
|
|||
/* Copies of JOIN_TAB::checked_keys for each JOIN_TAB. */
|
||||
key_map join_tab_checked_keys[MAX_TABLES];
|
||||
public:
|
||||
Query_plan_state()
|
||||
Join_plan_state()
|
||||
{
|
||||
keyuse.elements= 0;
|
||||
keyuse.buffer= NULL;
|
||||
}
|
||||
Query_plan_state(JOIN *join);
|
||||
~Query_plan_state()
|
||||
Join_plan_state(JOIN *join);
|
||||
~Join_plan_state()
|
||||
{
|
||||
delete_dynamic(&keyuse);
|
||||
}
|
||||
|
|
@ -644,9 +645,9 @@ protected:
|
|||
|
||||
/* Support for plan reoptimization with rewritten conditions. */
|
||||
enum_reopt_result reoptimize(Item *added_where, table_map join_tables,
|
||||
Query_plan_state *save_to);
|
||||
void save_query_plan(Query_plan_state *save_to);
|
||||
void restore_query_plan(Query_plan_state *restore_from);
|
||||
Join_plan_state *save_to);
|
||||
void save_query_plan(Join_plan_state *save_to);
|
||||
void restore_query_plan(Join_plan_state *restore_from);
|
||||
/* Choose a subquery plan for a table-less subquery. */
|
||||
bool choose_tableless_subquery_plan();
|
||||
|
||||
|
|
@ -748,7 +749,7 @@ public:
|
|||
*/
|
||||
double best_read;
|
||||
/*
|
||||
Estimated result rows (fanout) of the whole query. If this is a subquery
|
||||
Estimated result rows (fanout) of the join operation. If this is a subquery
|
||||
that is reexecuted multiple times, this value includes the estiamted # of
|
||||
reexecutions. This value is equal to the multiplication of all
|
||||
join->positions[i].records_read of a JOIN.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue