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.
This commit is contained in:
parent
050c36c7de
commit
e66fba53a7
@ -440,3 +440,17 @@ a val
|
|||||||
2 1
|
2 1
|
||||||
3 1
|
3 1
|
||||||
drop table t1;
|
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);
|
insert into t1 (val) values (1);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
drop table 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();
|
table->file->unlock_row();
|
||||||
thd->row_count++;
|
thd->row_count++;
|
||||||
}
|
}
|
||||||
|
table->auto_increment_field_not_null= FALSE;
|
||||||
/*
|
/*
|
||||||
Caching the killed status to pass as the arg to query event constuctor;
|
Caching the killed status to pass as the arg to query event constuctor;
|
||||||
The cached value can not change whereas the killed status can
|
The cached value can not change whereas the killed status can
|
||||||
|
Loading…
x
Reference in New Issue
Block a user