summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorMartin Hansson <martin.hansson@sun.com>2009-08-20 13:56:29 +0200
committerMartin Hansson <martin.hansson@sun.com>2009-08-20 13:56:29 +0200
commite66fba53a76b54d63d7ce6edc680a2e8886018d8 (patch)
tree256b47bb7e41c8f26a0627a60064221695839b4b /mysql-test
parent050c36c7de50cc7258cde0826f8802928a8ef2c5 (diff)
downloadmariadb-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.result14
-rw-r--r--mysql-test/t/auto_increment.test16
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;