1. 17 Jun, 2010 7 commits
  2. 15 Jun, 2010 10 commits
  3. 14 Jun, 2010 7 commits
    • Vasil Dimov's avatar
      c9a66cdf
    • Bjorn Munch's avatar
      Upmerge and port 46882 · ff435f88
      Bjorn Munch authored
      ff435f88
    • Bjorn Munch's avatar
      Upmerge and port 46882 · ec1d665c
      Bjorn Munch authored
      ec1d665c
    • Bjorn Munch's avatar
      Bug #46882 Suite timeout doesn't kill stray processes · b18902fd
      Bjorn Munch authored
      Kill mysqltest and call mtr_kill_leftovers() before terminating
      b18902fd
    • Tor Didriksen's avatar
      Bug #53261 MTR tests archive_plugin and blackhole_plugin fail when compiling with cmake · f88e6af0
      Tor Didriksen authored
      Let mtr lookup the plugins, rather than hard-coding autotools lib path.
      
      
      mysql-test/include/not_parallel.inc:
        Add new feature for skipping when running in parallel.
      mysql-test/mysql-test-run.pl:
        Use find_plugin to locate plugins.
        Export opt_parallel in environment.
      mysql-test/suite/federated/federated_plugin-master.opt:
        Use plugin dir from mtr.
      mysql-test/suite/federated/federated_plugin.test:
        Skip test, disabled.
      mysql-test/t/archive_plugin-master.opt:
        Use plugin dir from mtr.
      mysql-test/t/archive_plugin.test:
        Skip test if running in parallel.
      mysql-test/t/blackhole_plugin-master.opt:
        Use plugin dir from mtr.
      mysql-test/t/blackhole_plugin.test:
        Skip test if running in parallel.
      f88e6af0
    • Marko Mäkelä's avatar
      Merge a change from mysql-5.1-innodb: · ac3c92e4
      Marko Mäkelä authored
      ------------------------------------------------------------
      revno: 3507
      revision-id: marko.makela@oracle.com-20100610125623-ar6qf4w2pv2kr7mb
      parent: sergey.glukhov@sun.com-20100609121718-04mpk5kjxvnrxdu8
      committer: Marko Mäkelä <marko.makela@oracle.com>
      branch nick: 5.1-innodb
      timestamp: Thu 2010-06-10 15:56:23 +0300
      message:
        Bug #38999: Re-enable innodb_multi_update.test
      ac3c92e4
    • Marko Mäkelä's avatar
      Merge a change from mysql-5.1-innodb: · 28ec7457
      Marko Mäkelä authored
      ------------------------------------------------------------
      revno: 3506
      revision-id: sergey.glukhov@sun.com-20100609121718-04mpk5kjxvnrxdu8
      parent: sergey.glukhov@sun.com-20100609120734-ndy2281wau9067zv
      committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
      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.
      28ec7457
  4. 12 Jun, 2010 2 commits
  5. 11 Jun, 2010 12 commits
  6. 10 Jun, 2010 2 commits
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · 0f9ddfa9
      Davi Arnaut authored
                  strict aliasing violations.
      
      One somewhat major source of strict-aliasing violations and
      related warnings is the SQL_LIST structure. For example,
      consider its member function `link_in_list` which takes
      a pointer to pointer of type T (any type) as a pointer to
      pointer to unsigned char. Dereferencing this pointer, which
      is done to reset the next field, violates strict-aliasing
      rules and might cause problems for surrounding code that
      uses the next field of the object being added to the list.
      
      The solution is to use templates to parametrize the SQL_LIST
      structure in order to deference the pointers with compatible
      types. As a side bonus, it becomes possible to remove quite
      a few casts related to acessing data members of SQL_LIST.
      
      sql/handler.h:
        Use the appropriate template type argument.
      sql/item.cc:
        Remove now-unnecessary cast.
      sql/item_subselect.cc:
        Remove now-unnecessary casts.
      sql/item_sum.cc:
        Use the appropriate template type argument.
        Remove now-unnecessary cast.
      sql/mysql_priv.h:
        Move SQL_LIST structure to sql_list.h
        Use the appropriate template type argument.
      sql/sp.cc:
        Remove now-unnecessary casts.
      sql/sql_delete.cc:
        Use the appropriate template type argument.
        Remove now-unnecessary casts.
      sql/sql_derived.cc:
        Remove now-unnecessary casts.
      sql/sql_lex.cc:
        Remove now-unnecessary casts.
      sql/sql_lex.h:
        SQL_LIST now takes a template type argument which must
        match the type of the elements of the list. Use forward
        declaration when the type is not available, it is used
        in pointers anyway.
      sql/sql_list.h:
        Rename SQL_LIST to SQL_I_List. The template parameter is
        the type of object that is stored in the list.
      sql/sql_olap.cc:
        Remove now-unnecessary casts.
      sql/sql_parse.cc:
        Remove now-unnecessary casts.
      sql/sql_prepare.cc:
        Remove now-unnecessary casts.
      sql/sql_select.cc:
        Remove now-unnecessary casts.
      sql/sql_show.cc:
        Remove now-unnecessary casts.
      sql/sql_table.cc:
        Remove now-unnecessary casts.
      sql/sql_trigger.cc:
        Remove now-unnecessary casts.
      sql/sql_union.cc:
        Remove now-unnecessary casts.
      sql/sql_update.cc:
        Remove now-unnecessary casts.
      sql/sql_view.cc:
        Remove now-unnecessary casts.
      sql/sql_yacc.yy:
        Remove now-unnecessary casts.
      storage/myisammrg/ha_myisammrg.cc:
        Remove now-unnecessary casts.
      0f9ddfa9
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · 6f3a540c
      Davi Arnaut authored
                 strict aliasing violations.
      
      Essentially, the problem is that large parts of the server were
      developed in simpler times (last decades, pre C99 standard) when
      strict aliasing and compilers supporting such optimizations were
      rare to non-existent. Thus, when compiling the server with a modern
      compiler that uses strict aliasing rules to perform optimizations,
      there are several places in the code that might trigger undefined
      behavior.
      
      As evinced by some recent bugs, GCC does a somewhat good of job
      misoptimizing such code, but on the other hand also gives warnings
      about suspicious code. One problem is that the warnings aren't
      always accurate, yet we can't afford to just shut them off as we
      might miss real cases. False-positive cases are aggravated mostly
      by casts that are likely to trigger undefined behavior.
      
      The solution is to start a cleanup process focused on fixing and
      reducing the amount of strict-aliasing related warnings produced
      by GCC and others compilers. A good deal of noise reduction can
      be achieved by just removing useless casts that are product of
      historical cruft and are likely to trigger undefined behavior if
      dereferenced.
      
      client/mysql.cc:
        Remove now-unnecessary casts.
        Break up large strings.
      client/mysql_upgrade.c:
        Remove now-unnecessary casts.
      client/mysqladmin.cc:
        Remove now-unnecessary casts.
        Break up large strings.
      client/mysqlbinlog.cc:
        Remove now-unnecessary casts.
      client/mysqlcheck.c:
        Remove now-unnecessary casts.
      client/mysqldump.c:
        Remove now-unnecessary casts.
      client/mysqlimport.c:
        Remove now-unnecessary casts.
      client/mysqlshow.c:
        Remove now-unnecessary casts.
      client/mysqlslap.c:
        Remove now-unnecessary casts.
      client/mysqltest.cc:
        Remove now-unnecessary casts.
      extra/comp_err.c:
        Remove now-unnecessary casts.
      extra/my_print_defaults.c:
        Remove now-unnecessary casts.
        Break up large strings.
      extra/mysql_waitpid.c:
        Remove now-unnecessary casts.
      extra/perror.c:
        Remove now-unnecessary casts.
      extra/resolve_stack_dump.c:
        Remove now-unnecessary casts.
      extra/resolveip.c:
        Remove now-unnecessary casts.
      include/my_getopt.h:
        Use a void pointer type as the opaque type to avoid problems with type
        incompatibility -- GCC issues warnings when the type name is not type
        compatible with a operand. As a side bonus, a explicit cast won't be
        necessary anymore.
      include/sslopt-longopts.h:
        Remove now-unnecessary casts.
        Break up large strings.
      mysys/my_getopt.c:
        Update opaque type and introduce a type definition for the
        argument to my_getopt_register_get_addr.
      server-tools/instance-manager/options.cc:
        Remove now-unnecessary casts.
      sql/mysqld.cc:
        Remove now-unnecessary casts.
        Break up large strings.
        Update mysql_getopt_value prototype (the old prototype
        was different from the definition anyway).
      sql/sql_plugin.cc:
        The type of a pointer to a function must be compatible with the
        pointed-to function type, otherwise the behavior is undefined.
      sql/table.cc:
        The variable buf pointer to pointer to pointer to constant char
        could improperly alias a incompatible type in call to fix_type_
        pointers. Since this was actually dead code, it is simply removed.
      sql/unireg.cc:
        Remove call to get_form_pos. The code creates a new FRM file which
        is always truncated and writes the form position as 0. Hence, no
        need to retrieve it, we now for sure it is 0.
      storage/archive/archive_reader.c:
        Remove now-unnecessary casts.
      storage/myisam/ft_nlq_search.c:
        Read weight directly from the buffer.
      storage/myisam/fulltext.h:
        Add explanation about the type duality of a key buffer.
        Add accessor macro to retrieve a FT float value.
      storage/myisam/mi_test1.c:
        Remove now-unnecessary casts.
      storage/myisam/myisam_ftdump.c:
        Read weight directly from the buffer.
      storage/myisam/myisamchk.c:
        Remove now-unnecessary casts.
      storage/myisam/myisamlog.c:
        A pointer to char was used to alias a pointer to pointer to
        unsigned char, thus violating strict aliasing rules.
      storage/myisam/myisampack.c:
        Remove now-unnecessary casts.
      strings/decimal.c:
        Remove aliasing violation, printing the value is enough for
        debugging purposes.
      tests/mysql_client_test.c:
        Remove now-unnecessary casts.
      6f3a540c