summaryrefslogtreecommitdiff
path: root/sql/sql_class.cc
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2014-05-27 21:04:45 +0400
committerSergei Petrunia <psergey@askmonty.org>2014-05-27 21:04:45 +0400
commit5cfd3270ec79238b27765af3062ae7d97f6f06d0 (patch)
tree2bfa2bb941567c1eb7f81d7b86962973e6fbf1c6 /sql/sql_class.cc
parent0925ab9d88f4328810d25392333a4cac11c6e694 (diff)
downloadmariadb-git-10.1-explain-json.tar.gz
MDEV-6109: EXPLAIN JSON10.1-explain-json
- First code, "EXPLAIN FORMAT=JSON stmt" and "ANALYZE FORMAT=JSON stmt" work for basic queries. Complex constructs (e.g subqueries, etc) not yet supported. - No test infrastructure yet
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r--sql/sql_class.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 8d6ddc0bb08..3d1476715e5 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -2271,7 +2271,10 @@ CHANGED_TABLE_LIST* THD::changed_table_dup(const char *key, long key_length)
int THD::send_explain_fields(select_result *result)
{
List<Item> field_list;
- make_explain_field_list(field_list);
+ if (lex->explain_json)
+ make_explain_json_field_list(field_list);
+ else
+ make_explain_field_list(field_list);
result->prepare(field_list, NULL);
return (result->send_result_set_metadata(field_list,
Protocol::SEND_NUM_ROWS |
@@ -2279,6 +2282,13 @@ int THD::send_explain_fields(select_result *result)
}
+void THD::make_explain_json_field_list(List<Item> &field_list)
+{
+ Item *item= new Item_empty_string("EXPLAIN", 78, system_charset_info);
+ field_list.push_back(item);
+}
+
+
/*
Populate the provided field_list with EXPLAIN output columns.
this->lex->describe has the EXPLAIN flags