diff --git a/sql/handler.cc b/sql/handler.cc index d2eaab19ad8..20bf2355c25 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -2397,6 +2397,17 @@ int handler::update_auto_increment() reservation means potentially losing unused values). Note that in prelocked mode no estimation is given. */ + + /* + For multi-row inserts, if the bulk inserts cannot be started, the + handler::estimation_rows_to_insert will not be set. Set it here. + */ + if ((estimation_rows_to_insert == 0) && + (thd->lex->many_values.elements > 0)) + { + estimation_rows_to_insert= thd->lex->many_values.elements; + } + if ((auto_inc_intervals_count == 0) && (estimation_rows_to_insert > 0)) nb_desired_values= estimation_rows_to_insert; else /* go with the increasing defaults */ @@ -4690,6 +4701,8 @@ int handler::ha_write_row(uchar *buf) DBUG_RETURN(error); if (unlikely(error= binlog_log_row(table, 0, buf, log_func))) DBUG_RETURN(error); /* purecov: inspected */ + + DEBUG_SYNC_C("ha_write_row_end"); DBUG_RETURN(0); }