Commit 7d074100 authored by unknown's avatar unknown
Browse files

ha_innodb.cc:

Manually ported this bug fix from 4.0: 
 Fix InnoDB bug #6287: if one uses INSERT IGNORE to insert several rows at a time, and the first inserts are ignored because of a duplicate key collision, then InnoDB in a replication slave assigns AUTO_INCREMENT values 1 bigger than in the master


sql/ha_innodb.cc:
  Fix InnoDB bug #6287: if one uses INSERT IGNORE to insert several rows at a time, and the first inserts are ignored because of a duplicate key collision, then InnoDB in a replication slave assigns AUTO_INCREMENT values 1 bigger than in the master
parent c9a09e12
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -2390,8 +2390,9 @@ ha_innobase::write_row(
		same SQL statement! */

		if (auto_inc == 0 && user_thd->next_insert_id != 0) {
		        auto_inc = user_thd->next_insert_id;
		        auto_inc_counter_for_this_stat = auto_inc;

		        auto_inc_counter_for_this_stat
						= user_thd->next_insert_id;
		}

		if (auto_inc == 0 && auto_inc_counter_for_this_stat) {
@@ -2399,14 +2400,14 @@ ha_innobase::write_row(
			this SQL statement with SET INSERT_ID. We must
			assign sequential values from the counter. */

			auto_inc_counter_for_this_stat++;
			incremented_auto_inc_for_stat = TRUE;

			auto_inc = auto_inc_counter_for_this_stat;

			/* We give MySQL a new value to place in the
			auto-inc column */
			user_thd->next_insert_id = auto_inc;

			auto_inc_counter_for_this_stat++;
			incremented_auto_inc_for_stat = TRUE;
		}

		if (auto_inc != 0) {