summaryrefslogtreecommitdiff
path: root/mysql-test/t/analyse.test
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2009-08-27 15:22:19 +0500
committerSergey Glukhov <Sergey.Glukhov@sun.com>2009-08-27 15:22:19 +0500
commit367c14b854f4afe6cfd41b9f56bf8fbf3c337b65 (patch)
treec872942a8df225d5829796ecab00369c6035c83e /mysql-test/t/analyse.test
parent7492d622e44d7d3fd424bd24fd53131fe06d1c22 (diff)
downloadmariadb-git-367c14b854f4afe6cfd41b9f56bf8fbf3c337b65.tar.gz
Bug#46184 Crash, SELECT ... FROM derived table procedure analyze
The crash happens because select_union object is used as result set for queries which have derived tables. select_union use temporary table as data storage and if fields count exceeds 10(count of values for procedure ANALYSE()) then we get a crash on fill_record() function. mysql-test/r/analyse.result: test result mysql-test/r/subselect.result: result fix mysql-test/t/analyse.test: test case mysql-test/t/subselect.test: test fix sql/sql_yacc.yy: The crash happens because select_union object is used as result set for queries which have derived tables. select_union use temporary table as data storage and if fields count exceeds 10(count of values for procedure ANALYSE()) then we get a crash on fill_record() function.
Diffstat (limited to 'mysql-test/t/analyse.test')
-rw-r--r--mysql-test/t/analyse.test10
1 files changed, 10 insertions, 0 deletions
diff --git a/mysql-test/t/analyse.test b/mysql-test/t/analyse.test
index efcf5f6421c..d8466df14bf 100644
--- a/mysql-test/t/analyse.test
+++ b/mysql-test/t/analyse.test
@@ -14,6 +14,7 @@ create table t2 select * from t1 procedure analyse();
select * from t2;
drop table t1,t2;
+--error ER_WRONG_USAGE
EXPLAIN SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE();
#
@@ -102,4 +103,13 @@ select f2 from t1 procedure analyse(1, 1);
select f3 from t1 procedure analyse(1, 1);
drop table t1;
+#
+# Bug#46184 Crash, SELECT ... FROM derived table procedure analyze
+#
+CREATE TABLE t1(a INT,b INT,c INT,d INT,e INT,f INT,g INT,h INT,i INT,j INT,k INT);
+INSERT INTO t1 VALUES ();
+--error ER_WRONG_USAGE
+SELECT * FROM (SELECT * FROM t1) d PROCEDURE ANALYSE();
+DROP TABLE t1;
+
--echo End of 4.1 tests