summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <gluh@gluh.(none)>2006-11-21 14:04:43 +0400
committerunknown <gluh@gluh.(none)>2006-11-21 14:04:43 +0400
commit3a64adc4ea0281eddfd7ba4a5262ef6d6b497ceb (patch)
treea32cc83008be0bc46d4d620a00273dfb2ff558f3
parent25c21042dbfeebff42d1cf7880da64ba7cd2bbfa (diff)
parent1ae9f3b985c59f0c94922cb2bc3c186abae5c619 (diff)
downloadmariadb-git-3a64adc4ea0281eddfd7ba4a5262ef6d6b497ceb.tar.gz
Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt sql/sql_select.cc: Auto merged mysql-test/r/information_schema.result: SCCS merged mysql-test/t/information_schema.test: SCCS merged
-rw-r--r--mysql-test/r/information_schema.result15
-rw-r--r--mysql-test/t/information_schema.test14
-rw-r--r--sql/sql_select.cc2
3 files changed, 31 insertions, 0 deletions
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result
index 305e89f0325..2caa11f245b 100644
--- a/mysql-test/r/information_schema.result
+++ b/mysql-test/r/information_schema.result
@@ -1329,6 +1329,21 @@ COLUMN_NAME MD5(COLUMN_DEFAULT) LENGTH(COLUMN_DEFAULT) COLUMN_DEFAULT=get_value(
fld1 7cf7a6782be951a1f2464a350da926a5 65532 1
DROP TABLE bug23037;
DROP FUNCTION get_value;
+create view v1 as
+select table_schema as object_schema,
+table_name as object_name,
+table_type as object_type
+from information_schema.tables
+order by object_schema;
+explain select * from v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
+2 DERIVED tables ALL NULL NULL NULL NULL 2 Using filesort
+explain select * from (select table_name from information_schema.tables) as a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
+2 DERIVED tables ALL NULL NULL NULL NULL 2
+drop view v1;
End of 5.0 tests.
select * from information_schema.engines WHERE ENGINE="MyISAM";
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
index 4ae88736b98..19375cae269 100644
--- a/mysql-test/t/information_schema.test
+++ b/mysql-test/t/information_schema.test
@@ -974,6 +974,20 @@ SELECT COLUMN_NAME, MD5(COLUMN_DEFAULT), LENGTH(COLUMN_DEFAULT), COLUMN_DEFAULT=
DROP TABLE bug23037;
DROP FUNCTION get_value;
+
+#
+# Bug#22413: EXPLAIN SELECT FROM view with ORDER BY yield server crash
+#
+create view v1 as
+select table_schema as object_schema,
+ table_name as object_name,
+ table_type as object_type
+from information_schema.tables
+order by object_schema;
+explain select * from v1;
+explain select * from (select table_name from information_schema.tables) as a;
+drop view v1;
+
--echo End of 5.0 tests.
#
# Show engines
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 231a760453c..88bb6ea7518 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1474,6 +1474,7 @@ JOIN::exec()
curr_join->examined_rows= 0;
if ((curr_join->select_lex->options & OPTION_SCHEMA_TABLE) &&
+ !thd->lex->describe &&
get_schema_tables_result(curr_join))
{
DBUG_VOID_RETURN;
@@ -12499,6 +12500,7 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order,
/* Fill schema tables with data before filesort if it's necessary */
if ((join->select_lex->options & OPTION_SCHEMA_TABLE) &&
+ !thd->lex->describe &&
get_schema_tables_result(join))
goto err;