1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug#30919

"Rows not deleted from innodb partitioned tables if --innodb_autoinc_lock_mode=0"

  Due to a previous bugfix which initializes a previously uninitialized
  variable, ha_partition::get_auto_increment() may fail to operate
  correctly when the storage engine reports that it is only reserving
  one value and one or more partitions have a different 'next-value'.
  Currently, only affects Innodb's new-style auto-increment code which
  reserves larger blocks of values and has less inter-thread contention.


mysql-test/suite/rpl/r/rpl_innodb_bug28430.result:
  Fix results - previous results shows symptoms of Bug30919
sql/ha_partition.cc:
  Bug30919
  
  ha_partition::write_row()
    Do not insert a row if a failure occurred while generating
    auto-increment value.
  
  ha_partition::get_auto_increment()
    If there is an empty 'intersection' of auto-increment values, perform
    a second pass before failing because partitions may have different
    auto-increment 'next-value' attributes.
storage/innobase/handler/ha_innodb.cc:
  Bug30919
    Only set *first_value if it is less than autoinc value. This allows
    a higher value to be hinted when operating as a partitioned table.
mysql-test/suite/rpl/r/rpl_innodb_bug30919.result:
  New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug30919.result''
mysql-test/suite/rpl/t/rpl_innodb_bug30919-master.opt:
  New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30919-master.opt''
mysql-test/suite/rpl/t/rpl_innodb_bug30919.test:
  New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30919.test''
This commit is contained in:
unknown
2007-09-08 20:26:12 -07:00
parent 67a8e6a0c1
commit db1f9468d4
6 changed files with 1159 additions and 12 deletions

View File

@ -101,10 +101,10 @@ SELECT count(*) as "Master regular" FROM test.regular_tbl;
Master regular 500
CALL test.proc_bykey();
SELECT count(*) as "Master bykey" FROM test.bykey_tbl;
Master bykey 811
Master bykey 500
CALL test.proc_byrange();
SELECT count(*) as "Master byrange" FROM test.byrange_tbl;
Master byrange 996
Master byrange 500
show create table test.byrange_tbl;
Table byrange_tbl
Create Table CREATE TABLE `byrange_tbl` (
@ -123,9 +123,9 @@ Master_User root
Master_Port 12000
Connect_Retry 1
Master_Log_File master-bin.000001
Read_Master_Log_Pos 776796
Read_Master_Log_Pos 945644
Relay_Log_File slave-relay-bin.000003
Relay_Log_Pos 776942
Relay_Log_Pos 945790
Relay_Master_Log_File master-bin.000001
Slave_IO_Running Yes
Slave_SQL_Running Yes
@ -138,8 +138,8 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
Exec_Master_Log_Pos 776796
Relay_Log_Space 777097
Exec_Master_Log_Pos 945644
Relay_Log_Space 945945
Until_Condition None
Until_Log_File
Until_Log_Pos 0
@ -158,9 +158,9 @@ Last_SQL_Error
SELECT count(*) "Slave norm" FROM test.regular_tbl;
Slave norm 500
SELECT count(*) "Slave bykey" FROM test.bykey_tbl;
Slave bykey 811
Slave bykey 500
SELECT count(*) "Slave byrange" FROM test.byrange_tbl;
Slave byrange 996
Slave byrange 500
DROP PROCEDURE test.proc_norm;
DROP PROCEDURE test.proc_bykey;
DROP PROCEDURE test.proc_byrange;