summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/my_json_writer.cc15
-rw-r--r--sql/my_json_writer.h23
-rw-r--r--sql/sql_select.cc77
3 files changed, 31 insertions, 84 deletions
diff --git a/sql/my_json_writer.cc b/sql/my_json_writer.cc
index 6f36a1e4ff3..4f933583347 100644
--- a/sql/my_json_writer.cc
+++ b/sql/my_json_writer.cc
@@ -1,4 +1,17 @@
-/* Todo: SkySQL copyrights */
+/* Copyright (C) 2014 SkySQL Ab, MariaDB Corporation Ab
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include <my_global.h>
#include "sql_priv.h"
diff --git a/sql/my_json_writer.h b/sql/my_json_writer.h
index 48e743bb720..3a7defc3566 100644
--- a/sql/my_json_writer.h
+++ b/sql/my_json_writer.h
@@ -1,8 +1,24 @@
-/* Todo: SkySQL copyrights */
+/* Copyright (C) 2014 SkySQL Ab, MariaDB Corporation Ab
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
class Json_writer;
/*
+ Single_line_formatting_helper is used by Json_writer to do better formatting
+ of JSON documents.
+
The idea is to catch arrays that can be printed on one line:
arrayName : [ "boo", 123, 456 ]
@@ -17,11 +33,6 @@ class Json_writer;
- either the pattern is broken, and we print the elements out,
- or the pattern lasts till the end of the array, and we print the
array on one line.
-
- TODO:
- fix the quoting. If we start to accumulate an array and but then it grows
- too large to be printed on one line, the elements will be printed as
- strings (even if some of them could be initially numbers).
*/
class Single_line_formatting_helper
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 985b743eaad..6ffaeff5bdf 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -23162,80 +23162,6 @@ int print_explain_message_line(select_result_sink *result,
return 0;
}
-#if 0
-int print_fake_select_lex_join(select_result_sink *result, bool on_the_fly,
- SELECT_LEX *select_lex, uint8 explain_flags)
-{
- Item *item_null= new Item_null();
- List<Item> item_list;
- if (on_the_fly)
- select_lex->set_explain_type(on_the_fly);
- /*
- here we assume that the query will return at least two rows, so we
- show "filesort" in EXPLAIN. Of course, sometimes we'll be wrong
- and no filesort will be actually done, but executing all selects in
- the UNION to provide precise EXPLAIN information will hardly be
- appreciated :)
- */
- char table_name_buffer[SAFE_NAME_LEN];
- item_list.empty();
- /* id */
- item_list.push_back(new Item_null);
- /* select_type */
- item_list.push_back(new Item_string_sys(select_lex->type));
- /* table */
- {
- SELECT_LEX *sl= select_lex->master_unit()->first_select();
- uint len= 6, lastop= 0;
- memcpy(table_name_buffer, STRING_WITH_LEN("<union"));
- for (; sl && len + lastop + 5 < NAME_LEN; sl= sl->next_select())
- {
- len+= lastop;
- lastop= my_snprintf(table_name_buffer + len, NAME_LEN - len,
- "%u,", sl->select_number);
- }
- if (sl || len + lastop >= NAME_LEN)
- {
- memcpy(table_name_buffer + len, STRING_WITH_LEN("...>") + 1);
- len+= 4;
- }
- else
- {
- len+= lastop;
- table_name_buffer[len - 1]= '>'; // change ',' to '>'
- }
- item_list.push_back(new Item_string_sys(table_name_buffer, len));
- }
- /* partitions */
- if (explain_flags & DESCRIBE_PARTITIONS)
- item_list.push_back(item_null);
- /* type */
- item_list.push_back(new Item_string_sys(join_type_str[JT_ALL]));
-
- /* possible_keys */
- item_list.push_back(item_null);
- /* key*/
- item_list.push_back(item_null);
- /* key_len */
- item_list.push_back(item_null);
- /* ref */
- item_list.push_back(item_null);
- /* in_rows */
- if (explain_flags & DESCRIBE_EXTENDED)
- item_list.push_back(item_null);
- /* rows */
- item_list.push_back(item_null);
- /* extra */
- if (select_lex->master_unit()->global_parameters()->order_list.first)
- item_list.push_back(new Item_string_sys("Using filesort", 14));
- else
- item_list.push_back(new Item_string_sys("", 0));
-
- if (result->send_data(item_list))
- return 1;
- return 0;
-}
-#endif
/*
Append MRR information from quick select to the given string
@@ -23700,7 +23626,6 @@ void JOIN_TAB::save_explain_data(Explain_table_access *eta, table_map prefix_tab
}
-
/*
Save Query Plan Footprint
@@ -23766,8 +23691,6 @@ int JOIN::save_explain_data_intern(Explain_query *output, bool need_tmp_table,
for (JOIN_TAB *tab= first_explain_order_tab(join); tab;
tab= next_explain_order_tab(join, tab))
- //for (JOIN_TAB *tab= first_breadth_first_tab(join, WALK_OPTIMIZATION_TABS); tab;
- // tab= next_breadth_first_tab(join, WALK_OPTIMIZATION_TABS, tab))
{
JOIN_TAB *saved_join_tab= NULL;
TABLE *table=tab->table;