diff options
author | unknown <monty@mysql.com> | 2004-10-23 03:30:27 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-10-23 03:30:27 +0300 |
commit | 08c39dd283a8723912f5ce798701af3d25aa2747 (patch) | |
tree | 1f64399a0e4969a64a4f1500ed9f131f3cc00bf5 /mysql-test | |
parent | 371301d78675214f5bea1c66cb24796882792de4 (diff) | |
download | mariadb-git-08c39dd283a8723912f5ce798701af3d25aa2747.tar.gz |
Fixed wrong range test code for HEAP tables. This caused a crash when doing a range test with a key that didn't have lower or upper bound (Bug #6082)
More test cases
mysql-test/r/heap.result:
Test for bug #6082 (delete with NOT NULL)
mysql-test/r/key.result:
More tests for BUG#6151 - myisam index corruption
mysql-test/r/ps.result:
Test of bug #6047 "Permission problem when executing mysql_stmt_execute with derived table"
mysql-test/t/heap.test:
Test for bug #6082 (delete with NOT NULL)
mysql-test/t/key.test:
More tests for BUG#6151 - myisam index corruption
mysql-test/t/ps.test:
Test of bug #6047 "Permission problem when executing mysql_stmt_execute with derived table"
sql/ha_heap.cc:
Fixed wrong range test code for HEAP tables. This caused a crash when doing a range test with a key that didn't have lower or upper bound
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/heap.result | 6 | ||||
-rw-r--r-- | mysql-test/r/key.result | 8 | ||||
-rw-r--r-- | mysql-test/r/ps.result | 6 | ||||
-rw-r--r-- | mysql-test/t/heap.test | 10 | ||||
-rw-r--r-- | mysql-test/t/key.test | 11 | ||||
-rw-r--r-- | mysql-test/t/ps.test | 13 |
6 files changed, 54 insertions, 0 deletions
diff --git a/mysql-test/r/heap.result b/mysql-test/r/heap.result index c49c9abb368..92b694b5117 100644 --- a/mysql-test/r/heap.result +++ b/mysql-test/r/heap.result @@ -227,3 +227,9 @@ SELECT MAX(job_title_id) FROM job_titles; MAX(job_title_id) NULL DROP TABLE job_titles; +CREATE TABLE t1 (a INT NOT NULL, B INT, KEY(B)) ENGINE=HEAP; +INSERT INTO t1 VALUES(1,1), (1,NULL); +SELECT * FROM t1 WHERE B is not null; +a B +1 1 +DROP TABLE t1; diff --git a/mysql-test/r/key.result b/mysql-test/r/key.result index 89307cf7080..e3b341fcaf8 100644 --- a/mysql-test/r/key.result +++ b/mysql-test/r/key.result @@ -296,4 +296,12 @@ Table Op Msg_type Msg_text test.t1 check status OK select c1 from t1 where c2='\Z\Z\Z\Z'; c1 +truncate table t1; +insert into t1 values(1,"aaaa"),(2,"aaab"),(3,"aaac"),(4,"aaccc"); +delete from t1 where c1=3; +delete from t1 where c1=1; +delete from t1 where c1=4; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK drop table t1; diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index e1391a496c6..6cad58282a2 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -450,3 +450,9 @@ found_rows() 10 deallocate prepare stmt; drop table t1; +CREATE TABLE t1 (N int, M tinyint); +INSERT INTO t1 VALUES (1,0),(1,0),(2,0),(2,0),(3,0); +PREPARE stmt FROM 'UPDATE t1 AS P1 INNER JOIN (SELECT N FROM t1 GROUP BY N HAVING COUNT(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2'; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +DROP TABLE t1; diff --git a/mysql-test/t/heap.test b/mysql-test/t/heap.test index 37fc5a43227..e1776245d9e 100644 --- a/mysql-test/t/heap.test +++ b/mysql-test/t/heap.test @@ -164,3 +164,13 @@ CREATE TABLE `job_titles` ( SELECT MAX(job_title_id) FROM job_titles; DROP TABLE job_titles; + +# +# Test of delete with NOT NULL +# (Bug #6082) +# + +CREATE TABLE t1 (a INT NOT NULL, B INT, KEY(B)) ENGINE=HEAP; +INSERT INTO t1 VALUES(1,1), (1,NULL); +SELECT * FROM t1 WHERE B is not null; +DROP TABLE t1; diff --git a/mysql-test/t/key.test b/mysql-test/t/key.test index 620b8e415b8..662baa5ea9d 100644 --- a/mysql-test/t/key.test +++ b/mysql-test/t/key.test @@ -272,5 +272,16 @@ select c1 from t1 where c2='\Z\Z\Z\Z'; DELETE FROM t1 WHERE (c1 = 3); check table t1; select c1 from t1 where c2='\Z\Z\Z\Z'; + +# +# test delete of keys in a different order +# +truncate table t1; +insert into t1 values(1,"aaaa"),(2,"aaab"),(3,"aaac"),(4,"aaccc"); +delete from t1 where c1=3; +delete from t1 where c1=1; +delete from t1 where c1=4; +check table t1; + drop table t1; diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index 76da86dc6df..978ce2bc2c3 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -449,3 +449,16 @@ execute stmt; select found_rows(); deallocate prepare stmt; drop table t1; + +# +# Bug#6047 "permission problem when executing mysql_stmt_execute with derived +# table" +# + +CREATE TABLE t1 (N int, M tinyint); +INSERT INTO t1 VALUES (1,0),(1,0),(2,0),(2,0),(3,0); +PREPARE stmt FROM 'UPDATE t1 AS P1 INNER JOIN (SELECT N FROM t1 GROUP BY N HAVING COUNT(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2'; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +DROP TABLE t1; + |