summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2012-04-13 14:01:15 -0700
committerSergey Petrunya <psergey@askmonty.org>2012-04-13 14:01:15 -0700
commit8c4fc9ba75db308ba60a2efefa7cf5aa6b9b6447 (patch)
tree7236f5230d9245cc1295d5bc4ade92facfcceefa /sql/sql_select.h
parentf081107fe01a1d9a6d7d88e3d9c7c5e99aec8144 (diff)
parentca020dfa9e8668ce52eaff92c157097bba671ec1 (diff)
downloadmariadb-git-8c4fc9ba75db308ba60a2efefa7cf5aa6b9b6447.tar.gz
MWL#182: Explain running statements: merge with 5.3-main
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r--sql/sql_select.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h
index a5c0a797ed6..779702e4b1c 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -1164,7 +1164,7 @@ public:
const char *zero_result_cause; ///< not 0 if exec must return zero result
bool union_part; ///< this subselect is part of union
- bool optimized; ///< flag to avoid double optimization in EXPLAIN
+ int optimized; ///< flag to avoid double optimization in EXPLAIN
bool initialized; ///< flag to avoid double init_execution calls
/*
@@ -1276,9 +1276,11 @@ public:
SELECT_LEX_UNIT *unit);
bool prepare_stage2();
int optimize();
+ int optimize_inner();
int reinit();
int init_execution();
void exec();
+ void exec_inner();
int destroy();
void restore_tmp();
bool alloc_func_list();
@@ -1388,6 +1390,10 @@ public:
{
return (unit->item && unit->item->is_in_predicate());
}
+
+ int print_explain(select_result_sink *result, bool on_the_fly,
+ bool need_tmp_table, bool need_order,
+ bool distinct,const char *message);
private:
/**
TRUE if the query contains an aggregate function but has no GROUP
@@ -1682,6 +1688,9 @@ inline bool optimizer_flag(THD *thd, uint flag)
return (thd->variables.optimizer_switch & flag);
}
+int print_fake_select_lex_join(select_result_sink *result, bool on_the_fly,
+ SELECT_LEX *select_lex, uint8 select_options);
+
/* Table elimination entry point function */
void eliminate_tables(JOIN *join);