summaryrefslogtreecommitdiff
path: root/sql/sql_explain.h
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2014-11-27 23:10:44 +0300
committerSergei Petrunia <psergey@askmonty.org>2014-11-27 23:10:44 +0300
commit461dbd80d2ea96034f330dd238282d2167ed2c4d (patch)
tree814c5063aeecce0af411b9bc2d85df520bd62f15 /sql/sql_explain.h
parent37c444e1a079b25d0a34efbbc2fadfae17999966 (diff)
downloadmariadb-git-461dbd80d2ea96034f330dd238282d2167ed2c4d.tar.gz
EXPLAIN FORMAT=JSON: support join buffering
- Basic support for JOIN buffering - The output is not polished but catches the main point: tab->select_cond and tab->cache_select->cond are printed separately. - Hash join support is poor still. - Also fixed identation in JOIN_TAB::save_explain_data
Diffstat (limited to 'sql/sql_explain.h')
-rw-r--r--sql/sql_explain.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/sql_explain.h b/sql/sql_explain.h
index 39392d370d9..6cc8e012a95 100644
--- a/sql/sql_explain.h
+++ b/sql/sql_explain.h
@@ -488,6 +488,12 @@ private:
class Explain_table_access : public Sql_alloc
{
public:
+ Explain_table_access() :
+ where_cond(NULL),
+ cache_cond(NULL),
+ pushed_index_cond(NULL)
+ {}
+
void push_extra(enum explain_extra_tag extra_tag);
/* Internals */
@@ -558,9 +564,12 @@ public:
/*
Note: lifespan of WHERE condition is less than lifespan of this object.
- THe below is valid if tags include "ET_USING_WHERE".
+ The below two are valid if tags include "ET_USING_WHERE".
+ (TODO: indexsubquery may put ET_USING_WHERE without setting where_cond?)
*/
Item *where_cond;
+ Item *cache_cond;
+
Item *pushed_index_cond;
int print_explain(select_result_sink *output, uint8 explain_flags,