diff options
author | He Zhenxing <zhenxing.he@sun.com> | 2009-01-14 16:27:32 +0800 |
---|---|---|
committer | He Zhenxing <zhenxing.he@sun.com> | 2009-01-14 16:27:32 +0800 |
commit | f2c122bf9080d9f0e2e61890edea697e76be5bf6 (patch) | |
tree | 4a695b547a5033b6c5fe7913b8905ddfd8099fc8 /sql/log_event.cc | |
parent | a58bc1bef3c76ebe716f652759771d9ddce2d484 (diff) | |
download | mariadb-git-f2c122bf9080d9f0e2e61890edea697e76be5bf6.tar.gz |
BUG#41986 Replication slave does not pick up proper AUTO_INCREMENT value for Innodb tables
The next number (AUTO_INCREMENT) field of the table for write
rows events are not initialized, and cause some engines (innodb)
not correctly update the tables's auto_increment value.
This patch fixed this problem by honor next number fields if present.
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
Add test code for BUG#41986
mysql-test/suite/rpl/r/rpl_auto_increment.result:
update test result file for BUG#41986
sql/log_event.cc:
set next_number_field before writing rows, and reset next_number_field after finished writing rows
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r-- | sql/log_event.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index dfaf8e3c931..cf338d8fd80 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -8091,6 +8091,9 @@ Write_rows_log_event::do_before_row_operations(const Slave_reporting_capability analyze if explicit data is provided for slave's TIMESTAMP columns). */ m_table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET; + + /* Honor next number column if present */ + m_table->next_number_field= m_table->found_next_number_field; return error; } @@ -8099,6 +8102,7 @@ Write_rows_log_event::do_after_row_operations(const Slave_reporting_capability * int error) { int local_error= 0; + m_table->next_number_field=0; if (bit_is_set(slave_exec_mode, SLAVE_EXEC_MODE_IDEMPOTENT) == 1 || m_table->s->db_type()->db_type == DB_TYPE_NDBCLUSTER) { |