summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2001-04-10 10:21:27 -0600
committerunknown <sasha@mysql.sashanet.com>2001-04-10 10:21:27 -0600
commit6b464d84ce58f07e1a3e4b98a1d8f5eb9146f00c (patch)
tree9b857bd28cfab559278829ef76e2f68438367bea /mysql-test
parent9b55716a5b9f8d6badea40b553944d8b352fe283 (diff)
parent494a3a0fc74ef5ea5547e54603808b11221ec4c1 (diff)
downloadmariadb-git-6b464d84ce58f07e1a3e4b98a1d8f5eb9146f00c.tar.gz
Merge work:/home/bk/mysql
into mysql.sashanet.com:/home/sasha/src/bk/mysql
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/null_key.result28
-rw-r--r--mysql-test/t/null_key.test46
2 files changed, 74 insertions, 0 deletions
diff --git a/mysql-test/r/null_key.result b/mysql-test/r/null_key.result
index 98c43b20b01..ead1dc29326 100644
--- a/mysql-test/r/null_key.result
+++ b/mysql-test/r/null_key.result
@@ -92,3 +92,31 @@ NULL 9 0
NULL 9 0
a b c
6 6 0
+table type possible_keys key key_len ref rows Extra
+t1 ref idx1 idx1 5 const 1 where used
+table type possible_keys key key_len ref rows Extra
+t1 const idx1 idx1 5 const 1
+id
+101
+102
+105
+106
+109
+110
+id
+101
+102
+105
+106
+109
+110
+id uniq_id
+3 1
+4 2
+7 3
+8 4
+id uniq_id
+3 1
+4 2
+7 3
+8 4
diff --git a/mysql-test/t/null_key.test b/mysql-test/t/null_key.test
index 759f4a432da..e5d8fc59e4f 100644
--- a/mysql-test/t/null_key.test
+++ b/mysql-test/t/null_key.test
@@ -45,3 +45,49 @@ select * from t1 where (a is null or a = 7) and b=7 and c=0;
select * from t1 where a is null and b=9 or a is null and b=7 limit 3;
select * from t1 where b like "6%";
drop table t1;
+
+
+#
+# The following failed for Matt Loschert
+#
+
+DROP TABLE IF EXISTS t1,t2;
+CREATE TABLE t1 (
+ id int(10) unsigned NOT NULL auto_increment,
+ uniq_id int(10) unsigned default NULL,
+ PRIMARY KEY (id),
+ UNIQUE KEY idx1 (uniq_id)
+) TYPE=MyISAM;
+
+CREATE TABLE t2 (
+ id int(10) unsigned NOT NULL auto_increment,
+ uniq_id int(10) unsigned default NULL,
+ PRIMARY KEY (id)
+) TYPE=MyISAM;
+
+INSERT INTO t1 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4),(9,NULL),(10,NULL);
+INSERT INTO t2 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4),(9,NULL),(10,NULL);
+
+#
+# Check IS NULL optimization
+#
+explain select id from t1 where uniq_id is null;
+explain select id from t1 where uniq_id =1;
+#
+# Check updates
+#
+UPDATE t1 SET id=id+100 where uniq_id is null;
+UPDATE t2 SET id=id+100 where uniq_id is null;
+select id from t1 where uniq_id is null;
+select id from t2 where uniq_id is null;
+#
+# Delete all records from each table where the uniq_id field is null
+#
+DELETE FROM t1 WHERE uniq_id IS NULL;
+DELETE FROM t2 WHERE uniq_id IS NULL;
+#
+# Select what is left -- notice the difference
+#
+SELECT * FROM t1 ORDER BY uniq_id, id;
+SELECT * FROM t2 ORDER BY uniq_id, id;
+DROP table t1,t2;