#At file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ based on revid:marko.makela@strippedclg7j7n1ynvs
3099 Marko Mäkelä 2010-06-14
Merge a change from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3506
revision-id: sergey.glukhov@stripped718-04mpk5kjxvnrxdu8
parent: sergey.glukhov@stripped-20100609120734-ndy2281wau9067zv
committer: Sergey Glukhov <Sergey.Glukhov@stripped>
branch nick: mysql-5.1-innodb
timestamp: Wed 2010-06-09 16:17:18 +0400
message:
Bug#38999 valgrind warnings for update statement in function compare_record()
(InnoDB plugin branch)
@ mysql-test/suite/innodb_plugin/r/innodb_mysql.result
test case
@ mysql-test/suite/innodb_plugin/t/innodb_mysql.test
test case
@ storage/innodb_plugin/row/row0sel.c
init null bytes with default values as they might be
left uninitialized in some cases and these uninited bytes
might be copied into mysql record buffer that leads to
valgrind warnings on next use of the buffer.
modified:
mysql-test/suite/innodb/r/innodb_mysql.result
mysql-test/suite/innodb/t/innodb_mysql.test
storage/innobase/row/row0sel.c
=== modified file 'mysql-test/suite/innodb/r/innodb_mysql.result'
--- a/mysql-test/suite/innodb/r/innodb_mysql.result revid:marko.makela@strippedom-20100608122645-psnrclg7j7n1ynvs
+++ b/mysql-test/suite/innodb/r/innodb_mysql.result revid:marko.makela@strippedom-20100614063501-k55k1188wsovx36r
@@ -2413,6 +2413,18 @@ id select_type table type possible_keys
1 SIMPLE t1 const PRIMARY NULL NULL NULL 1 Impossible ON condition
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
DROP TABLE t1,t2;
+#
+# Bug#38999 valgrind warnings for update statement in function compare_record()
+#
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 values (1),(2),(3),(4),(5);
+INSERT INTO t2 values (1);
+SELECT * FROM t1 WHERE a = 2;
+a
+2
+UPDATE t1,t2 SET t1.a = t1.a + 100 WHERE t1.a = 1;
+DROP TABLE t1,t2;
End of 5.1 tests
#
# Test for bug #39932 "create table fails if column for FK is in different
=== modified file 'mysql-test/suite/innodb/t/innodb_mysql.test'
--- a/mysql-test/suite/innodb/t/innodb_mysql.test revid:marko.makela@stripped08122645-psnrclg7j7n1ynvs
+++ b/mysql-test/suite/innodb/t/innodb_mysql.test revid:marko.makela@stripped063501-k55k1188wsovx36r
@@ -649,6 +649,20 @@ EXPLAIN SELECT t1.id,t2.id FROM t2 LEFT
DROP TABLE t1,t2;
+--echo #
+--echo # Bug#38999 valgrind warnings for update statement in function compare_record()
+--echo #
+
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 values (1),(2),(3),(4),(5);
+INSERT INTO t2 values (1);
+
+SELECT * FROM t1 WHERE a = 2;
+UPDATE t1,t2 SET t1.a = t1.a + 100 WHERE t1.a = 1;
+
+DROP TABLE t1,t2;
+
--echo End of 5.1 tests
=== modified file 'storage/innobase/row/row0sel.c'
--- a/storage/innobase/row/row0sel.c revid:marko.makela@stripped
+++ b/storage/innobase/row/row0sel.c revid:marko.makela@oracle.com-20100614063501-k55k1188wsovx36r
@@ -2678,6 +2678,12 @@ row_sel_store_mysql_rec(
prebuilt->blob_heap = NULL;
}
+ /* init null bytes with default values as they might be
+ left uninitialized in some cases and these uninited bytes
+ might be copied into mysql record buffer that leads to
+ valgrind warnings */
+ memcpy(mysql_rec, prebuilt->default_rec, prebuilt->null_bitmap_len);
+
for (i = 0; i < prebuilt->n_template; i++) {
templ = prebuilt->mysql_template + i;
Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20100614063501-k55k1188wsovx36r.bundle
| Thread |
|---|
| • bzr commit into mysql-trunk-innodb branch (marko.makela:3099) Bug#38999 | marko.makela | 14 Jun |