diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2014-12-06 02:23:37 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2014-12-06 02:23:37 +0300 |
commit | a80a797686e72644e0ad479fdfd2a3b56c4ddf05 (patch) | |
tree | 23bc5442b16cfa432e0ae940f14ffa748aff43e5 /sql/sql_explain.h | |
parent | 9cac7649eade35f2e5a52e4107067701de315abc (diff) | |
download | mariadb-git-a80a797686e72644e0ad479fdfd2a3b56c4ddf05.tar.gz |
EXPLAIN FORMAT=JSON: Support "range checked for each record"
Diffstat (limited to 'sql/sql_explain.h')
-rw-r--r-- | sql/sql_explain.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/sql/sql_explain.h b/sql/sql_explain.h index 5e96cd78657..ba5a5c2e6ec 100644 --- a/sql/sql_explain.h +++ b/sql/sql_explain.h @@ -539,6 +539,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; |