diff options
author | Martin Hansson <martin.hansson@sun.com> | 2009-08-20 13:56:29 +0200 |
---|---|---|
committer | Martin Hansson <martin.hansson@sun.com> | 2009-08-20 13:56:29 +0200 |
commit | e66fba53a76b54d63d7ce6edc680a2e8886018d8 (patch) | |
tree | 256b47bb7e41c8f26a0627a60064221695839b4b /mysql-test | |
parent | 050c36c7de50cc7258cde0826f8802928a8ef2c5 (diff) | |
download | mariadb-git-e66fba53a76b54d63d7ce6edc680a2e8886018d8.tar.gz |
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.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/auto_increment.result | 14 | ||||
-rw-r--r-- | mysql-test/t/auto_increment.test | 16 |
2 files changed, 30 insertions, 0 deletions
diff --git a/mysql-test/r/auto_increment.result b/mysql-test/r/auto_increment.result index 90ba00e1019..44b2e3797b2 100644 --- a/mysql-test/r/auto_increment.result +++ b/mysql-test/r/auto_increment.result @@ -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; diff --git a/mysql-test/t/auto_increment.test b/mysql-test/t/auto_increment.test index 5d22bdd46a0..00849a3b131 100644 --- a/mysql-test/t/auto_increment.test +++ b/mysql-test/t/auto_increment.test @@ -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; |