summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2001-09-18 00:46:16 +0200
committerunknown <serg@serg.mysql.com>2001-09-18 00:46:16 +0200
commit128d1bad54c440c735a01b85ae48a7a59773ccf9 (patch)
tree2c9dafde4d6b651e9576fe99bb281b96bfc8f911
parentd8ae9669cd11f9c61105a9cbf19f9318a0e783fc (diff)
parente3dee590c1d97710c629556b43826478d01b7850 (diff)
downloadmariadb-git-128d1bad54c440c735a01b85ae48a7a59773ccf9.tar.gz
Merge work:/home/bk/mysql-4.0
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0 myisam/mi_write.c: Auto merged
-rw-r--r--myisam/mi_write.c11
-rw-r--r--mysql-test/r/bulk_replace.result5
-rw-r--r--mysql-test/t/bulk_replace.test14
3 files changed, 30 insertions, 0 deletions
diff --git a/myisam/mi_write.c b/myisam/mi_write.c
index 5b3e8d541c7..e1b147d02e9 100644
--- a/myisam/mi_write.c
+++ b/myisam/mi_write.c
@@ -156,6 +156,17 @@ err:
save_errno=my_errno;
if (my_errno == HA_ERR_FOUND_DUPP_KEY || my_errno == HA_ERR_RECORD_FILE_FULL)
{
+ if (info->bulk_insert)
+ {
+ int j;
+ for (j=0 ; j < share->base.keys ; j++)
+ {
+ if (is_tree_inited(& info->bulk_insert[j]))
+ {
+ reset_tree(& info->bulk_insert[j]);
+ }
+ }
+ }
info->errkey= (int) i;
while ( i-- > 0)
{
diff --git a/mysql-test/r/bulk_replace.result b/mysql-test/r/bulk_replace.result
new file mode 100644
index 00000000000..80eedd277a1
--- /dev/null
+++ b/mysql-test/r/bulk_replace.result
@@ -0,0 +1,5 @@
+a b c
+3 1 3
+2 2 2
+Table Op Msg_type Msg_text
+test.t1 check status OK
diff --git a/mysql-test/t/bulk_replace.test b/mysql-test/t/bulk_replace.test
new file mode 100644
index 00000000000..d366004c16f
--- /dev/null
+++ b/mysql-test/t/bulk_replace.test
@@ -0,0 +1,14 @@
+#
+# this is a test of bulk-insert code
+# as used by REPLACE
+#
+# by Monty
+#
+
+drop table if exists t1;
+CREATE TABLE t1 (a int, unique (a), b int not null, unique(b), c int not null, index(c));
+replace into t1 values (1,1,1),(2,2,2),(3,1,3);
+select * from t1;
+check table t1;
+drop table t1;
+