summaryrefslogtreecommitdiff
path: root/mysql-test/t/insert_select.test
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2007-02-07 00:46:03 +0300
committerunknown <evgen@moonbone.local>2007-02-07 00:46:03 +0300
commit976f0a391c9d20982d495cd01ab6e8f701d915fd (patch)
tree56c0e739bcc59645b6b36a4c468a1034d31858df /mysql-test/t/insert_select.test
parentc35ceeca9e11062516bd93d10d89ac818a6e1f23 (diff)
downloadmariadb-git-976f0a391c9d20982d495cd01ab6e8f701d915fd.tar.gz
Bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were
updated. INSERT ... ON DUPLICATE KEY UPDATE reports that a record was updated when the duplicate key occurs even if the record wasn't actually changed because the update values are the same as those in the record. Now the compare_record() function is used to check whether the record was changed and the update of a record reported only if the record differs from the original one. sql/sql_update.cc: Bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were updated. The compare_record() function was changed to non-static one. sql/sql_insert.cc: Bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were updated. Now the compare_record() function is used to check whether the record was changed and the update of a record reported only if the record differs from the original one. sql/mysql_priv.h: Bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were updated. Added the prototype of the compare_record() function. mysql-test/t/insert_select.test: Added a test case for bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were updated. mysql-test/r/insert_select.result: Added a test case for bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were updated.
Diffstat (limited to 'mysql-test/t/insert_select.test')
-rw-r--r--mysql-test/t/insert_select.test13
1 files changed, 13 insertions, 0 deletions
diff --git a/mysql-test/t/insert_select.test b/mysql-test/t/insert_select.test
index 404d67390ab..6302d5f1dae 100644
--- a/mysql-test/t/insert_select.test
+++ b/mysql-test/t/insert_select.test
@@ -265,4 +265,17 @@ INSERT INTO bug21774_2.t1 SELECT t1.* FROM t1;
DROP DATABASE bug21774_1;
DROP DATABASE bug21774_2;
+USE test;
+#
+# Bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were
+# updated.
+#
+create table t1(f1 int primary key, f2 int);
+--enable_info
+insert into t1 values (1,1);
+insert into t1 values (1,1) on duplicate key update f2=1;
+insert into t1 values (1,1) on duplicate key update f2=2;
+--disable_info
+select * from t1;
+drop table t1;