From f0af808fccf656febcfb884047aa465bd5b005be Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 28 Nov 2004 22:28:36 +0100 Subject: [PATCH 1/2] Fix for Bug #6794 Wrong outcome of update operation of ndb table --- mysql-test/r/ndb_update.result | 12 ++++++++++++ mysql-test/t/ndb_update.test | 22 ++++++++++++++++++++++ sql/sql_update.cc | 3 ++- 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 mysql-test/r/ndb_update.result create mode 100644 mysql-test/t/ndb_update.test diff --git a/mysql-test/r/ndb_update.result b/mysql-test/r/ndb_update.result new file mode 100644 index 00000000000..829e722faaa --- /dev/null +++ b/mysql-test/r/ndb_update.result @@ -0,0 +1,12 @@ +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 ( +pk1 INT NOT NULL PRIMARY KEY, +b INT NOT NULL, +c INT NOT NULL +) ENGINE=ndbcluster; +INSERT INTO t1 VALUES (0, 0, 0),(1,1,1); +UPDATE t1 set b = c; +select * from t1 order by pk1; +pk1 b c +0 0 0 +1 1 1 diff --git a/mysql-test/t/ndb_update.test b/mysql-test/t/ndb_update.test new file mode 100644 index 00000000000..186e4a99ad3 --- /dev/null +++ b/mysql-test/t/ndb_update.test @@ -0,0 +1,22 @@ +-- source include/have_ndb.inc + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +# +# Basic test of INSERT in NDB +# + +# +# Create a normal table with primary key +# +CREATE TABLE t1 ( + pk1 INT NOT NULL PRIMARY KEY, + b INT NOT NULL, + c INT NOT NULL +) ENGINE=ndbcluster; + +INSERT INTO t1 VALUES (0, 0, 0),(1,1,1); +UPDATE t1 set b = c; +select * from t1 order by pk1; diff --git a/sql/sql_update.cc b/sql/sql_update.cc index d3597f274dc..7bcf9440bec 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -110,7 +110,8 @@ int mysql_update(THD *thd, #ifndef NO_EMBEDDED_ACCESS_CHECKS table->grant.want_privilege=want_privilege; #endif - if (setup_fields(thd, 0, update_table_list, fields, 1, 0, 0)) + if (setup_fields(thd, 0, update_table_list, fields, 1, 0, 0) || + setup_fields(thd, 0, update_table_list, values, 1, 0, 0)) DBUG_RETURN(-1); /* purecov: inspected */ if (table->timestamp_field) { From 6f2e694df0b59e21ca3a40400eea8f35bd05d90f Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 28 Nov 2004 22:33:01 +0100 Subject: [PATCH 2/2] Added better test for Bug #6794 Wrong outcome of update operation of ndb table --- mysql-test/r/ndb_update.result | 7 ++++--- mysql-test/t/ndb_update.test | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/ndb_update.result b/mysql-test/r/ndb_update.result index 829e722faaa..5df5c861cfb 100644 --- a/mysql-test/r/ndb_update.result +++ b/mysql-test/r/ndb_update.result @@ -4,9 +4,10 @@ pk1 INT NOT NULL PRIMARY KEY, b INT NOT NULL, c INT NOT NULL ) ENGINE=ndbcluster; -INSERT INTO t1 VALUES (0, 0, 0),(1,1,1); +INSERT INTO t1 VALUES (0, 0, 1),(1,1,2),(2,2,3); UPDATE t1 set b = c; select * from t1 order by pk1; pk1 b c -0 0 0 -1 1 1 +0 1 1 +1 2 2 +2 3 3 diff --git a/mysql-test/t/ndb_update.test b/mysql-test/t/ndb_update.test index 186e4a99ad3..3b0e84e2344 100644 --- a/mysql-test/t/ndb_update.test +++ b/mysql-test/t/ndb_update.test @@ -17,6 +17,6 @@ CREATE TABLE t1 ( c INT NOT NULL ) ENGINE=ndbcluster; -INSERT INTO t1 VALUES (0, 0, 0),(1,1,1); +INSERT INTO t1 VALUES (0, 0, 1),(1,1,2),(2,2,3); UPDATE t1 set b = c; select * from t1 order by pk1;