summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-10-23 03:30:27 +0300
committerunknown <monty@mysql.com>2004-10-23 03:30:27 +0300
commit08c39dd283a8723912f5ce798701af3d25aa2747 (patch)
tree1f64399a0e4969a64a4f1500ed9f131f3cc00bf5 /mysql-test
parent371301d78675214f5bea1c66cb24796882792de4 (diff)
downloadmariadb-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.result6
-rw-r--r--mysql-test/r/key.result8
-rw-r--r--mysql-test/r/ps.result6
-rw-r--r--mysql-test/t/heap.test10
-rw-r--r--mysql-test/t/key.test11
-rw-r--r--mysql-test/t/ps.test13
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;
+