• unknown's avatar
    Bug#30919 · c48f059c
    unknown authored
      "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''
    c48f059c
ha_innodb.cc 231 KB