• Mattias Jonsson's avatar
    Bug#50392: insert_id is not reset for partitioned tables · 1f77c7b4
    Mattias Jonsson authored
    auto_increment on duplicate entry
    
    The bug was that when INSERT_ID was used and the storage
    engine was told to release any reserved but not used
    auto_increment values, it set the highest auto_increment
    value to INSERT_ID.
    
    The fix was to check if the auto_increment value was forced
    by user (INSERT_ID) or by slave-thread, i.e. not auto-
    generated. So that it is only allowed to release generated
    values.
    
    mysql-test/r/partition_error.result:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      updated result
    mysql-test/suite/parts/inc/partition_auto_increment.inc:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added test
    mysql-test/suite/parts/r/partition_auto_increment_archive.result:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added result, note that archive does only allow increasing
      auto_increment values
    mysql-test/suite/parts/r/partition_auto_increment_blackhole.result:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added result, note that blackhole accepts all inserts :)
    mysql-test/suite/parts/r/partition_auto_increment_innodb.result:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added result, note that innodb rolls back inserts on error,
      but keeps the auto_increment value.
    mysql-test/suite/parts/r/partition_auto_increment_memory.result:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added result, note that memory and myisam inserts all rows
      before the error.
    mysql-test/suite/parts/r/partition_auto_increment_myisam.result:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added result, note that memory and myisam inserts all rows
      before the error.
    mysql-test/suite/parts/r/partition_auto_increment_ndb.result:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added result, note that NDB does not seem to handle
      INSERT_ID as other engines. (Martin will look into it).
    mysql-test/t/partition_error.test:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      Added test
    sql/ha_partition.cc:
      Bug#50392: insert_id is not reset for partitioned tables
      auto_increment on duplicate entry
      
      If the next_insert_id comes from non generated (i.e
      forced by INSERT_ID or slave-thread) then we cannot
      lower the reserved auto_increment value, since it have
      not reserved any values.
    1f77c7b4
partition_auto_increment_innodb.result 22.5 KB