flush bulk-insert tree on dup key
This commit is contained in:
parent
e0e42a7918
commit
e3dee590c1
@ -152,6 +152,17 @@ err:
|
|||||||
save_errno=my_errno;
|
save_errno=my_errno;
|
||||||
if (my_errno == HA_ERR_FOUND_DUPP_KEY || my_errno == HA_ERR_RECORD_FILE_FULL)
|
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;
|
info->errkey= (int) i;
|
||||||
while ( i-- > 0)
|
while ( i-- > 0)
|
||||||
{
|
{
|
||||||
|
5
mysql-test/r/bulk_replace.result
Normal file
5
mysql-test/r/bulk_replace.result
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
a b c
|
||||||
|
3 1 3
|
||||||
|
2 2 2
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
14
mysql-test/t/bulk_replace.test
Normal file
14
mysql-test/t/bulk_replace.test
Normal file
@ -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;
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user