1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +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

@ -309,4 +309,37 @@ EXPLAIN
}
}
drop table t1;
#
# Join buffering
#
create table t1 (a int, b int);
insert into t1 select A.a+10*B.a, A.a+10*B.a from t0 A, t0 B;
explain format=json
select * from t1 A, t1 B where A.a=B.a and A.b < 3 and B.b < 5;
EXPLAIN
{
"query_block": {
"select_id": 1,
"table": {
"table_name": "A",
"access_type": "ALL",
"rows": 100,
"filtered": 100,
"attached_condition": "(A.b < 3)"
},
"block-nl-join": {
"table": {
"table_name": "B",
"access_type": "ALL",
"rows": 100,
"filtered": 100,
"attached_condition": "(B.b < 5)"
},
"buffer_type": "flat",
"join_type": "BNL",
"attached_condition": "(B.a = A.a)"
}
}
}
drop table t1;
drop table t0;