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:
@ -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;
|
||||
|
Reference in New Issue
Block a user