summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r--sql/sql_insert.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index df7b76491e0..5225dfe221e 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -3065,9 +3065,10 @@ bool select_insert::send_data(List<Item> &values)
DBUG_RETURN(1);
}
}
-
+
error= write_record(thd, table, &info);
-
+ table->auto_increment_field_not_null= FALSE;
+
if (!error)
{
if (table->triggers || info.handle_duplicates == DUP_UPDATE)
@@ -3523,7 +3524,8 @@ select_create::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
temporary table, we need to start a statement transaction.
*/
if ((thd->lex->create_info.options & HA_LEX_CREATE_TMP_TABLE) == 0 &&
- thd->current_stmt_binlog_row_based)
+ thd->current_stmt_binlog_row_based &&
+ mysql_bin_log.is_open())
{
thd->binlog_start_trans_and_stmt();
}
@@ -3620,10 +3622,11 @@ select_create::binlog_show_create_table(TABLE **tables, uint count)
/* show_database */ TRUE);
DBUG_ASSERT(result == 0); /* store_create_info() always return 0 */
- thd->binlog_query(THD::STMT_QUERY_TYPE,
- query.ptr(), query.length(),
- /* is_trans */ TRUE,
- /* suppress_use */ FALSE);
+ if (mysql_bin_log.is_open())
+ thd->binlog_query(THD::STMT_QUERY_TYPE,
+ query.ptr(), query.length(),
+ /* is_trans */ TRUE,
+ /* suppress_use */ FALSE);
}
void select_create::store_values(List<Item> &values)