1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

EXPLAIN FORMAT=JSON: Support "range checked for each record"

This commit is contained in:
Sergei Petrunia
2014-12-06 02:23:37 +03:00
parent 9cac7649ea
commit a80a797686
5 changed files with 82 additions and 15 deletions

View File

@@ -538,6 +538,18 @@ private:
};
/*
Data structure for "range checked for each record".
It's a set of keys, tabular explain prints hex bitmap, json prints key names.
*/
class Explain_range_checked_fer : public Sql_alloc
{
public:
String_list key_set;
key_map keys_map;
};
/*
EXPLAIN data structure for a single JOIN_TAB.
*/
@@ -549,6 +561,7 @@ public:
derived_select_number(0),
non_merged_sjm_number(0),
extra_tags(root),
range_checked_fer(NULL),
start_dups_weedout(false),
end_dups_weedout(false),
where_cond(NULL),
@@ -618,9 +631,9 @@ public:
// Valid if ET_USING tag is present
Explain_quick_select *quick_info;
// valid with ET_RANGE_CHECKED_FOR_EACH_RECORD
key_map range_checked_map;
/* Non-NULL values means this tab uses "range checked for each record" */
Explain_range_checked_fer *range_checked_fer;
// valid with ET_USING_JOIN_BUFFER
EXPLAIN_BKA_TYPE bka_type;