summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authorRamil Kalimullin <ramil@mysql.com>2008-09-03 15:17:19 +0500
committerRamil Kalimullin <ramil@mysql.com>2008-09-03 15:17:19 +0500
commitf0a50bd969fe707c5e210d321c197adb38cf250b (patch)
tree08bc35454926b84d4309eaa63e52c470e147bb74 /sql/sql_insert.cc
parent31d76e8d526da59070f0c75cae0b9672c11a1b03 (diff)
downloadmariadb-git-f0a50bd969fe707c5e210d321c197adb38cf250b.tar.gz
Fix for bug#38821: Assert table->auto_increment_field_not_null failed
in open_table() Problem: repeating "CREATE... ( AUTOINCREMENT) ... SELECT" may lead to an assertion failure. Fix: reset table->auto_increment_field_not_null after each record writing. mysql-test/r/create.result: Fix for bug#38821: Assert table->auto_increment_field_not_null failed in open_table() - test result. mysql-test/t/create.test: Fix for bug#38821: Assert table->auto_increment_field_not_null failed in open_table() - test case. sql/sql_insert.cc: Fix for bug#38821: Assert table->auto_increment_field_not_null failed in open_table() - reset table->auto_increment_field_not_null after writing a record for "{CREATE, INSERT}..SELECT".
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r--sql/sql_insert.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 746a04e03f3..3f43c902faa 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -2897,7 +2897,11 @@ bool select_insert::send_data(List<Item> &values)
DBUG_RETURN(1);
}
}
- if (!(error= write_record(thd, table, &info)))
+
+ error= write_record(thd, table, &info);
+ table->auto_increment_field_not_null= FALSE;
+
+ if (!error)
{
if (table->triggers || info.handle_duplicates == DUP_UPDATE)
{