1. 11 Dec, 2009 6 commits
    • Evgeny Potemkin's avatar
      Auto-merged fix for bug#49489. · b358f61b
      Evgeny Potemkin authored
      b358f61b
    • V Narayanan's avatar
      merging with mysql-5.1-bugteam · 75ee7198
      V Narayanan authored
      75ee7198
    • V Narayanan's avatar
      Bug#49521 SHOW CREATE TABLE on IBMDB2I tables has incorrect fk constraint format · 1704a8a9
      V Narayanan authored
      The fix inserts newline and comma characters as appropriate
      into the constraint reporting code to match the formatting
      required by SHOW CREATE TABLE. Additionally, a erroneously
      duplicated copy of check_if_incompatible_data() was removed
      from db2i_constraints.cc since the correct version is already
      in ha_ibmdb2i.cc.
      1704a8a9
    • V Narayanan's avatar
      Bug#49329 example (and other) engines use wrong collation for open tables hash · e3df8b6d
      V Narayanan authored
      This fix changes the character set used within the
      IBMDB2I handler to hash table names to information
      about open tables. Previously, tables with names
      that differed only in letter case would hash to the
      same data structure. This caused incorrect behavior
      or errors when two such tables were in use simultaneously.
      e3df8b6d
    • 's avatar
      Bug #48742 Replication: incorrect help text for --init-slave · 350737bf
      authored
            
      The help text for --init-slave=name:
      "Command(s) that are executed when a slave connects to this master".
      This text indicate that the --init-slave option is set on a  master 
      server, and the master server passes the option's argument to slave 
      which connects to it. This is wrong. Actually the --init-slave option 
      just can be set on a slave server, and then the slave server executes 
      the argument each time the SQL thread starts.
      
      Correct the help text for --init-slave option as following:
      "Command(s) that are executed by a slave server each time the SQL thread starts."
      350737bf
    • 's avatar
      Bug #48742 Replication: incorrect help text for --init-slave · af22ba91
      authored
      The help text for --init-slave=name:
      "Command(s) that are executed when a slave connects to this master".
      This text indicate that the --init-slave option is set on a  master 
      server, and the master server passes the option's argument to slave 
      which connects to it. This is wrong. Actually the --init-slave option 
      just can be set on a slave server, and then the slave server executes 
      the argument each time the SQL thread starts.
      
      Correct the help text for --init-slave option as following:
      "Command(s) that are executed by a slave server each time the SQL thread starts."
      af22ba91
  2. 10 Dec, 2009 8 commits
  3. 09 Dec, 2009 7 commits
    • Evgeny Potemkin's avatar
      Bug#49489: Uninitialized cache led to a wrong result. · 69fa790f
      Evgeny Potemkin authored
      Arg_comparator uses Item_cache objects to store constants being compared when
      they're need a type conversion. Because this cache wasn't initialized properly
      Arg_comparator might produce wrong comparison result.
      
      The Arg_comparator::cache_converted_constant function now initializes cache
      prior to usage.
      69fa790f
    • Alfranio Correia's avatar
      ebed1914
    • Olav Sandstaa's avatar
      Fix for Bug#49506 Valgrind error in make_cond_for_table_from_pred · 2b0642a6
      Olav Sandstaa authored
            
      This fix has been proposed by Sergey Petrunya and has been contributed
      under SCA by sca@askmonty.org.
            
      The cause for this valgrind error is that in the function
      add_cond_and_fix() in sql_select.cc an Item_cond_and object is
      created. This is marked as fixed but does not have a correct
      table_map() attribute. Later, in make_join_select(), if
      engine_condition_pushdown is in use, this table map is used and
      results in the valgrind error.
            
      The fix is to add a call to update_used_tables() in add_cond_and_fix()
      so that the table map is updated correctly.
            
      This patch is tested by multiple existing tests (e.g. the tests
      innodb_mysql, innodb, fulltext, compress all produces this valgrind
      warning/error without this fix).
      2b0642a6
    • He Zhenxing's avatar
      Merge from 5.0-bugteam · a8a01f20
      He Zhenxing authored
      a8a01f20
    • He Zhenxing's avatar
      removed rpl_killed_ddl from disabled list · 714348a8
      He Zhenxing authored
      714348a8
    • He Zhenxing's avatar
      Merge Bug#45520 fix from 5.0-bugteam · bda9422a
      He Zhenxing authored
      bda9422a
    • He Zhenxing's avatar
      BUG#45520 rpl_killed_ddl fails sporadically in pb2 · 9058e481
      He Zhenxing authored
      There are three issues that caused rpl_killed_ddl fails sporadically
      in pb2:
      
       1) thd->clear_error() was not called before create Query event
      if operation is executed successfully.
       2) DATABASE d2 might do exist because the statement to CREATE or
      ALTER it was killed
       3) because of bug 43353, kill the query that do DROP FUNCTION or
          DROP PROCEDURE can result in SP not found
      
      This patch fixed all above issues by:
       1) Called thd->clear_error() if the operation succeeded.
       2) Add IF EXISTS to the DROP DATABASE d2 statement
       3) Temporarily disabled testing DROP FUNCTION/PROCEDURE IF EXISTS.
      9058e481
  4. 08 Dec, 2009 1 commit
  5. 07 Dec, 2009 2 commits
  6. 06 Dec, 2009 5 commits
    • Luis Soares's avatar
      Automerge bzr bundle from bug report. · 1ee79014
      Luis Soares authored
      Removed rpl_cross_version from experimental list.
      1ee79014
    • Luis Soares's avatar
    • Luis Soares's avatar
      BUG#49119: Master crashes when executing 'REVOKE ... ON · 289c1493
      Luis Soares authored
      {PROCEDURE|FUNCTION} FROM ...'
      
      The master would hit an assertion when binary log was
      active. This was due to the fact that the thread's diagnostics
      area was being cleared before writing to the binlog,
      independently of mysql_routine_grant returning an error or
      not. When mysql_routine_grant was to return an error, the return
      value and the diagnostics area contents would
      mismatch. Consequently, neither my_ok would be called nor an
      error would be signaled in the diagnostics area, eventually
      triggering the assertion in net_end_statement.
      
      We fix this by not clearing the diagnostics area at binlogging
      time. 
      289c1493
    • Staale Smedseng's avatar
      Merge from 5.0 · d5391ed6
      Staale Smedseng authored
      d5391ed6
    • Staale Smedseng's avatar
      Bug #47391 no stack trace printed to error log on · 846c81c7
      Staale Smedseng authored
      solaris after a crash
            
      This patch adds a Solaris-specific version of
      print_stacktrace() which uses printstack(2), available on all
      Solaris versions since Solaris 9. (While Solaris 11 adds
      support for the glibc functions backtrace_*() as of
      PSARC/2007/162, printstack() is used for consistency over all
      Solaris versions.)
      
      The symbol names are mangled, so use of c++filt may be
      required as described in the MySQL documentation.
      846c81c7
  7. 05 Dec, 2009 1 commit
  8. 04 Dec, 2009 4 commits
    • Ramil Kalimullin's avatar
      Fix for bug#49199: Optimizer handles incorrectly: · 7888c983
      Ramil Kalimullin authored
      field='const1' AND field='const2' in some cases
      
      Building multiple equality predicates containing
      a constant which is compared as a datetime (with a field)
      we should take this fact into account and compare the 
      constant with another possible constatns as datetimes 
      as well.
      
      E.g. for the
      SELECT ... WHERE a='2001-01-01' AND a='2001-01-01 00:00:00'
      we should compare '2001-01-01' with '2001-01-01 00:00:00' as
      datetimes but not as strings.
      7888c983
    • Davi Arnaut's avatar
      Bug#49141: Encode function is significantly slower in 5.1 compared to 5.0 · 96a3a92c
      Davi Arnaut authored
      The problem was that the multiple evaluations of a ENCODE or
      DECODE function within a single statement caused the random
      generator to be reinitialized at each evaluation, even though
      the parameters were constants.
      
      The solution is to initialize the random generator only once
      if the password (seed) parameter is constant.
      
      This patch borrows code and ideas from Georgi Kodinov's patch.
      96a3a92c
    • Davi Arnaut's avatar
      Bug#41569: mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table but does not set values · a2d630d0
      Davi Arnaut authored
      Post-merge fix: Redirect stderr to a file as to avoid buffering
      problems due to redirecting stderr to stdout.
      a2d630d0
    • Alfranio Correia's avatar
      BUG#45292 orphan binary log created when starting server twice · e362e9a7
      Alfranio Correia authored
      This patch fixes three bugs as follows. First, aborting the server while purging
      binary logs might generate orphan files due to how the purge operation was
      implemented:
      
                (purge routine - sql/log.cc - MYSQL_BIN_LOG::purge_logs)
      
            1 - register the files to be removed in a temporary buffer.
            2 - update the log-bin.index.
            3 - flush the log-bin.index.
            4 - erase the files whose names where register in the temporary buffer
            in step 1.
      
      Thus a failure while  executing step 4 would generate an orphan file. Second,
      a similar issue might happen while creating a new binary as follows:
      
                (create routine - sql/log.cc - MYSQL_BIN_LOG::open)
      
            1 - open the new log-bin.
            2 - update the log-bin.index.
      
      Thus a failure while executing step 1 would generate an orphan file.
      
      To fix these issues, we record the files to be purged or created before really
      removing or adding them. So if a failure happens such records can be used to
      automatically remove dangling files. The new steps might be outlined as follows:
      
                (purge routine - sql/log.cc - MYSQL_BIN_LOG::purge_logs)
      
            1 - register the files to be removed in the log-bin.~rec~ placed in
            the data directory.
            2 - update the log-bin.index.
            3 - flush the log-bin.index.
            4 - delete the log-bin.~rec~.
      
                (create routine - sql/log.cc - MYSQL_BIN_LOG::open)
      
            1 - register the file to be created in the log-bin.~rec~
            placed in the data directory.
            2 - open the new log-bin.
            3 - update the log-bin.index.
            4 - delete the log-bin.~rec~.
      
                (recovery routine - sql/log.cc - MYSQL_BIN_LOG::open_index_file)
      
            1 - open the log-bin.index.
            2 - open the log-bin.~rec~.
            3 - for each file in log-bin.~rec~.
              3.1 Check if the file is in the log-bin.index and if so ignore it.
              3.2 Otherwise, delete it.
      
      The third issue can be described as follows. The purge operation was allowing
      to remove a file in use thus leading to the loss of data and possible
      inconsistencies between the master and slave. Roughly, the routine was only
      taking into account the dump threads and so if a slave was not connect the
      file might be delete even though it was in use.
      e362e9a7
  9. 03 Dec, 2009 6 commits