1. 18 Jul, 2011 1 commit
    • Tor Didriksen's avatar
      Bug#12537160 ASSERTION FAILED: STOP0 <= &TO->BUF[TO->LEN] WITH LARGE NUMBER. · fe57d0d5
      Tor Didriksen authored
      Turns out the DBUG_ASSERT added by fix for Bug#11792200 was overly pessimistic:
      'stop0' is used in the main loop of do_div_mod, but we only dereference 'buf0'
      for div operations, not for mod.
      
      
      mysql-test/r/func_math.result:
        New test case.
      mysql-test/t/func_math.test:
        New test case.
      strings/decimal.c:
        Move DBUG_ASSERT down to where we actually dereference the loop pointer.
      fe57d0d5
  2. 15 Jul, 2011 4 commits
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.1. · a185148b
      Alexander Nozdrin authored
      a185148b
    • Alexander Nozdrin's avatar
      Backport a fix for Bug#59060 (Valgrind warning in Protocol_text::store()). · da51493a
      Alexander Nozdrin authored
      Original changeset:
      revision-id: alexander.nozdrin@oracle.com-20101221122349-6h8ammcro70a4pac
      parent: sven.sandberg@oracle.com-20101221121948-hnivuulyohzch1v4
      committer: Alexander Nozdrin <alexander.nozdrin@oracle.com>
      branch nick: mysql-trunk-bugfixing
      timestamp: Tue 2010-12-21 15:23:49 +0300
      message:
        A patch for Bug#59060 (Valgrind warning in Protocol_text::store()).
        
        We should not assume to have zero-terminated strings.
      da51493a
    • Luis Soares's avatar
      Automerge from mysql-5.1 into mysql-5.5. · 6def22d1
      Luis Soares authored
      6def22d1
    • Luis Soares's avatar
      DBUG_PRINT in solaris does not work well with NULL parameters. · 770b03f9
      Luis Soares authored
      HA_ERR was returning 0 (null string) when no error happened 
      (error=0). Since HA_ERR is used in DBUG_PRINT, regardless there 
      was an error or not, the server could crash in solaris debug
      builds.
      
      We fix this by:
      
        - deploying an assertion that ensures that the function 
          is not called when no error has happened;
        - making sure that HA_ERR is only called when an error 
          happened;
        - making HA_ERR return "No Error", instead of 0, for 
          non-debug builds if it is called when no error happened.
      
      This will make HA_ERR return values to work with DBUG_PRINT on
      solaris debug builds.
      770b03f9
  3. 14 Jul, 2011 3 commits
    • Luis Soares's avatar
      BUG#11753004 · 55fbe4c3
      Luis Soares authored
      Manual merge from mysql-5.1 into mysql-5.5.
      55fbe4c3
    • Luis Soares's avatar
      BUG#11753004: 44360: REPLICATION FAILED · 1b1e1e05
      Luis Soares authored
                        
      The server crashes if it processes table map events that are
      corrupted, especially if they map different tables to the same
      identifier. This could happen, for instance, due to BUG 56226.
                        
      We fix this by checking whether the table map has already been
      mapped before actually applying the event. If it has been mapped
      with different settings an error is raised and the slave SQL
      thread stops. If it has been mapped with same settings the event
      is skipped. If the table is set to be ignored by the filtering
      rules, there is no change in behavior: the event is skipped and
      ids are not checked.
      
      
      mysql-test/suite/rpl/t/rpl_row_corruption.test:
        Added a simple test case that checks both cases:
        - multiple table maps with the same identifier
        - multiple table maps with the same identifier, but only one
          is processed (the others are filtered out)
      1b1e1e05
    • Anitha Gopi's avatar
      Bug#12561297 : Disabled the test · c84fac29
      Anitha Gopi authored
      c84fac29
  4. 13 Jul, 2011 1 commit
  5. 12 Jul, 2011 3 commits
    • Luis Soares's avatar
      BUG#12695969 · d0b76217
      Luis Soares authored
        
      Automerged from mysql-5.1 into mysql-5.5 (empty cset).
      d0b76217
    • Luis Soares's avatar
      BUG#12695969 · 9c4287f4
      Luis Soares authored
      Manually merged from mysql-5.0 into mysql-5.1.
      
      conflicts
      =========
      
      include/Makefile.am
      9c4287f4
    • Luis Soares's avatar
      BUG#12695969 · 34d33506
      Luis Soares authored
      Follow-up patch that adds the newly added header file to
      Makefile.am noinst_HEADERS.
      34d33506
  6. 11 Jul, 2011 3 commits
    • Luis Soares's avatar
      BUG#12695969 · 00c3b2e6
      Luis Soares authored
      Manually merged from mysql-5.1:
      
        - fixed mysqlbinlog copyright year: 2001 --> 2000
        - fixed address in license header
      
      conflicts
      =========
      
       - client/mysqlbinlog.cc
       - include/welcome_copyright_notice.h
      00c3b2e6
    • Luis Soares's avatar
      BUG#12695969 · 39f76b60
      Luis Soares authored
      Manually merged mysql-5.0 into mysql-5.1.
      
      conflicts
      =========
      client/mysqlibinlog.cc
      39f76b60
    • Luis Soares's avatar
      BUG#12695969: FIX OUTDATED COPYRIGHT NOTICES IN REPLACTION · fac2ec36
      Luis Soares authored
      CLIENT TOOLS
            
      The fix is to backport part of revision:
              
        - alexander.nozdrin@oracle.com-20101006150613-ls60rb2tq5dpyb5c
            
      from mysql-5.5. In detail, we add the oracle welcome notice
      header file proposed in the original patch and include/use it
      in client/mysqlbinlog.cc, replacing the existing and obsolete
      notice.
      fac2ec36
  7. 08 Jul, 2011 1 commit
    • unknown's avatar
      Null Merge from mysql-5.1 with second fix for Bug#12637786 · 91418e81
      unknown authored
      Bug#12637786 was fixed with rb:692 by marko.  But that fix has a remaining
      bug.  It added this assert;
          ut_ad(ind_field->prefix_len);
      before a section of code that assumes there is a prefix_len.  
      
      The patch replaced code that explicitly avoided this with a check for
      prefix_len.  It turns out that the purge thread can get to that assert
      without a prefix_len because it does not use a row_ext_t* .
      When UNIV_DEBUG is not defined, the affect of this is that the purge thread
      sets the dfield->len to zero and then cannot find the entry in the index to
      purge.  So secondary index entries remain unpurged.
      
      This patch does not do the assert.  Instead, it uses
          'if (ind_field->prefix_len) {...}'
      around the section of code that assumes a prefix_len.  This is the way the
      patch I provided to Marko did it.
      
      The test case is simply modified to do a sleep(10) in order to give the
      purge thread a chance to run. Without the code change to row0row.c, this
      modified testcase will assert if InnoDB was compiled with UNIV_DEBUG.
      I tried to sleep(5), but it did not always assert.
      91418e81
  8. 07 Jul, 2011 6 commits
    • unknown's avatar
      Bug#12637786 was fixed with rb:692 by marko. But that fix has a remaining · be4b8c6d
      unknown authored
      bug.  It added this assert;
          ut_ad(ind_field->prefix_len);
      before a section of code that assumes there is a prefix_len.  
      
      The patch replaced code that explicitly avoided this with a check for
      prefix_len.  It turns out that the purge thread can get to that assert
      without a prefix_len because it does not use a row_ext_t* .
      When UNIV_DEBUG is not defined, the affect of this is that the purge thread
      sets the dfield->len to zero and then cannot find the entry in the index to
      purge.  So secondary index entries remain unpurged.
      
      This patch does not do the assert.  Instead, it uses
          'if (ind_field->prefix_len) {...}'
      around the section of code that assumes a prefix_len.  This is the way the
      patch I provided to Marko did it.
      
      The test case is simply modified to do a sleep(10) in order to give the
      purge thread a chance to run. Without the code change to row0row.c, this
      modified testcase will assert if InnoDB was compiled with UNIV_DEBUG.
      I tried to sleep(5), but it did not always assert.
      be4b8c6d
    • Joerg Bruehe's avatar
      Upmerge the 45415 fix from 5.1 to 5.5 · cded107a
      Joerg Bruehe authored
      cded107a
    • Joerg Bruehe's avatar
      Fix bug#45415: "rpm upgrade recreates test database" · 622fb276
      Joerg Bruehe authored
      Let the creation of the "test" database happen only during a new
      installation, not in an RPM upgrade.
      622fb276
    • Davi Arnaut's avatar
      Bug#12727287: Maintainer mode compilation fails with gcc 4.6 · db6797ca
      Davi Arnaut authored
      GCC 4.6 has new -Wunused-but-set-variable flag, which is enabled
      by -Wall, that causes GCC to emit a warning whenever a local variable
      is assigned to, but otherwise unused (aside from its declaration).
      
      Since the maintainer mode uses -Wall and -Werror, source code which
      triggers these warnings will be rejected. That is, these warnings
      become hard errors.
      
      The solution is to fix the code which triggers these specific warnings.
      In most of the cases, this is a welcome cleanup as code which triggers
      this warning is probably dead anyway.
      
      dbug/dbug.c:
        Unused but set.
      libmysqld/lib_sql.cc:
        Length is not necessary as the converted error message is always
        null-terminated.
      sql/item_func.cc:
        Make get_var_with_binlog private to this compilation unit.
        If a error was raised, do not attempt to evaluate the user
        variable as the statement execution will be interrupted
        anyway.
      sql/mysqld.cc:
        Use a void expression to silence the warning. Avoids the use of
        macros that would make the code more unreadable than it already is.
      sql/protocol.cc:
        Length is not necessary as the converted error message is always
        null-terminated. Remove unnecessary casts and assignment.
      sql/sql_class.h:
        Function is only used in a single compilation unit.
      sql/sql_load.cc:
        Only use the variable outside of EMBEDDED_LIBRARY.
      storage/innobase/btr/btr0cur.c:
        Do not retrieve field, only the record length is being used.
      storage/perfschema/pfs.cc:
        Use a void expression to silence the warning.
      tests/mysql_client_test.c:
        Unused but set.
      unittest/mysys/lf-t.c:
        Unused but set.
      db6797ca
    • Georgi Kodinov's avatar
      merge mysql-5.1->mysql-5.5 · 21291b1d
      Georgi Kodinov authored
      21291b1d
    • Georgi Kodinov's avatar
      empty weave merge from mysql-5.0 · f1873a16
      Georgi Kodinov authored
      f1873a16
  9. 06 Jul, 2011 1 commit
  10. 05 Jul, 2011 2 commits
  11. 04 Jul, 2011 1 commit
  12. 03 Jul, 2011 2 commits
  13. 01 Jul, 2011 2 commits
  14. 30 Jun, 2011 3 commits
  15. 29 Jun, 2011 1 commit
  16. 21 Jun, 2011 1 commit
    • Alexander Nozdrin's avatar
      Patch for Bug 12652769 - 61470: CASE OPERATOR IN STORED ROUTINE RETAINS · 2385f627
      Alexander Nozdrin authored
      OLD VALUE OF INPUT PARAMETER.
      
      The user-visible problem was that CASE-control-flow function
      (not CASE-statement) misbehaved in stored routines under some
      circumstances. The problem resulted in a crash or wrong data
      returned. The error happened when expressions in CASE-function
      were not of the same character set.
      
      A CASE-function should return values of the same character set
      for all branches. Internally, that means a new Item-instance
      for the CONVERT(... USING <some charset>)-function is added
      to the item tree when needed. The problem was that such changes
      were not properly recorded using THD::change_item_tree(),
      thus dangling pointers remain in the item tree after
      THD::rollback_item_tree_changes(), which lead to undefined
      behavior (i.e. crash / wrong data) for subsequent executions of
      the stored routine.
      
      This bug was introduced by a patch for Bug 11753363
      (44793 - CHARACTER SETS: CASE CLAUSE, UCS2 OR UTF32, FAILURE).
      
      The fixed function is Item_func_case::fix_length_and_dec().
      New CONVERT-items are added in agg_item_set_converter(),
      which calls THD::change_item_tree().
      
      The problem was that an intermediate array was passed
      to agg_item_set_converter(). Thus, THD::change_item_tree() there
      was called on intermediate objects.
      
      Note: those intermediate objects are allocated on THD's
      memory root, so it's Ok to put them into "changed item lists".
      
      The fix is to track changes on the correct objects.
      2385f627
  17. 13 Jun, 2011 1 commit
  18. 10 Jun, 2011 2 commits
  19. 08 Jun, 2011 1 commit
  20. 07 Jun, 2011 1 commit