From: Marc Alff Date: November 5 2011 12:40pm Subject: bzr push into mysql-trunk-marc branch (marc.alff:3560 to 3562) List-Archive: http://lists.mysql.com/commits/141746 Message-Id: <201111051240.pA5Ce8Ji032013@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3562 Marc Alff 2011-11-05 benchmark tests modified: storage/perfschema/unittest/pfs_benchmark-t.cc 3561 Marc Alff 2011-11-05 [merge] Merge mysql-trunk --> mysql-trunk-marc modified: mysql-test/include/join_cache.inc mysql-test/r/join_cache_bka.result mysql-test/r/join_cache_bka_nixbnl.result mysql-test/r/join_cache_bkaunique.result mysql-test/r/join_cache_bnl.result mysql-test/r/join_cache_nojb.result mysql-test/valgrind.supp sql/field.h sql/field_conv.cc sql/sql_select.cc 3560 Marc Alff 2011-11-04 [merge] Merge mysql-trunk --> mysql-trunk-marc removed: BUILD/compile-alpha-debug BUILD/compile-darwin-mwcc BUILD/compile-irix-mips64-mipspro BUILD/compile-pentium-icc BUILD/compile-pentium-icc-valgrind-max BUILD/compile-pentium-icc-yassl BUILD/compile-pentium-pgcc mysys/my_new.cc added: mysys/my_isnan.c unittest/gunit/stdcxx-t.cc renamed: mysys/psi_noop.cc => mysys/psi_noop.c sql/udf_example.c => sql/udf_example.cc modified: BUILD/SETUP.sh BUILD/build_mccge.sh BUILD/compile-dist BUILD/compile-solaris-amd64 BUILD/compile-solaris-amd64-forte BUILD/compile-solaris-amd64-forte-debug BUILD/compile-solaris-sparc BUILD/compile-solaris-sparc-debug BUILD/compile-solaris-sparc-forte BUILD/compile-solaris-sparc-purify client/CMakeLists.txt client/mysql.cc client/mysql_upgrade.c client/mysqlbinlog.cc client/mysqldump.c client/mysqltest.cc client/sql_string.cc cmake/build_configurations/mysql_release.cmake cmake/configure.pl cmake/info_macros.cmake.in cmake/os/Windows.cmake cmake/readline.cmake config.h.cmake configure.cmake dbug/dbug.c include/m_string.h include/my_global.h include/my_pthread.h include/mysql.h include/mysql/psi/mysql_thread.h include/mysql/psi/psi.h include/mysql/psi/psi_abi_v1.h include/mysql_com.h include/waiting_threads.h libmysql/libmysql.c libmysqld/lib_sql.cc mysql-test/mysql-test-run.pl mysql-test/r/udf.result mysql-test/suite/funcs_1/t/storedproc.test mysql-test/suite/perfschema/t/socket_instances_func.test mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test mysql-test/suite/rpl/t/rpl_temporary.test mysql-test/t/csv.test mysql-test/t/disabled.def mysql-test/t/information_schema_parameters.test mysql-test/t/information_schema_routines.test mysql-test/t/lock.test mysql-test/t/mysql_plugin.test mysql-test/t/mysqlbinlog2.test mysql-test/t/ps.test mysql-test/t/ps_ddl.test mysql-test/t/sp-error.test mysql-test/t/sp.test mysql-test/t/trigger.test mysql-test/t/udf.test mysql-test/t/view_grant.test mysys/CMakeLists.txt mysys/array.c mysys/default.c mysys/lf_alloc-pin.c mysys/lf_dynarray.c mysys/mf_format.c mysys/mf_iocache.c mysys/my_alloc.c mysys/my_bitmap.c mysys/my_compare.c mysys/my_compress.c mysys/my_file.c mysys/stacktrace.c mysys/waiting_threads.c sql-common/client.c sql-common/client_plugin.c sql-common/my_time.c sql/CMakeLists.txt sql/binlog.cc sql/debug_sync.cc sql/field.cc sql/field.h sql/filesort.cc sql/ha_partition.cc sql/handler.cc sql/handler.h sql/item.cc sql/item_buff.cc sql/item_cmpfunc.cc sql/item_func.cc sql/item_func.h sql/item_strfunc.cc sql/item_strfunc.h sql/item_sum.cc sql/item_timefunc.cc sql/item_timefunc.h sql/key.cc sql/log.cc sql/log_event.cc sql/log_event.h sql/log_event_old.cc sql/mdl.cc sql/mdl.h sql/mysqld.cc sql/net_serv.cc sql/opt_range.cc sql/opt_range.h sql/opt_trace.cc sql/opt_trace.h sql/protocol.cc sql/rpl_mi.cc sql/rpl_record.cc sql/rpl_rli.cc sql/rpl_slave.cc sql/rpl_utility.cc sql/rpl_utility.h sql/set_var.cc sql/set_var.h sql/sp_head.cc sql/spatial.h sql/sql_acl.cc sql/sql_analyse.cc sql/sql_cache.cc sql/sql_class.cc sql/sql_client.cc sql/sql_connect.cc sql/sql_const.h sql/sql_error.cc sql/sql_join_cache.cc sql/sql_load.cc sql/sql_parse.cc sql/sql_partition.cc sql/sql_plugin.cc sql/sql_plugin.h sql/sql_prepare.cc sql/sql_profile.cc sql/sql_select.cc sql/sql_select.h sql/sql_show.cc sql/sql_string.cc sql/sql_table.cc sql/sql_table.h sql/sql_yacc.yy sql/thr_malloc.cc sql/tztime.cc sql/udf_example.def sql/unireg.cc storage/csv/ha_tina.cc storage/federated/ha_federated.cc storage/heap/hp_create.c storage/heap/hp_static.c storage/heap/hp_test2.c storage/innobase/sync/sync0rw.c storage/myisam/ha_myisam.cc storage/myisam/mi_cache.c storage/myisam/mi_check.c storage/myisam/mi_create.c storage/myisam/mi_dynrec.c storage/myisam/mi_extra.c storage/myisam/mi_open.c storage/myisam/mi_packrec.c storage/myisam/mi_static.c storage/myisam/myisamlog.c storage/myisam/myisampack.c storage/myisam/rt_mbr.c storage/myisam/sort.c storage/myisammrg/ha_myisammrg.cc strings/ctype-big5.c strings/ctype-bin.c strings/ctype-gbk.c strings/ctype-mb.c strings/ctype-simple.c strings/ctype-tis620.c strings/ctype-uca.c strings/ctype-ucs2.c strings/ctype-utf8.c strings/ctype.c strings/decimal.c strings/dtoa.c strings/my_vsnprintf.c support-files/mysql.spec.sh tests/mysql_client_test.c unittest/gunit/CMakeLists.txt unittest/gunit/gunit_test_main.cc unittest/gunit/item-t.cc unittest/mysys/lf-t.c unittest/mysys/my_atomic-t.c unittest/mysys/thr_template.c unittest/mysys/waiting_threads-t.c vio/viosocket.c win/create_def_file.js mysys/psi_noop.c sql/udf_example.cc === modified file 'mysql-test/include/join_cache.inc' --- a/mysql-test/include/join_cache.inc 2011-08-08 14:16:20 +0000 +++ b/mysql-test/include/join_cache.inc 2011-11-04 15:20:13 +0000 @@ -1961,3 +1961,26 @@ eval EXPLAIN $query; eval $query; DROP TABLE t1, t2, t3, t4; + +--echo # +--echo # Bug#12997905: VALGRIND: SYSCALL PARAM PWRITE64(BUF) +--echo # POINTS TO UNINITIALISED BYTE(S) +--echo # + +CREATE TABLE t1 ( + col1 varchar(10), + col2 varchar(1024) +) ENGINE=innodb; + +INSERT INTO t1 VALUES ('a','a'); + +CREATE TABLE t2 (i varchar(10)) ENGINE=innodb; +INSERT INTO t2 VALUES ('a'); + +SELECT t1.col1 +FROM t1 JOIN t2 ON t1.col1 = t2.i +GROUP BY t1.col2; + +DROP TABLE t1,t2; + +--echo # End of Bug#12997905 === modified file 'mysql-test/r/join_cache_bka.result' --- a/mysql-test/r/join_cache_bka.result 2011-10-27 08:52:27 +0000 +++ b/mysql-test/r/join_cache_bka.result 2011-11-04 15:20:13 +0000 @@ -2681,4 +2681,22 @@ col_int NULL NULL DROP TABLE t1, t2, t3, t4; +# +# Bug#12997905: VALGRIND: SYSCALL PARAM PWRITE64(BUF) +# POINTS TO UNINITIALISED BYTE(S) +# +CREATE TABLE t1 ( +col1 varchar(10), +col2 varchar(1024) +) ENGINE=innodb; +INSERT INTO t1 VALUES ('a','a'); +CREATE TABLE t2 (i varchar(10)) ENGINE=innodb; +INSERT INTO t2 VALUES ('a'); +SELECT t1.col1 +FROM t1 JOIN t2 ON t1.col1 = t2.i +GROUP BY t1.col2; +col1 +a +DROP TABLE t1,t2; +# End of Bug#12997905 set optimizer_switch = default; === modified file 'mysql-test/r/join_cache_bka_nixbnl.result' --- a/mysql-test/r/join_cache_bka_nixbnl.result 2011-10-27 08:52:27 +0000 +++ b/mysql-test/r/join_cache_bka_nixbnl.result 2011-11-04 15:20:13 +0000 @@ -2681,4 +2681,22 @@ col_int NULL NULL DROP TABLE t1, t2, t3, t4; +# +# Bug#12997905: VALGRIND: SYSCALL PARAM PWRITE64(BUF) +# POINTS TO UNINITIALISED BYTE(S) +# +CREATE TABLE t1 ( +col1 varchar(10), +col2 varchar(1024) +) ENGINE=innodb; +INSERT INTO t1 VALUES ('a','a'); +CREATE TABLE t2 (i varchar(10)) ENGINE=innodb; +INSERT INTO t2 VALUES ('a'); +SELECT t1.col1 +FROM t1 JOIN t2 ON t1.col1 = t2.i +GROUP BY t1.col2; +col1 +a +DROP TABLE t1,t2; +# End of Bug#12997905 set optimizer_switch = default; === modified file 'mysql-test/r/join_cache_bkaunique.result' --- a/mysql-test/r/join_cache_bkaunique.result 2011-10-27 08:52:27 +0000 +++ b/mysql-test/r/join_cache_bkaunique.result 2011-11-04 15:20:13 +0000 @@ -2682,4 +2682,22 @@ col_int NULL NULL DROP TABLE t1, t2, t3, t4; +# +# Bug#12997905: VALGRIND: SYSCALL PARAM PWRITE64(BUF) +# POINTS TO UNINITIALISED BYTE(S) +# +CREATE TABLE t1 ( +col1 varchar(10), +col2 varchar(1024) +) ENGINE=innodb; +INSERT INTO t1 VALUES ('a','a'); +CREATE TABLE t2 (i varchar(10)) ENGINE=innodb; +INSERT INTO t2 VALUES ('a'); +SELECT t1.col1 +FROM t1 JOIN t2 ON t1.col1 = t2.i +GROUP BY t1.col2; +col1 +a +DROP TABLE t1,t2; +# End of Bug#12997905 set optimizer_switch = default; === modified file 'mysql-test/r/join_cache_bnl.result' --- a/mysql-test/r/join_cache_bnl.result 2011-10-27 08:52:27 +0000 +++ b/mysql-test/r/join_cache_bnl.result 2011-11-04 15:20:13 +0000 @@ -2682,4 +2682,22 @@ col_int NULL NULL DROP TABLE t1, t2, t3, t4; +# +# Bug#12997905: VALGRIND: SYSCALL PARAM PWRITE64(BUF) +# POINTS TO UNINITIALISED BYTE(S) +# +CREATE TABLE t1 ( +col1 varchar(10), +col2 varchar(1024) +) ENGINE=innodb; +INSERT INTO t1 VALUES ('a','a'); +CREATE TABLE t2 (i varchar(10)) ENGINE=innodb; +INSERT INTO t2 VALUES ('a'); +SELECT t1.col1 +FROM t1 JOIN t2 ON t1.col1 = t2.i +GROUP BY t1.col2; +col1 +a +DROP TABLE t1,t2; +# End of Bug#12997905 set optimizer_switch = default; === modified file 'mysql-test/r/join_cache_nojb.result' --- a/mysql-test/r/join_cache_nojb.result 2011-10-27 08:52:27 +0000 +++ b/mysql-test/r/join_cache_nojb.result 2011-11-04 15:20:13 +0000 @@ -2682,4 +2682,22 @@ NULL 3 NULL DROP TABLE t1, t2, t3, t4; +# +# Bug#12997905: VALGRIND: SYSCALL PARAM PWRITE64(BUF) +# POINTS TO UNINITIALISED BYTE(S) +# +CREATE TABLE t1 ( +col1 varchar(10), +col2 varchar(1024) +) ENGINE=innodb; +INSERT INTO t1 VALUES ('a','a'); +CREATE TABLE t2 (i varchar(10)) ENGINE=innodb; +INSERT INTO t2 VALUES ('a'); +SELECT t1.col1 +FROM t1 JOIN t2 ON t1.col1 = t2.i +GROUP BY t1.col2; +col1 +a +DROP TABLE t1,t2; +# End of Bug#12997905 set optimizer_switch = default; === modified file 'mysql-test/valgrind.supp' --- a/mysql-test/valgrind.supp 2011-10-07 06:03:14 +0000 +++ b/mysql-test/valgrind.supp 2011-11-04 15:22:50 +0000 @@ -1023,35 +1023,3 @@ fun:_Z*10write_keysP10Sort_paramPPhjP11st_io_cacheS4_ fun:_Z8filesortP3THDP5TABLEP13st_sort_fieldjP10SQL_SELECTybPyS7_ } - -# Syscall param write(buf) points to uninitialised byte(s) -# The '...' wildcard is for 'fun:inline_mysql_file_write' which *may* -# be inlined. -{ - Bug#12879084 VALGRIND FAILURE IN INNODB.INNODB_BUFFER_POOL_LOAD / one - Memcheck:Param - write(buf) - obj:*/libpthread*.so - fun:my_write - ... - fun:my_b_flush_io_cache - fun:end_io_cache - fun:mi_extra - fun:_ZN9ha_myisam5extraE17ha_extra_function -} - -{ - Bug#12879084 VALGRIND FAILURE IN INNODB.INNODB_BUFFER_POOL_LOAD / two - Memcheck:Param - write(buf) - obj:*/libpthread*.so - fun:my_write - fun:my_b_flush_io_cache - fun:_my_b_write - fun:_mi_write_part_record - fun:write_dynamic_record - fun:_mi_write_blob_record - fun:mi_write - fun:_ZN9ha_myisam9write_rowEPh - fun:_ZN7handler12ha_write_rowEPh -} === modified file 'sql/field.h' --- a/sql/field.h 2011-10-11 04:27:52 +0000 +++ b/sql/field.h 2011-11-04 15:20:13 +0000 @@ -2454,6 +2454,23 @@ public: uchar *from_null_ptr,*to_null_ptr; my_bool *null_row; uint from_bit,to_bit; + /** + Number of bytes in the fields pointed to by 'from_ptr' and + 'to_ptr'. Usually this is the number of bytes that are copied from + 'from_ptr' to 'to_ptr'. + + For variable-length fields (VARCHAR), the first byte(s) describe + the actual length of the text. For VARCHARs with length + < 256 there is 1 length byte + >= 256 there is 2 length bytes + Thus, if from_field is VARCHAR(10), from_length (and in most cases + to_length) is 11. For VARCHAR(1024), the length is 1026. @see + Field_varstring::length_bytes + + Note that for VARCHARs, do_copy() will be do_varstring*() which + only copies the length-bytes (1 or 2) + the actual length of the + text instead of from/to_length bytes. @see get_copy_func() + */ uint from_length,to_length; Field *from_field,*to_field; String tmp; // For items === modified file 'sql/field_conv.cc' --- a/sql/field_conv.cc 2011-07-28 10:54:44 +0000 +++ b/sql/field_conv.cc 2011-11-04 15:20:13 +0000 @@ -709,7 +709,7 @@ Copy_field::get_copy_func(Field *to,Fiel if (((Field_varstring*) to)->length_bytes != ((Field_varstring*) from)->length_bytes) return do_field_string; - if (to_length != from_length) + else return (((Field_varstring*) to)->length_bytes == 1 ? (from->charset()->mbmaxlen == 1 ? do_varstring1 : do_varstring1_mb) : === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2011-11-03 16:03:34 +0000 +++ b/sql/sql_select.cc 2011-11-04 15:20:13 +0000 @@ -18468,6 +18468,8 @@ bool instantiate_tmp_table(TABLE *table, if (create_myisam_tmp_table(table, keyinfo, start_recinfo, recinfo, options, big_tables)) return TRUE; + // Make empty record so random data is not written to disk + empty_record(table); } if (open_tmp_table(table)) return TRUE; === modified file 'storage/perfschema/unittest/pfs_benchmark-t.cc' --- a/storage/perfschema/unittest/pfs_benchmark-t.cc 2011-11-04 01:12:21 +0000 +++ b/storage/perfschema/unittest/pfs_benchmark-t.cc 2011-11-05 12:39:20 +0000 @@ -390,194 +390,252 @@ void benchmark_file_open(uint count, con count, timer_cycles, timer_cycles/count); } -void fake_TABLE_SHARE(TABLE_SHARE *fake) +void fake_TABLE_SHARE(TABLE_SHARE *fake, bool alive) { - fake->db.str = (char*) "test"; - fake->db.length = 4; - fake->table_name.str = (char*) "t1"; - fake->table_name.length = 2; - fake->keys= 0; + if (alive) + { + /* ENABLED in SETUP_OBJECTS */ + fake->db.str = (char*) "test"; + fake->db.length = 4; + fake->table_name.str = (char*) "t1"; + fake->table_name.length = 2; + fake->keys= 0; + } + else + { + /* DISABLED in SETUP_OBJECTS */ + fake->db.str = (char*) "mysql"; + fake->db.length = 5; + fake->table_name.str = (char*) "user"; + fake->table_name.length = 4; + fake->keys= 0; + } } void benchmark_create_table_share(uint count, const char *test) { - ulonglong timer_start; - ulonglong timer_end; - ulonglong timer_cycles; - - TABLE_SHARE table_share; - fake_TABLE_SHARE(& table_share); - - PSI_table_share *that; - - timer_start= my_timer_cycles(); - - uint i; - start_some_work(); - for (i= 0 ; i