1. 30 Jun, 2008 1 commit
    • Sven Sandberg's avatar
      BUG#37200: rpl_switch_stm_row_mixed fails sporadically in pushbuild · 0a60bd22
      Sven Sandberg authored
      Problem: rpl_switch_stm_row_mixed did not wait until row events generated by
      INSERT DELAYED were written to the master binlog before it synchronized slave
      with master. This caused sporadic errors where these rows were missing on
      slave.
      Fix: wait until all rows appear on the slave.
      This is a backport, applying the same to 5.1-bugteam as was previously
      applied to 6.0-rpl
      0a60bd22
  2. 27 Jun, 2008 8 commits
    • Timothy Smith's avatar
      75b6ab90
    • Timothy Smith's avatar
      Merge from upstream (my:5.0-bugteam) · fe87c0db
      Timothy Smith authored
      fe87c0db
    • Timothy Smith's avatar
      Up-merge from 5.0: Fix for Bug#20748, Configuration files should not be read more than once · 18432cc4
      Timothy Smith authored
      Differences in 5.1: include "/etc/mysql/" in include directories; no OS/2 support.
      18432cc4
    • Gleb Shchepa's avatar
      auto merge from local tree · 89f06e9d
      Gleb Shchepa authored
      89f06e9d
    • Gleb Shchepa's avatar
      Fixed bug #36632: SELECT DISTINCT from a simple view on an · a8067140
      Gleb Shchepa authored
                        InnoDB table, where all selected columns
                        belong to the same unique index key, returns
                        incorrect results
      
      Server executes some queries via QUICK_GROUP_MIN_MAX_SELECT
      (MIN/MAX optimization for queries with GROUP BY or DISTINCT
      clause) and that optimization implies loose index scan, so all
      grouping is done by the QUICK_GROUP_MIN_MAX_SELECT::get_next
      method.
      
      The server does not set the precomputed_group_by flag for some
      QUICK_GROUP_MIN_MAX_SELECT queries and duplicates grouping by
      call to the end_send_group function.
      
      Fix: when the test_if_skip_sort_order function selects loose 
      index scan as a best way to satisfy an ORDER BY/GROUP BY type
      of query, the precomputed_group_by flag has been set to use 
      end_send/end_write functions instead of end_send_group/
      end_write_group functions.
      
      
      mysql-test/r/group_min_max_innodb.result:
        Fixed bug #36632: SELECT DISTINCT from a simple view on an
                          InnoDB table, where all selected columns
                          belong to the same unique index key, returns
                          incorrect results
      mysql-test/t/group_min_max_innodb.test:
        Fixed bug #36632: SELECT DISTINCT from a simple view on an
                          InnoDB table, where all selected columns
                          belong to the same unique index key, returns
                          incorrect results
      sql/sql_select.cc:
        Fixed bug #36632: SELECT DISTINCT from a simple view on an
                          InnoDB table, where all selected columns
                          belong to the same unique index key, returns
                          incorrect results
      a8067140
    • Gleb Shchepa's avatar
      merge 5.0-bugteam --> 5.1-bugteam · 46c7c724
      Gleb Shchepa authored
      46c7c724
    • Gleb Shchepa's avatar
      backport from 6.0 · b83b4697
      Gleb Shchepa authored
            
      Bug#35658 (An empty binary value leads to mysqld crash)
              
      Before this fix, the following token
        b''
      caused the parser to crash when reading the binary value from the empty string.
      The crash was caused by:
        ptr+= max_length - 1;
      because max_length is unsigned and was 0, causing an overflow.
              
      With this fix, an empty binary literal b'' is parsed as a binary value 0,
      in Item_bin_string.
      
      mysql-test/r/varbinary.result:
        Bug#35658 (An empty binary value leads to mysqld crash)
      mysql-test/t/varbinary.test:
        Bug#35658 (An empty binary value leads to mysqld crash)
      sql/item.cc:
        Bug#35658 (An empty binary value leads to mysqld crash)
      b83b4697
    • Gleb Shchepa's avatar
      backport to 5.1 from 6.0 · cb72f09c
      Gleb Shchepa authored
      Bug#35658 (An empty binary value leads to mysqld crash)
        
      Before this fix, the following token
        b''
      caused the parser to crash when reading the binary value from the empty string.
      The crash was caused by:
        ptr+= max_length - 1;
      because max_length is unsigned and was 0, causing an overflow.
        
      With this fix, an empty binary literal b'' is parsed as a binary value 0,
      in Item_bin_string.
      
      mysql-test/r/varbinary.result:
        Bug#35658 (An empty binary value leads to mysqld crash)
      mysql-test/t/varbinary.test:
        Bug#35658 (An empty binary value leads to mysqld crash)
      sql/item.cc:
        Bug#35658 (An empty binary value leads to mysqld crash)
      cb72f09c
  3. 25 Jun, 2008 4 commits
    • Matthias Leich's avatar
      Upmerge 5.0 -> 5.1 · e72132a5
      Matthias Leich authored
      e72132a5
    • Matthias Leich's avatar
      Fix for · 49417ad7
      Matthias Leich authored
      Bug#37492 timing bug in subselect.test
      + similar weaknesses found during testing
      + replace error numbers by error names
      49417ad7
    • Gleb Shchepa's avatar
      auto merge 5.1-main --> 5.1-bugteam · 696c03e4
      Gleb Shchepa authored
      696c03e4
    • Timothy Smith's avatar
      Bug #20748: Configuration files should not be read more than once · d5977e4c
      Timothy Smith authored
      Normalize directory names before adding them to default_directories.
      
      
      mysys/default.c:
        Normalize directory names with unpack_dirname() before adding them
        to default_directories.  This way, /etc/ and /etc will not count as
        duplicates.
        
        Because this entails allocating memory to store the normalized names,
        add error handling and ensure that it doesn't leak memory in case
        both my_print_defaults() and load_defaults() are called.
        
        Clean up the Windows code that finds the exe's parent directory, and
        pull it out into a separate function.
        
        Reorganize the code into a single init_default_directories() function,
        with internal #ifdefs, instead of init_default_directories_<system>()
        functions which were accessed via a function pointer.  This is more in
        line with normal MySQL coding style, and easier to read for some.
      d5977e4c
  4. 24 Jun, 2008 4 commits
  5. 21 Jun, 2008 1 commit
    • Tatiana A. Nurnberg's avatar
      auto merge · 32089863
      Tatiana A. Nurnberg authored
      configure.in:
        auto-merge
      mysql-test/suite/bugs/r/rpl_bug33029.result:
        auto-merge
      mysql-test/suite/bugs/t/rpl_bug33029.test:
        auto-merge
      sql/slave.cc:
        auto-merge
      sql/sql_class.cc:
        auto-merge
      sql/structs.h:
        auto-merge
      32089863
  6. 20 Jun, 2008 5 commits
  7. 19 Jun, 2008 10 commits
    • Andrei Elkin's avatar
      Bug#36443 Server crashes when executing insert when insert trigger on table · e66ba2a7
      Andrei Elkin authored
                              
            The crash appeared to be a result of allocating an instance of Discrete_interval 
            automatically that that was referred in out-of-declaration scope.
                              
            Fixed with correcting backing up and restoring scheme of
            auto_inc_intervals_forced, introduced by bug#33029, by means of shallow copying;
            added simulation code that forces executing those fixes of the former bug that
            targeted at master-and-slave having incompatible bug#33029-prone versions.
      
      mysql-test/suite/bugs/r/rpl_bug33029.result:
        new results file
      mysql-test/suite/bugs/t/rpl_bug33029.test:
        test merely checks no crash happens on slave.
      sql/slave.cc:
        forcing to execute special logics implemented for bug#33029 if
        simulate_bug33029 the debug option is set.
      sql/sql_class.cc:
        swaps of backed and the actual auto_inc_intervals_forced basing on shallow coping.
      sql/structs.h:
        Removing the deep _copy() and methods associated with it;
        adding methods to Discrete_intervals_list:
            
        private `=', copy constructor to prevent using;
        private set_members();
        public  copy_shallow(), swap(), get_{head, tail, current}();
                empty_no_free() through set_members().
      e66ba2a7
    • Davi Arnaut's avatar
      Silence unused variable warning by printing the variables value. · 1d00bbe0
      Davi Arnaut authored
      mysys/stacktrace.c:
        Print stack bottom and thread stack values as they might be useful.
      1d00bbe0
    • Gleb Shchepa's avatar
      auto merge · 666cc691
      Gleb Shchepa authored
      666cc691
    • Davi Arnaut's avatar
      Bug#37003 Tests sporadically crashes with embedded server · fcaaee63
      Davi Arnaut authored
      Another problem is that the backtrace facility wasn't being
      enabled for non-Linux targets even if the target OS has the
      backtrace functions. Also, the stacktrace functions inside
      mysqltest were being used without proper checks for their
      presence in the build.
      
      
      client/mysqltest.c:
        Only use stacktrace functions if they are available.
      configure.in:
        Check if the compiler defines __bss_start
      include/my_stacktrace.h:
        Enable stacktrace if system has backtrace functions.
      mysys/stacktrace.c:
        Use backtrace functions if the system supports it.
      sql/mysqld.cc:
        Only use stacktrace functions if they are available.
      fcaaee63
    • Gleb Shchepa's avatar
      auto merge with local tree (bug #37076) · b870be7b
      Gleb Shchepa authored
      b870be7b
    • Gleb Shchepa's avatar
      Fixed bug #37076: TIMESTAMP/DATETIME/DATE values are not · c8bc6a5d
      Gleb Shchepa authored
                        replicated correctly between machines with
                        mixed endiannes
      
      
      mysql-test/extra/rpl_tests/rpl_row_basic.test:
        Added regression test for bug#37076.
      mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
        Added regression test for bug#37076.
      mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
        Added regression test for bug#37076.
      mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
        Added regression test for bug#37076.
      sql/field.h:
        Fixed bug #37076: TIMESTAMP/DATETIME/DATE values are not
                          replicated correctly between machines with
                          mixed endiannes
        
        pack and unpack virtual methods have been overloaded for
        Field_timestamp (TIMESTAMP domain), Field_datetime (DATETIME
        domain) and Field_date (DATE domain) classes to replicate data
        between platforms with different endiannes in a correct way
        like in Field_long and Field_longlong classes.
        
        Common code have been moved to private handle_int32 and 
        handle_int64 private methods.
      c8bc6a5d
    • Tatiana A. Nurnberg's avatar
      re 36818: rpl_server_id1 fails expecting slave has stopped · b4a45a71
      Tatiana A. Nurnberg authored
      On a slow environment like valgrind the test is vulnerable
      because it does not check if slave has stopped at time
      of the new session is requested `start slave;' -- disabling
      test till it is fixed.
      
      mysql-test/suite/rpl/t/disabled.def:
        disable rpl_server_id1 until test is fixed.
      b4a45a71
    • Tatiana A. Nurnberg's avatar
      Bug#36434: ha_innodb.so is installed in the wrong directory · b564002d
      Tatiana A. Nurnberg authored
      ha_innodb.so was incorrectly installed in the lib/mysql
      directory rather than in lib/mysql/plugin.
      
      Amending CS for 31736.
      
      storage/innobase/Makefile.am:
        Install innobase to plugin-dir, not lib-dir.
      b564002d
    • Tatiana A. Nurnberg's avatar
      Bug#35480: BOM detection code crashes mysql CLI with zero-sized input · 7887a52d
      Tatiana A. Nurnberg authored
      MySQL client crashed if no input was passed to it.
      
      client/mysql.cc:
        Check if there's any data before reading it!
      7887a52d
    • Tatiana A. Nurnberg's avatar
      Fixed bug #37004. · f13393db
      Tatiana A. Nurnberg authored
      The value of JOIN::tables must be set to 0 when there
      is no matching min/max row.
      
      mysql-test/r/subselect.result:
        Added a test case for bug #37004.
      mysql-test/t/subselect.test:
        Added a test case for bug #37004.
      f13393db
  8. 18 Jun, 2008 6 commits
    • Matthias Leich mleich@mysql.com's avatar
      1. Upmerge of fix for the bugs · 672cb2c9
      Matthias Leich mleich@mysql.com authored
         37167 funcs_1: Many tests fail if the embedded
                        server is used.
         37164 funcs_1: Some tests fail if an optional
                        character set is missing.
         + some cleanup within the testsuite related to the
           fixes above
         + some adjustments to open bugs on Mac OS X
      2. Skip tests which suffer from bug
         37456 funcs_1: Several tests crash when used
                        with embedded server
      3. Minor cleanup in some tests
      672cb2c9
    • Davi Arnaut's avatar
      Bug#37003 Tests sporadically crashes with embedded server · fb8f32d0
      Davi Arnaut authored
      The problem was that when a embedded linked version of mysqltest
      crashed there was no way to obtain a stack trace if no core file
      is available. Another problem is that the embedded version of
      libmysql was not behaving (crash) the same as the non-embedded with
      respect to sending commands to a explicitly closed connection.
      
      The solution is to generate a mysqltest's stack trace on crash
      and to enable "reconnect" if the connection handle was explicitly
      closed so the behavior matches the non-embedded one.
      
      client/CMakeLists.txt:
        Link mysys to mysqltest.
      client/Makefile.am:
        Link mysys to mysqltest.
      client/mysqltest.c:
        Add fatal signal handling with backtracing for Unix and Windows.
      configure.in:
        Add check for weak symbols support and remove a spurious word.
      include/Makefile.am:
        Add new header with prototype for stack tracing functions.
      include/my_stacktrace.h:
        Add new header with prototype for stack tracing functions.
      libmysqld/CMakeLists.txt:
        stack tracing is now part of mysys.
      libmysqld/Makefile.am:
        stack tracing is now part of mysys.
      libmysqld/lib_sql.cc:
        Re-connect if connection was explicitly closed. This is
        done to match the behavior of the non-embeded libmysql.
      mysql-test/t/sql_low_priority_updates_func.test:
        Test expects parallelism between queries that cannot be
        guaranteed under embedded.
      mysys/CMakeLists.txt:
        Add stacktrace to mysys.
      mysys/Makefile.am:
        Add stacktrace to mysys.
      mysys/stacktrace.c:
        Move stacktrace to mysys and add weak symbol for the
        C++ name de-mangling function so that it can later be
        overridden in C++ code. Also add my_ prefix to exported
        functions.
      sql/CMakeLists.txt:
        stacktrace was moved to mysys.
      sql/Makefile.am:
        stacktrace was moved to mysys.
      sql/mysqld.cc:
        Add my_ prefix to mysys functions.
      fb8f32d0
    • Matthias Leich mleich@mysql.com's avatar
      Fix for · 2356d4f5
      Matthias Leich mleich@mysql.com authored
           Bug#37167 funcs_1: Many tests fail if the embedded server is used.
           Bug#37164 funcs_1: Some tests fail if an optional character set is missing.
      + some cleanup within the testsuite related to the fixes above
      + some adjustments to open bugs on Mac OS X
      2356d4f5
    • Timothy Smith's avatar
    • Timothy Smith's avatar
      fix typo · 211e9c08
      Timothy Smith authored
      This change was committed to the 5.1.25 release clone, but never
      made it to the mysql-5.1 BK tree.  I'm committing it to mysql-5.1
      bzr now.
      211e9c08
    • Timothy Smith's avatar
      Bug #37024: Wrong location of messagefiles · 3facc822
      Timothy Smith authored
      make_binary_distribution.sh got clobbered by the 5.0 version during a merge.
      This caused a few packaging problems, including message files put in the wrong
      place and some missing files.  Fix is just to revert back to the 5.1 version
      from before the merge.
      
      Problem introduced in
      ChangeSet 1.2606.2.1 2008/05/13 15:56:07 kent@kent-amd64.(none)
      
      This change was made in the 5.1.25 release clone in BK, but never made it to the main mysql-5.1 BK tree.  I am adding it to mysql-5.1 bzr.
      3facc822
  9. 17 Jun, 2008 1 commit
    • Davi Arnaut's avatar
      Bug#33873: Fast ALTER TABLE doesn't work with multibyte character sets · 5d237db6
      Davi Arnaut authored
      The problem was that when comparing tables for a possible
      fast alter table, the comparison was being performed using
      the parsed information and not the final definition.
            
      The solution is to use the possible final table layout to
      compare if a fast alter is possible or not.
      
      mysql-test/include/mix1.inc:
        Disable test case for Bug 21704 as it hasn't been fixed.
      mysql-test/r/alter_table.result:
        Add test case result for Bug#33873
      mysql-test/r/innodb_mysql.result:
        Update test case result
      mysql-test/t/alter_table.test:
        Add test case for Bug#33873
      sql/sql_table.cc:
        Use updated (final) information to compare fields.
      5d237db6