1. 11 Dec, 2009 3 commits
    • 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 6 commits
    • 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 7 commits
    • Gleb Shchepa's avatar
      Bug #38883: thd_security_context is not thread safe, crashes? · 2a878de0
      Gleb Shchepa authored
      After-push minor code cleanup for WL 2360: unnecessary external
      reference to LOCK_thread_count has been removed from ha_innodb.cc.
      2a878de0
    • lars-erik.bjork@sun.com's avatar
      This is a patch for bug#41569. · 99654c27
      lars-erik.bjork@sun.com authored
      "mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table but does
      not set values".
                  
      mysql_upgrade (ver 5.1) adds 3 fields (character_set_client, 
      collation_connection and db_collation) to the mysql.proc table, but 
      does not set any values. When we run stored procedures, which were 
      created with mysql 5.0, a warning is logged into the error log.
                  
      The solution to this is for mysql_upgrade to set default best guess
      values for these fields. A warning is also written during upgrade, to
      make the user aware that default values are set.
      99654c27
    • Evgeny Potemkin's avatar
      Auto-merged. · c286b411
      Evgeny Potemkin authored
      c286b411
    • Evgeny Potemkin's avatar
      Auto-merged. · eb911422
      Evgeny Potemkin authored
      eb911422
    • Evgeny Potemkin's avatar
      Bug#48508: Crash on prepared statement re-execution. · a2f18f44
      Evgeny Potemkin authored
      Test case cleanup.
      a2f18f44
    • Georgi Kodinov's avatar
      Bug #48985: show create table crashes if previous access to the table was killed · 1457d7b3
      Georgi Kodinov authored
      When checking for an error after removing the special view error handler the code
      was not taking into account that open_tables() may fail because of the current
      statement being killed. 
      Added a check for thd->killed.
      Added a client program to test it.
      1457d7b3
    • Alexander Barkov's avatar
      Bug#44131 Binary-mode "order by" returns records in incorrect order for UTF-8 strings · 3707a74e
      Alexander Barkov authored
      Problem: Item_char_typecast reported wrong max_length when
      casting to BINARY, which lead, in particular, in wrong
      "ORDER BY BINARY(char_column)" results.
      
      Fix: making Item_char_typecast report correct max_length.
      
        @ mysql-test/r/ctype_utf16.result
          Fixing old incorrect test result.
        @ mysql-test/r/ctype_utf32.result
          Fixing old incorrect test result.
        @ mysql-test/r/ctype_utf8.result
          Adding new test
        @ mysql-test/t/ctype_utf8.test
          Adding new test
        @ sql/item_timefunc.cc
          Making Item_char_typecast report correct max_length
          when cast is done to BINARY.
      3707a74e
  10. 02 Dec, 2009 3 commits
    • Evgeny Potemkin's avatar
      Auto-merged. · e4344ffa
      Evgeny Potemkin authored
      e4344ffa
    • Evgeny Potemkin's avatar
      Auto-merged fix for the bug#48508. · 1a0f3c38
      Evgeny Potemkin authored
      1a0f3c38
    • Alexander Barkov's avatar
      Bug#48766 SHOW CREATE FUNCTION returns extra data in return clause · f81700aa
      Alexander Barkov authored
      Problem: SHOW CREATE FUNCTION and SELECT DTD_IDENTIFIER FROM I_S.ROUTINES
      returned wrong values in case of ENUM return data type and UCS2
      character set.
      
      Fix: the string to collect returned data type was incorrectly set to
      "binary" character set, therefore UCS2 values where returned with
      extra '\0' characters.
      Setting string character set to creation_ctx->get_client_cs()
      in sp_find_routine(), and to system_charset_info in sp_create_routine
      fixes the problem.
      
      Adding tests:
      - the original test with Latin letters
      - an extra test with non-Latin letters
      f81700aa