1. 10 Aug, 2010 1 commit
    • Alfranio Correia's avatar
      BUG#50312 Warnings for unsafe sub-statement not returned to client · 88b32056
      Alfranio Correia authored
                              
      After BUG#36649, warnings for sub-statements are cleared when a 
      new sub-statement is started. This is problematic since it suppresses
      warnings for unsafe statements in some cases. It is important that we
      always give a warning to the client, because the user needs to know
      when there is a risk that the slave goes out of sync.
                              
      We fixed the problem by generating warning messages for unsafe statements
      while returning from a stored procedure, function, trigger or while
      executing a top level statement.
                              
      We also started checking unsafeness when both performance and log tables are
      used. This is necessary after the performance schema which does a distinction
      between performance and log tables.
      
      mysql-test/extra/rpl_tests/create_recursive_construct.inc:
        Changed the order of the calls in the procedure because the code
        that checks if a warning message is printed out expects that the
        first statement gives an warning what is not the case for INSERT
        INTO ta$CRC_ARG_level VALUES (47);
      mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result:
        Updated the result file.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        There are several changes here:
                
        (1) - Changed the CREATE PROCEDURE $CRC.
                                        
        (2) - The procedure $CRC was failing and the content of the binlog
              was being printed out, after fix (1) the failure disappeared.
                                        
        (3) - The warning message for unsafeness due to auto-increment collumns was
              changed.
                                        
        (4) - The warning message for unsafeness due to VERSION(), RAND() was changed.
      mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test:
        Tested filters.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Reenabled the test case binlog_unsafe.
      mysql-test/suite/binlog/t/disabled.def:
        Reenabled the test case binlog_unsafe.
      mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result:
        Updated the result file.
      mysql-test/suite/rpl/r/rpl_non_direct_stm_mixing_engines.result:
        Updated the result file.
      mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result:
        Updated the result file.
      sql/sql_class.cc:
        Moved the stmt_accessed_table_flag variable and related information to the
        LEX as we need the variable reset after each statement even inside a stored
        procedure, what did not happen if the information was in the THD.
                
        Changed the routine in the THD::binlog_query that prints the warning
        messages to avoid trying to print them when inside a stored procedure,
        function or trigger.
                                
        Checked for unsafeness when both performance and log tables where used.
        After the introduction of the performance schema, we need to check both.
      88b32056
  2. 09 Aug, 2010 5 commits
  3. 06 Aug, 2010 1 commit
  4. 05 Aug, 2010 3 commits
    • Davi Arnaut's avatar
      Bug#55601: BUILD/check-cpu in mysql-trunk is broken on Mac OS X 10.5 · 9d503b77
      Davi Arnaut authored
      Restore the original behavior of check-cpu with respect to core2.
      It isn't used as a actual target processor type, but as a mean to
      perform other kinds of architecture checks.
      9d503b77
    • Vladislav Vaintroub's avatar
      Build cleanups · b94d8621
      Vladislav Vaintroub authored
      - Simplify sql-bench installation, 
      do not try to resolve names : this leads to probem
      if builddir is symlink located on different filesystem.
      (reported by alik)
      
      - Make WITHOUT_XXX (disabling plugin) work for DEFAULT
      plugins. Prior to the patch is behaved just like 
      MANDATORY.
      
      - LINK_LIBRARIES in MYSQL_ADD_PLUGIN had no effect for
      statically linked plugins.
      
      - Fix constant rebuild of initdb target on Windows.
      b94d8621
    • Evgeny Potemkin's avatar
      Auto-merged. · f2f65eef
      Evgeny Potemkin authored
      f2f65eef
  5. 04 Aug, 2010 2 commits
  6. 02 Aug, 2010 1 commit
    • Evgeny Potemkin's avatar
      Bug#55648: Server crash on MIX/MAX on maximum time value · 8147199f
      Evgeny Potemkin authored
      A typo in the Item_cache_datetime::val_str caused an assertion to fail on the
      maximum time value.
      
      
      mysql-test/r/func_group.result:
        A test case for the bug#55648.
      mysql-test/t/func_group.test:
        A test case for the bug#55648.
      sql/item.cc:
        Bug#55648: Server crash on MIX/MAX on maximum time value
        Corrected assertion.
      8147199f
  7. 31 Jul, 2010 3 commits
  8. 30 Jul, 2010 4 commits
    • Davi Arnaut's avatar
      Revert revision which disabled the generating of configuration · 6878d039
      Davi Arnaut authored
      scripts if cmake is available. We need to always generate the
      scripts in order for the dual cmake/autotools support to work.
      6878d039
    • Alexander Nozdrin's avatar
      Update .bzrignore. · 0fd9564d
      Alexander Nozdrin authored
      0fd9564d
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · a0ab253f
      Alexander Nozdrin authored
      ******
      This patch fixes the following bugs:
        - Bug#5889: Exit handler for a warning doesn't hide the warning in
          trigger
        - Bug#9857: Stored procedures: handler for sqlwarning ignored
        - Bug#23032: Handlers declared in a SP do not handle warnings generated
          in sub-SP
        - Bug#36185: Incorrect precedence for warning and exception handlers
      
      The problem was in the way warnings/errors during stored routine execution
      were handled. Prior to this patch the logic was as follows:
      
        - when a warning/an error happens: if we're executing a stored routine,
          and there is a handler for that warning/error, remember the handler,
          ignore the warning/error and continue execution.
      
        - after a stored routine instruction is executed: check for a remembered
          handler and activate one (if any).
      
      This logic caused several problems:
      
        - if one instruction generates several warnings (errors) it's impossible
          to choose the right handler -- a handler for the first generated
          condition was chosen and remembered for activation.
      
        - mess with handling conditions in scopes different from the current one.
      
        - not putting generated warnings/errors into Warning Info (Diagnostic
          Area) is against The Standard.
      
      The patch changes the logic as follows:
      
        - Diagnostic Area is cleared on the beginning of each statement that
          either is able to generate warnings, or is able to work with tables.
      
        - at the end of a stored routine instruction, Diagnostic Area is left
          intact.
      
        - Diagnostic Area is checked after each stored routine instruction. If
          an instruction generates several condition, it's now possible to take a
          look at all of them and determine an appropriate handler.
      
      mysql-test/r/signal.result:
        Update result file:
          1. handled conditions are not cleared any more;
          2. reflect changes in signal.test
      mysql-test/r/signal_demo3.result:
        Update result file: handled conditions are not cleared any more.
        Due to playing with max_error_count, resulting warning lists
        have changed.
      mysql-test/r/sp-big.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/r/sp-bugs.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/r/sp-code.result:
        Update result file:
          1. handled conditions are not cleared any more.
          2. add result for a new test case in sp-code.test.
      mysql-test/r/sp-error.result:
        Update result file:
          1. handled conditions are not cleared any more.
          2. add result for a new test case in sp-error.test.
      mysql-test/r/sp.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/r/sp_trans.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/r/strict.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/r/view.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/suite/funcs_1/r/innodb_storedproc_02.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/suite/funcs_1/r/memory_storedproc_02.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/suite/funcs_1/r/myisam_storedproc_02.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/suite/funcs_1/r/storedproc.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/suite/rpl/r/rpl_row_sp005.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/suite/rpl/r/rpl_row_trig003.result:
        Update result file: handled conditions are not cleared any more.
      mysql-test/t/signal.test:
        Make a test case more readable in the result file.
      mysql-test/t/sp-code.test:
        Add a test case for Bug#23032 checking that
        No Data takes precedence on Warning.
      mysql-test/t/sp-error.test:
        Adding test cases for:
          - Bug#23032
          - Bug#36185
          - Bug#5889
          - Bug#9857
      mysql-test/t/sp.test:
        Fixing test case to reflect behavioral changes made by the patch.
      sql/sp_head.cc:
        Reset the per-statement warning count before executing
        a stored procedure instruction.
        
        Move to a separate function code which checks the
        completion status of the executed statement and searches
        for a handler.
        
        Remove redundant code now that search for a handler is
        done after execution, errors are always pushed.
      sql/sp_pcontext.h:
        Remove unused code.
      sql/sp_rcontext.cc:
        - Polish sp_rcontext::find_handler(): use sp_rcontext::m_hfound instead
          of an extra local variable;
        
        - Remove sp_rcontext::handle_condition();
        
        - Introduce sp_rcontext::activate_handler(), which prepares
          previously found handler for execution.
        
        - Move sp_rcontext::enter_handler() code into activate_handler(),
          because enter_handler() is used only from there;
        
        - Cleanups;
        
        - Introduce DBUG_EXECUTE_IF() for a test case in sp-code.test
      sql/sp_rcontext.h:
        - Remove unused code
        - Cleanups
      sql/sql_class.cc:
        Merge THD::raise_condition_no_handler() into THD::raise_condition().
        After the patch raise_condition_no_handler() was called
        in raise_condition() only.
      sql/sql_class.h:
        Remove raise_condition_no_handler().
      sql/sql_error.cc:
        Remove Warning_info::reserve_space() -- handled conditions are not
        cleared any more, so there is no need for RESIGNAL to re-push them.
      sql/sql_error.h:
        Remove Warning_info::reserve_space().
      sql/sql_signal.cc:
        Handled conditions are not cleared any more,
        so there is no need for RESIGNAL to re-push them.
      a0ab253f
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · 727da39f
      Alexander Nozdrin authored
      727da39f
  9. 29 Jul, 2010 16 commits
  10. 28 Jul, 2010 4 commits
    • Gleb Shchepa's avatar
      Bug #55472: Assertion failed in heap_rfirst function of hp_rfirst.c on · 95d9205c
      Gleb Shchepa authored
                  DELETE statement
      
      Single-table delete ordered by a field that has a hash-type index
      may cause an assertion failure or a crash.
      
      An optimization added by the fix for the bug 36569 forced the
      optimizer to use ORDER BY-compatible indices when applicable.
      
      However, the existence of unsorted indices (HASH index algorithm
      for some engines such as MEMORY/HEAP, NDB) was ignored.
      
      The test_if_order_by_key function has been modified to skip
      unsorted indices.
      
      
      mysql-test/r/heap_hash.result:
        Test case for bug #55472.
      mysql-test/t/heap_hash.test:
        Test case for bug #55472.
      sql/sql_select.cc:
        Bug #55472: Assertion failed in heap_rfirst function of hp_rfirst.c on
                    DELETE statement
        
        The test_if_order_by_key function has been modified to skip
        unsorted indices.
      95d9205c
    • Konstantin Osipov's avatar
      Fix a failing assert when running funcs_1.innodb_trig_03 test. · 8c4e3896
      Konstantin Osipov authored
      The failure was introduced by a precursor patch for the
      fix for Bug#52044.
      
      When opening tables for GRANT statement
      to check that subject columns exist,
      mysql_table_grant() would try to lock the
      tables, and thus start a transaction.
      This was unnecessary and lead to an assert.
      
      
      sql/sql_acl.cc:
        Use open_normal_and_derived_tables() rather than
        open_and_lock_tables() to avoid an assert
        that no transaction is started in GRANT statement.
      8c4e3896
    • Davi Arnaut's avatar
      b0b0d055
    • Alexander Nozdrin's avatar
      Rename select_send::abort() to select_send::abort_result_set() · 928140d9
      Alexander Nozdrin authored
      to be more descriptive.
      928140d9