summaryrefslogtreecommitdiff
path: root/mysql-test/t/insert_update.test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-01-16 18:23:02 +0100
committerSergei Golubchik <serg@mariadb.org>2017-01-17 20:16:09 +0100
commitef8003eb9a23007ac5d606530dcdcc3ea2f0c039 (patch)
treeb374ac22e4a21b295c378fba316c5b3fa78126d6 /mysql-test/t/insert_update.test
parente79e840607adff6f2e55d4c889ae055d07bdabf5 (diff)
downloadmariadb-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.test6
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;