1. 08 Aug, 2011 1 commit
  2. 02 Aug, 2011 1 commit
    • Sergey Glukhov's avatar
      Bug#11766594 59736: SELECT DISTINCT.. INCORRECT RESULT WITH DETERMINISTIC FUNCTION IN WHERE C · 3468b55a
      Sergey Glukhov authored
      There is an optimization of DISTINCT in JOIN::optimize()
      which depends on THD::used_tables value. Each SELECT statement
      inside SP resets used_tables value(see mysql_select()) and it
      leads to wrong result. The fix is to replace THD::used_tables
      with LEX::used_tables.
      
      
      mysql-test/r/sp.result:
        test case
      mysql-test/t/sp.test:
        test case
      sql/sql_base.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_class.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_class.h:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_insert.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_lex.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_lex.h:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_prepare.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_select.cc:
        THD::used_tables is replaced with LEX::used_tables
      3468b55a
  3. 27 Jul, 2011 2 commits
  4. 22 Jul, 2011 2 commits
    • Alexander Nozdrin's avatar
      Manual merge from mysql-5.0. · 3a786df2
      Alexander Nozdrin authored
      3a786df2
    • Alexander Nozdrin's avatar
      For for Bug#12696072: FIX OUTDATED COPYRIGHT NOTICES IN RUNTIME RELATED CLIENT · cb523995
      Alexander Nozdrin authored
      TOOLS
      
      Backport a fix for Bug 57094 from 5.5.
      The following revision was backported:
      
      # revision-id: alexander.nozdrin@oracle.com-20101006150613-ls60rb2tq5dpyb5c
      # parent: bar@mysql.com-20101006121559-am1e05ykeicwnx48
      # committer: Alexander Nozdrin <alexander.nozdrin@oracle.com>
      # branch nick: mysql-5.5-bugteam-bug57094
      # timestamp: Wed 2010-10-06 19:06:13 +0400
      # message:
      #   Fix for Bug 57094 (Copyright notice incorrect?).
      #   
      #   The fix is to:
      #     - introduce ORACLE_WELCOME_COPYRIGHT_NOTICE define to have a single place
      #       to specify copyright notice;
      #     - replace custom copyright notices with ORACLE_WELCOME_COPYRIGHT_NOTICE
      #       in programs.
      cb523995
  5. 19 Jul, 2011 1 commit
  6. 18 Jul, 2011 1 commit
  7. 15 Jul, 2011 3 commits
    • Bjorn Munch's avatar
      merge from 5.1 main · 575d1652
      Bjorn Munch authored
      575d1652
    • Alexander Nozdrin's avatar
      Backport a fix for Bug#59060 (Valgrind warning in Protocol_text::store()). · 56931dd0
      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.
      56931dd0
    • Luis Soares's avatar
      DBUG_PRINT in solaris does not work well with NULL parameters. · 72857dc8
      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.
      72857dc8
  8. 14 Jul, 2011 1 commit
    • Luis Soares's avatar
      BUG#11753004: 44360: REPLICATION FAILED · bf7d414b
      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)
      bf7d414b
  9. 12 Jul, 2011 3 commits
    • Tatjana Azundris Nuernberg's avatar
      Bug#11758414/Bug#50614: Default storage_engine not honored when set from within a stored procedure · 083a316d
      Tatjana Azundris Nuernberg authored
      When CREATE TABLE wasn't given ENGINE=... it would determine
      the default ENGINE at parse-time rather than at execution
      time, leading to incorrect behaviour (namely, later changes
      to the default engine being ignore) when calling CREATE TABLE
      from a stored procedure.
      
      We now defer working out the default engine till execution of
      CREATE TABLE.
      
      
      mysql-test/r/sp_trans.result:
        results!
      mysql-test/t/sp_trans.test:
        Show that CREATE TABLE (called from store routine) heeds
        any changes after CREATE SP / parse-time. Show that explicitly
        requesting an ENGINE still works.
      sql/sql_parse.cc:
        If no ENGINE=... was given at parse-time, determine default
        engine at execution time of CREATE TABLE.
      sql/sql_yacc.yy:
        If CREATE TABLE is not given ENGINE=..., don't bother
        figuring out the default engine during parsing; we'll
        do it at execution time instead to be aware of the
        latest updates.
      083a316d
    • Luis Soares's avatar
      BUG#12695969 · 624ed50e
      Luis Soares authored
      Manually merged from mysql-5.0 into mysql-5.1.
      
      conflicts
      =========
      
      include/Makefile.am
      624ed50e
    • Luis Soares's avatar
      BUG#12695969 · b9dd956a
      Luis Soares authored
      Follow-up patch that adds the newly added header file to
      Makefile.am noinst_HEADERS.
      b9dd956a
  10. 11 Jul, 2011 2 commits
    • Luis Soares's avatar
      BUG#12695969 · e018925a
      Luis Soares authored
      Manually merged mysql-5.0 into mysql-5.1.
      
      conflicts
      =========
      client/mysqlibinlog.cc
      e018925a
    • Luis Soares's avatar
      BUG#12695969: FIX OUTDATED COPYRIGHT NOTICES IN REPLACTION · 686182b2
      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.
      686182b2
  11. 07 Jul, 2011 3 commits
    • unknown's avatar
      Bug#12637786 was fixed with rb:692 by marko. But that fix has a remaining · 6cc0f6a2
      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.
      6cc0f6a2
    • Joerg Bruehe's avatar
      Fix bug#45415: "rpm upgrade recreates test database" · c6669b46
      Joerg Bruehe authored
      Let the creation of the "test" database happen only during a new
      installation, not in an RPM upgrade.
      c6669b46
    • Georgi Kodinov's avatar
      empty weave merge from mysql-5.0 · bb5e014a
      Georgi Kodinov authored
      bb5e014a
  12. 06 Jul, 2011 1 commit
  13. 05 Jul, 2011 1 commit
  14. 04 Jul, 2011 2 commits
  15. 03 Jul, 2011 2 commits
  16. 01 Jul, 2011 3 commits
  17. 30 Jun, 2011 3 commits
  18. 29 Jun, 2011 4 commits
    • Bjorn Munch's avatar
      merge from 5.1 main · 15f50ffb
      Bjorn Munch authored
      15f50ffb
    • Vasil Dimov's avatar
      Merge mysql-5.0 -> mysql-5.1 · 0000ce91
      Vasil Dimov authored
      0000ce91
    • Vasil Dimov's avatar
      Bug #12696083 FIX OUTDATED COPYRIGHT NOTICES IN INNODB RELATED CLIENT TOOLS · 67ea0a59
      Vasil Dimov authored
      Update copyright comment in innochecksum.
      67ea0a59
    • Marko Mäkelä's avatar
      Bug #12612184 BLOB debug code cleanup: · 0f37ccb3
      Marko Mäkelä authored
      Refactor the !rec_offs_any_extern relaxation in row_build().
      
      trx_assert_active(trx_id): Assert that the given transaction is active.
      (In the 5.1 built-in InnoDB, there is no trx->is_recovered field.)
      
      trx_assert_recovered(trx_id): Assert that the given transaction is
      active and has been recovered after a crash.
      
      row_build(): Replace a bunch of code with an assertion that invokes
      trx_assert_active() or trx_assert_recovered() and row_get_rec_trx_id().
      
      row_get_trx_id_offset(): Make the function inlined. Remove the unused
      parameter rec, and make all parameters const.
      
      row_get_rec_trx_id(), row_get_rec_roll_ptr(): Make all parameters const.
      
      rb:691 approved by Jimmy Yang
      0f37ccb3
  19. 28 Jun, 2011 1 commit
    • Marko Mäkelä's avatar
      Bug#12595087 - 61191: Question about page_zip_available (clean up page0zip.c) · 0c54d44f
      Marko Mäkelä authored
      page_zip_dir_elems(): New function, refactored from page_zip_dir_size().
      
      page_zip_dir_size(): Use page_zip_dir_elems()
      
      page_zip_dir_start_offs(): New function: Gets an offset to the
      compressed page trailer (the dense page directory), including deleted
      records (the free list)
      
      page_zip_dir_start_low(page_zip, n_dense): Constness-preserving
      wrapper macro for page_zip_dir_start_offs().
      
      page_zip_dir_start(page_zip): Constness-preserving
      wrapper macro for page_zip_dir_start_offs().
      
      page_zip_decompress_node_ptrs(), page_zip_decompress_clust(): Replace
      a formula with a fully equivalent page_zip_dir_start_low() call.
      
      page_zip_write_rec(), page_zip_parse_write_node_ptr(),
      page_zip_write_node_ptr(), page_zip_write_trx_id_and_roll_ptr(),
      page_zip_clear_rec(): Replace a formula with an almost equivalent
      page_zip_dir_start() call.
      It is OK to replace page_dir_get_n_heap(page) with
      page_dir_get_n_heap(page_zip->data), because
      ut_ad(page_zip_header_cmp(page_zip, page)) or
      page_zip_validate(page_zip, page) asserts that the
      page headers are identical.
      
      rb:687 approved by Jimmy Yang
      0c54d44f
  20. 23 Jun, 2011 1 commit
    • Dmitry Shulga's avatar
      Fixed Bug#11756013 (formerly known as bug#47870): · bc7af175
      Dmitry Shulga authored
      BOGUS "THE TABLE MYSQL.PROC IS MISSING,..."
      
      There was a race condition between loading a stored routine
      (function/procedure/trigger) specified by fully qualified name
      SCHEMA_NAME.PROC_NAME and dropping the stored routine database.
      
      The problem was that there is a window for race condition when one server
      thread tries to load a stored routine being executed and the other thread
      tries to drop the stored routine schema.
      
      This condition race window exists in implementation of function
      mysql_change_db() called by db_load_routine() during loading of stored
      routine to cache. Function mysql_change_db() calls check_db_dir_existence()
      that might failed because specified database was dropped during concurrent
      execution of DROP SCHEMA statement. db_load_routine() calls mysql_change_db()
      with flag 'force_switch' set to 'true' value so when referenced db is not found
      then my_error() is not called and function mysql_change_db() returns ok.
      This shadows information about schema opening error in db_load_routine().
      Then db_load_routine() makes attempt to parse stored routine that is failed.
      This makes to return error to sp_cache_routines_and_add_tables_aux() but since
      during error generation a call to my_error wasn't made and hence
      THD::main_da wasn't set we set the generic "mysql.proc table corrupt" error
      when running sp_cache_routines_and_add_tables_aux().
      
      The fix is to install an error handler inside db_load_routine() for
      the mysql_op_change_db() call, and check later if the ER_BAD_DB_ERROR
      was caught.
      
      
      sql/sql_db.cc:
        Added synchronization point "before_db_dir_check" to emulate a race condition during
        processing of CALL/DROP SCHEMA.
      bc7af175
  21. 17 Jun, 2011 2 commits
    • Inaam Rana's avatar
      Bug 12635227 - 61188: DROP TABLE EXTREMELY SLOW · e60e6505
      Inaam Rana authored
      approved by: Marko
      rb://681
      
      Coalescing of free buf_page_t descriptors can prove to be one severe
      bottleneck in performance of compression. One such workload where it
      hurts badly is DROP TABLE. This patch removes buf_page_t allocations
      from buf_buddy and uses ut_malloc instead.
      In order to further reduce overhead of colaescing we no longer attempt
      to coalesce a block if the corresponding free_list is less than 16 in
      size.
      e60e6505
    • Jon Olav Hauglid's avatar
      Bug#12657095 YASSL ERROR MESSAGE CONTAINS TYPO · 7de029da
      Jon Olav Hauglid authored
      This patch fixes a typo in a YaSSL error message.
      7de029da