diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-01-16 18:23:02 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-01-17 20:16:09 +0100 |
commit | ef8003eb9a23007ac5d606530dcdcc3ea2f0c039 (patch) | |
tree | b374ac22e4a21b295c378fba316c5b3fa78126d6 /mysql-test/t/insert_update.test | |
parent | e79e840607adff6f2e55d4c889ae055d07bdabf5 (diff) | |
download | mariadb-git-ef8003eb9a23007ac5d606530dcdcc3ea2f0c039.tar.gz |
MDEV-11698 Old Bug possibly not fixed; BEFORE INSERT Trigger on NOT NULL
check_that_all_fields_are_given_values() relied on write_set,
but was run too early, before triggers updated write_set.
also, when triggers are present, fields might get values conditionally,
so we need to check that all fields are given values for every row.
Diffstat (limited to 'mysql-test/t/insert_update.test')
-rw-r--r-- | mysql-test/t/insert_update.test | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mysql-test/t/insert_update.test b/mysql-test/t/insert_update.test index de38ae0b0d3..7234973eeb8 100644 --- a/mysql-test/t/insert_update.test +++ b/mysql-test/t/insert_update.test @@ -170,6 +170,7 @@ DROP TABLE t1,t2; SET SQL_MODE = 'TRADITIONAL'; CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL); +INSERT INTO t1 VALUES (1,1); --error ER_NO_DEFAULT_FOR_FIELD INSERT INTO t1 (a) VALUES (1); @@ -177,7 +178,10 @@ INSERT INTO t1 (a) VALUES (1); --error ER_NO_DEFAULT_FOR_FIELD INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE a = b; ---error ER_NO_DEFAULT_FOR_FIELD +# this one is ok +INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = a; + +# arguably the statement below should fail INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = b; SELECT * FROM t1; |