summaryrefslogtreecommitdiff
path: root/mysql-test/t/merge.test
diff options
context:
space:
mode:
authorunknown <svoj@mysql.com/april.(none)>2006-09-28 22:10:06 +0500
committerunknown <svoj@mysql.com/april.(none)>2006-09-28 22:10:06 +0500
commit7d915f01934d73cf2500618fc7f5148768cfd1b8 (patch)
tree5b56c6cdb8550603c89fdebaffbeb7bf12678aaa /mysql-test/t/merge.test
parent186573b3d6301532b5d5fa9b470335e19f49769c (diff)
downloadmariadb-git-7d915f01934d73cf2500618fc7f5148768cfd1b8.tar.gz
BUG#21617 - crash when selecting from merge table with inconsistent indexes
Crash may happen when selecting from a merge table that has underlying tables with less indexes than in a merge table itself. If number of keys in merge table is not bigger than requested key number, return error. myisammrg/myrg_open.c: Store min(number of keys) in m_info instead of number of keys in last underlying table. myisammrg/myrg_queue.c: Return error if inx passed to _myrg_init_queue function is not less than number of keys. mysql-test/r/merge.result: A test case for bug#21617. mysql-test/t/merge.test: A test case for bug#21617. mysys/queues.c: Replaced annoying ifndef DBUG_OFF with DBUG_ASSERT, fixed coding style. The problem was that having queue overrun in debug build was hidden with this ifdef.
Diffstat (limited to 'mysql-test/t/merge.test')
-rw-r--r--mysql-test/t/merge.test11
1 files changed, 11 insertions, 0 deletions
diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test
index a723443b395..219a33d344b 100644
--- a/mysql-test/t/merge.test
+++ b/mysql-test/t/merge.test
@@ -376,4 +376,15 @@ select * from t3;
check table t1, t2;
drop table t1, t2, t3;
+#
+# BUG#21617 - crash when selecting from merge table with inconsistent
+# indexes
+#
+CREATE TABLE t1(a INT);
+INSERT INTO t1 VALUES(2),(1);
+CREATE TABLE t2(a INT, KEY(a)) ENGINE=MERGE UNION=(t1);
+--error 1030
+SELECT * FROM t2 WHERE a=2;
+DROP TABLE t1, t2;
+
# End of 4.1 tests