Commit e66fba53 authored by Martin Hansson's avatar Martin Hansson

Bug#46616: Assertion `!table->auto_increment_field_not_null' on

view manipulations
      
The bespoke flag was not properly reset after last call to 
fill_record. Fixed by resetting in caller mysql_update.

mysql-test/r/auto_increment.result:
  Bug#46616: Test result.
mysql-test/t/auto_increment.test:
  Bug#46616: Test case.
sql/sql_update.cc:
  Bug#46616: Fix.
parent 050c36c7
......@@ -440,3 +440,17 @@ a val
2 1
3 1
drop table t1;
#
# Bug#46616: Assertion `!table->auto_increment_field_not_null' on view
# manipulations
#
CREATE TABLE t1 ( a INT );
INSERT INTO t1 VALUES (1), (1);
CREATE TABLE t2 ( a INT AUTO_INCREMENT KEY );
CREATE TABLE IF NOT EXISTS t2 AS SELECT a FROM t1;
ERROR 23000: Duplicate entry '1' for key 1
UPDATE t2 SET a = 2;
SELECT a FROM t2;
a
2
DROP TABLE t1, t2;
......@@ -292,3 +292,19 @@ update t1 set a=2 where a=1;
insert into t1 (val) values (1);
select * from t1;
drop table t1;
--echo #
--echo # Bug#46616: Assertion `!table->auto_increment_field_not_null' on view
--echo # manipulations
--echo #
CREATE TABLE t1 ( a INT );
INSERT INTO t1 VALUES (1), (1);
CREATE TABLE t2 ( a INT AUTO_INCREMENT KEY );
--error ER_DUP_ENTRY
CREATE TABLE IF NOT EXISTS t2 AS SELECT a FROM t1;
UPDATE t2 SET a = 2;
SELECT a FROM t2;
DROP TABLE t1, t2;
......@@ -527,6 +527,7 @@ int mysql_update(THD *thd,
table->file->unlock_row();
thd->row_count++;
}
table->auto_increment_field_not_null= FALSE;
/*
Caching the killed status to pass as the arg to query event constuctor;
The cached value can not change whereas the killed status can
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment