summaryrefslogtreecommitdiff
path: root/sql/sql_explain.cc
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2014-06-24 23:58:13 +0400
committerSergei Petrunia <psergey@askmonty.org>2014-06-24 23:58:13 +0400
commitc3cfb6910a50f7ff094b03f9ef0b5d908f5e4760 (patch)
tree71a372728d4e3e3a70eb7a13ee29e2ea9237446c /sql/sql_explain.cc
parent06a87d77e62bad8ded0a384a70e13114011bf060 (diff)
downloadmariadb-git-c3cfb6910a50f7ff094b03f9ef0b5d908f5e4760.tar.gz
MDEV-406: ANALYZE $stmt: Scans that never executed will have r_rows=NULL
Diffstat (limited to 'sql/sql_explain.cc')
-rw-r--r--sql/sql_explain.cc30
1 files changed, 22 insertions, 8 deletions
diff --git a/sql/sql_explain.cc b/sql/sql_explain.cc
index 58029ba7907..adfceae346c 100644
--- a/sql/sql_explain.cc
+++ b/sql/sql_explain.cc
@@ -553,9 +553,16 @@ int Explain_table_access::print_explain(select_result_sink *output, uint8 explai
/* `r_rows` */
if (is_analyze)
{
- ha_rows avg_rows= tracker.get_avg_rows();
- item_list.push_back(new Item_int((longlong) (ulonglong) avg_rows,
- MY_INT64_NUM_DECIMAL_DIGITS));
+ if (!tracker.has_scans())
+ {
+ item_list.push_back(item_null);
+ }
+ else
+ {
+ ha_rows avg_rows= tracker.get_avg_rows();
+ item_list.push_back(new Item_int((longlong) (ulonglong) avg_rows,
+ MY_INT64_NUM_DECIMAL_DIGITS));
+ }
}
/* `filtered` */
@@ -572,12 +579,19 @@ int Explain_table_access::print_explain(select_result_sink *output, uint8 explai
/* `r_filtered` */
if (is_analyze)
{
- double r_filtered;
- if (tracker.r_rows > 0)
- r_filtered= 100.0 * (double)tracker.r_rows_after_table_cond / tracker.r_rows;
+ if (!tracker.has_scans())
+ {
+ item_list.push_back(item_null);
+ }
else
- r_filtered= 100.0;
- item_list.push_back(new Item_float(r_filtered, 2));
+ {
+ double r_filtered;
+ if (tracker.r_rows > 0)
+ r_filtered= 100.0 * (double)tracker.r_rows_after_table_cond / tracker.r_rows;
+ else
+ r_filtered= 100.0;
+ item_list.push_back(new Item_float(r_filtered, 2));
+ }
}
/* `Extra` */