diff options
author | unknown <svoj@mysql.com/april.(none)> | 2006-09-28 22:10:06 +0500 |
---|---|---|
committer | unknown <svoj@mysql.com/april.(none)> | 2006-09-28 22:10:06 +0500 |
commit | 7d915f01934d73cf2500618fc7f5148768cfd1b8 (patch) | |
tree | 5b56c6cdb8550603c89fdebaffbeb7bf12678aaa /mysql-test/t/merge.test | |
parent | 186573b3d6301532b5d5fa9b470335e19f49769c (diff) | |
download | mariadb-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.test | 11 |
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 |