summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <svoj@april.(none)>2006-05-11 21:15:37 +0500
committerunknown <svoj@april.(none)>2006-05-11 21:15:37 +0500
commitca88ca16d09004430bfff91f188a94c4967a4a5a (patch)
treefd49c86fda5c965f3578c980c683b4cde3dc6a46
parent60bb69aa04a1795d6c1156e9814ce446662a8967 (diff)
downloadmariadb-git-ca88ca16d09004430bfff91f188a94c4967a4a5a.tar.gz
BUG#12873 - BTREE index on MEMORY table with multiple NULL values
doesn't work properly Unique BTREE index on MEMORY table refuse multiple NULL values. Fixed search_flag to allow multiple null values inside unique key. heap/hp_write.c: Fixed search_flag to allow multiple null values inside unique key. mysql-test/r/heap_btree.result: Testcase for BUG#12873. mysql-test/t/heap_btree.test: Testcase for BUG#12873.
-rw-r--r--heap/hp_write.c2
-rw-r--r--mysql-test/r/heap_btree.result3
-rw-r--r--mysql-test/t/heap_btree.test8
3 files changed, 12 insertions, 1 deletions
diff --git a/heap/hp_write.c b/heap/hp_write.c
index a60d32eecb6..bc94e3bfae4 100644
--- a/heap/hp_write.c
+++ b/heap/hp_write.c
@@ -105,7 +105,7 @@ int hp_rb_write_key(HP_INFO *info, HP_KEYDEF *keyinfo, const byte *record,
custom_arg.key_length= hp_rb_make_key(keyinfo, info->recbuf, record, recpos);
if (keyinfo->flag & HA_NOSAME)
{
- custom_arg.search_flag= SEARCH_FIND | SEARCH_SAME | SEARCH_UPDATE;
+ custom_arg.search_flag= SEARCH_FIND | SEARCH_UPDATE;
keyinfo->rb_tree.flag= TREE_NO_DUPS;
}
else
diff --git a/mysql-test/r/heap_btree.result b/mysql-test/r/heap_btree.result
index b63eaf7e48c..4b05e8f44e1 100644
--- a/mysql-test/r/heap_btree.result
+++ b/mysql-test/r/heap_btree.result
@@ -256,3 +256,6 @@ SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE()
INDEX_LENGTH
21
DROP TABLE t1;
+CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES(NULL),(NULL);
+DROP TABLE t1;
diff --git a/mysql-test/t/heap_btree.test b/mysql-test/t/heap_btree.test
index f1b9d290885..fb715fccefe 100644
--- a/mysql-test/t/heap_btree.test
+++ b/mysql-test/t/heap_btree.test
@@ -176,4 +176,12 @@ UPDATE t1 SET val=1;
SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='t1';
DROP TABLE t1;
+#
+# BUG#12873 - BTREE index on MEMORY table with multiple NULL values doesn't
+# work properly
+#
+CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES(NULL),(NULL);
+DROP TABLE t1;
+
# End of 4.1 tests