summaryrefslogtreecommitdiff
path: root/sql/sql_explain.cc
diff options
context:
space:
mode:
authorSergei Petrunia <sergey@mariadb.com>2022-11-19 21:00:23 +0300
committerMonty <monty@mariadb.org>2022-12-20 23:11:29 +0200
commitc4e1aabf33e09ebf0a7e59520ab9144186539b3c (patch)
treebf631b3ef423973360c8b8cc4c93ed3642764fbe /sql/sql_explain.cc
parent048bdfe2f5f9b66264e952e33a7fe607e1156df1 (diff)
downloadmariadb-git-c4e1aabf33e09ebf0a7e59520ab9144186539b3c.tar.gz
MDEV-30032: EXPLAIN FORMAT=JSON output: print costs
Basic printout for join and table execution costs.
Diffstat (limited to 'sql/sql_explain.cc')
-rw-r--r--sql/sql_explain.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/sql_explain.cc b/sql/sql_explain.cc
index b4adfe8546c..fd5f675add5 100644
--- a/sql/sql_explain.cc
+++ b/sql/sql_explain.cc
@@ -1033,6 +1033,9 @@ void Explain_select::print_explain_json(Explain_query *query,
writer->add_member("select_id").add_ll(select_id);
add_linkage(writer);
+ if (cost != 0.0)
+ writer->add_member("cost").add_double(cost);
+
if (is_analyze && time_tracker.get_loops())
{
writer->add_member("r_loops").add_ll(time_tracker.get_loops());
@@ -1942,7 +1945,13 @@ void Explain_table_access::print_explain_json(Explain_query *query,
else
writer->add_null();
}
+ }
+
+ if (cost != 0.0)
+ writer->add_member("cost").add_double(cost);
+ if (is_analyze)
+ {
if (op_tracker.get_loops())
{
double total_time= op_tracker.get_time_ms();