summaryrefslogtreecommitdiff
path: root/sql/sql_explain.h
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2014-12-06 02:23:37 +0300
committerSergei Petrunia <psergey@askmonty.org>2014-12-06 02:23:37 +0300
commita80a797686e72644e0ad479fdfd2a3b56c4ddf05 (patch)
tree23bc5442b16cfa432e0ae940f14ffa748aff43e5 /sql/sql_explain.h
parent9cac7649eade35f2e5a52e4107067701de315abc (diff)
downloadmariadb-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.h19
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;