1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

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
This commit is contained in:
Sergei Petrunia
2014-11-27 23:10:44 +03:00
parent 37c444e1a0
commit 461dbd80d2
5 changed files with 97 additions and 12 deletions

View File

@@ -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,