1. 08 Feb, 2011 4 commits
  2. 07 Feb, 2011 10 commits
    • Bjorn Munch's avatar
      null upmerge · adc2e5df
      Bjorn Munch authored
      adc2e5df
    • Bjorn Munch's avatar
      merge 47141,59979 · f2fb2a0b
      Bjorn Munch authored
      f2fb2a0b
    • Bjorn Munch's avatar
      merge 47141,59979 · 1e7fac2d
      Bjorn Munch authored
      1e7fac2d
    • Bjorn Munch's avatar
      upmerged and adapted 59979 · ff8d8984
      Bjorn Munch authored
      ff8d8984
    • Bjorn Munch's avatar
      Bug #59979 Add mtr option to run debug server, but without turning on debug · 3cde3f30
      Bjorn Munch authored
      Added --debug-server and use $opt_debug_server where appropriate
      Let --debug imply --debug-server
      When merging to 5.5, must adapt fix for 59148
      Oops, set debug => debug-server too late, fixed
      3cde3f30
    • Tor Didriksen's avatar
      Bug #59632 Assertion failed: arg_length > length · 410cb8df
      Tor Didriksen authored
      The problem was overflow in max_length when we tried to des_decrypt()
      something which is not the output of des_encrypt()
      410cb8df
    • Ole John Aske's avatar
      d7e3a542
    • Ole John Aske's avatar
      Fix for bug#59308: Incorrect result for SELECT DISTINCT <col>... ORDER BY <col> DESC. · 3e533efa
      Ole John Aske authored
            
      Also fix bug#59110: Memory leak of QUICK_SELECT_I allocated memory.
      Includes Jørgen Lølands review comments.
            
      Root cause of these bugs are that test_if_skip_sort_order() decided to
      revert the 'skip_sort_order' descision (and use filesort) after the
      query plan has been updated to reflect a 'skip' of the sort order.
            
      This might happen in 'check_reverse_order:' if we have a 
      select->quick which could not be made descending by appending 
      a QUICK_SELECT_DESC. ().
            
      The original 'save_quick' was then restored after the QEP has been modified,
      which caused:
            
        - An incorrect 'precomputed_group_by= TRUE' may have been set, 
          and not reverted, as part of the already modifified QEP (Bug#59308)
        - A 'select->quick' might have been created which we fail to delete (bug#59110).
            
      This fix is a refactorication of test_if_skip_sort_order() where all logic
      related to modification of QEP (controlled by argument 'bool no_changes'), is
      moved to the end of test_if_skip_sort_order(), and done after *all* 'test_if_skip'
      checks has been performed - including the 'check_reverse_order:' checks.
            
      The refactorication above contains now intentional changes to the logic which 
      has been moved to the end of the function.
            
      Furthermore, a smaller part of the fix address the handling of the 
      select->quick objects which may already exists when we call 
      'test_if_skip_sort_order()' (save_quick) -and
      new select->quick's created during test_if_skip_sort_order():
            
        - Before new select->quick may be created by calling ::test_quick_select(), we
          set 'select->quick= 0' to avoid that ::test_quick_select() prematurely
          delete the save_quick's. (After this call we may have both a 'save_quick' 
          and 'select->quick')
            
        - All returns from ::test_if_skip_sort_order() where we may have both a
          'save_quick' and a 'select->quick' has been changed to goto's to the
          exit points 'skiped_sort_order:' or 'need_filesort:' where we
          decide which of the QUICK_SELECT's to keep, and delete the other.
      3e533efa
    • Vinay Fisrekar's avatar
      bzr merger from mysql-5.1 to mysql-5.5 · 4f3a61ed
      Vinay Fisrekar authored
      Bug#59955 - engines/funcs/ps_string_not_null test needs better cleanup
      4f3a61ed
    • Vinay Fisrekar's avatar
      Bug#59955 - engines/funcs/ps_string_not_null test needs better cleanup · 4a20a603
      Vinay Fisrekar authored
      Correcting clean up command at the start of test.
      4a20a603
  3. 05 Feb, 2011 2 commits
  4. 04 Feb, 2011 10 commits
  5. 03 Feb, 2011 1 commit
    • Luis Soares's avatar
      BUG#59147: rpl_circular_for_4_hosts fails sporadically · 64b0591d
      Luis Soares authored
            
      There is one part of the test case that needs to break
      and re-establish the circular topology. For this the test
      stops the slave threads on a couple of servers and restarts
      them with START SLAVE. However, no check is done on the
      status of the IO or SQL threads before proceeding with
      the subsequent commands.
            
      Because rpl_only_running_threads is set to 1 this can lead
      to silently not syncing all slave threads as expected, 
      ultimately resulting in unexpected results (and consequently
      on a failing test run).
            
      We fix this by replacing the START SLAVE instructions with
      calls to --source include/start_slave.inc, which will wait
      for the slave threads to be running (show 'Yes' in 
      Slave_IO|SQL_Running fields of SHOW SLAVE STATUS) before 
      proceeding. Additionally, we change rpl_sync.inc to make the
      IO thread report that it is running when its running status
      is any other than 'No'.
      64b0591d
  6. 02 Feb, 2011 11 commits
    • Georgi Kodinov's avatar
      merge · 5ba1fe97
      Georgi Kodinov authored
      5ba1fe97
    • Georgi Kodinov's avatar
      merge · 3b65062d
      Georgi Kodinov authored
      3b65062d
    • Georgi Kodinov's avatar
      merge · 63a40fe6
      Georgi Kodinov authored
      63a40fe6
    • Georgi Kodinov's avatar
      6954b672
    • Georgi Kodinov's avatar
      merge to 5.1. · ac3243c8
      Georgi Kodinov authored
      ac3243c8
    • Georgi Kodinov's avatar
      Fixes for Bug #55755 and Bug #52315 part 2 · 59f68983
      Georgi Kodinov authored
      Bug #55755 : Date STD variable signness breaks server on FreeBSD and OpenBSD
      
      * Added a check to configure on the size of time_t
      * Created a macro to check for a valid time_t that is safe to use with datetime 
        functions and store in TIMESTAMP columns.
      * Used the macro consistently instead of the ad-hoc checks introduced by 52315
      * Fixed compliation warnings on platforms where the size of time_t is smaller than
        the size of a long (e.g. OpenBSD 4.8 64 amd64).
      
      Bug #52315: utc_date() crashes when system time > year 2037
      
      * Added a correct check for the timestamp range instead of just variable size check to
      SET TIMESTAMP.
      * Added overflow checking before converting to time_t. 
      * Using a correct localized error message in this case instead of the generic error.
      * Added a test suite.
      * fixed the checks so that they check for unsigned time_t as well. Used the checks 
        consistently across the source code.
      * fixed the original test case to expect the new error code.
      59f68983
    • Dmitry Lenev's avatar
      Merged fix for bug #58650 "Failing assertion: · 9b3884e9
      Dmitry Lenev authored
      primary_key_no == -1 || primary_key_no == 0"
      with recent changes from mysql-5.5 tree.
      9b3884e9
    • Dmitry Lenev's avatar
      Merged fix for bug #58650 "Failing assertion: · 3be9d742
      Dmitry Lenev authored
      primary_key_no == -1 || primary_key_no == 0"
      into mysql-5.5 tree.
      3be9d742
    • Dmitry Lenev's avatar
      Fix for bug #58650 "Failing assertion: primary_key_no == -1 || · 3473329d
      Dmitry Lenev authored
      primary_key_no == 0".
      
      Attempt to create InnoDB table with non-nullable column of
      geometry type having an unique key with length 12 on it and
      with some other candidate key led to server crash due to
      assertion failure in both non-debug and debug builds.
      
      The problem was that such a non-candidate key could have
      been sorted as the first key in table/.FRM, before any legit
      candidate keys. This resulted in assertion failure in InnoDB
      engine which assumes that primary key should either be the
      first key in table/.FRM or should not exist at all.
      
      The reason behind such an incorrect sorting was an wrong
      value of Create_field::key_length member for geometry field
      (which was set to its pack_length == 12) which confused code
      in mysql_prepare_create_table(), so it would skip marking
      such key as a key with partial segments.
      
      This patch fixes the problem by ensuring that this member
      gets the same value of Create_field::key_length member as 
      for other blob fields (from which geometry field class is
      inherited), and as result unique keys on geometry fields
      are correctly marked as having partial segments.
      3473329d
    • Tor Didriksen's avatar
      Bug #36022 please log more information about "Sort aborted" queries · 207e5321
      Tor Didriksen authored
      Write an additional warning message to the server log, 
      explaining why a sort operation is aborted.
      
      The output in mysqld.err will look something like:
      110127 15:07:54 [ERROR] mysqld: Sort aborted: Out of memory (Needed 24 bytes)
      110127 15:07:54 [ERROR] mysqld: Out of sort memory, consider increasing server sort buffer size
      110127 15:07:54 [ERROR] mysqld: Sort aborted: Out of sort memory, consider increasing server sort buffer size
      110127 15:07:54 [ERROR] mysqld: Sort aborted: Incorrect number of arguments for FUNCTION test.f1; expected 0, got 1
      
      If --log-warn=2 is enabled, we output information about host/user/query as well.
      207e5321
    • Tor Didriksen's avatar
      Backport of fix for Bug#52123 · d6ed8398
      Tor Didriksen authored
      d6ed8398
  7. 01 Feb, 2011 2 commits
    • Ole John Aske's avatar
      Fix for bug#58490, 'Incorrect result in multi level OUTER JOIN · 1d6261c5
      Ole John Aske authored
      in combination with IS NULL'
            
      As this bug is a duplicate of bug#49322, it also includes test cases
      covering this bugreport
            
      Qualifying an OUTER JOIN with the condition 'WHERE <column> IS NULL',
      where <column> is declared as 'NOT NULL' causes the
      'not_exists_optimize' to be enabled by the optimizer.
            
      In evaluate_join_record() the 'not_exists_optimize' caused
      'NESTED_LOOP_NO_MORE_ROWS' to be returned immediately
      when a matching row was found.
            
      However, as the 'not_exists_optimize' is derived from
      'JOIN_TAB::select_cond', the usual rules for condition guards
      also applies for 'not_exist_optimize'. It is therefore incorrect
      to check 'not_exists_optimize' without ensuring that all guards
      protecting it is 'open'.
            
      This fix uses the fact that 'not_exists_optimize' is derived from
      a 'is_null' predicate term in 'tab->select_cond'. Furthermore,
      'is_null' will evaluate to 'false' for any 'non-null' rows
      once all guards protecting the is_null is open.
            
      We can use this knowledge as an implicit guard check for the
      'not_exists_optimize' by moving 'if (...not_exists_optimize)'
      inside the handling of 'select_cond==false'. It will then
      not take effect before its guards are open.
            
      We also add an assert which requires that a
      'not_exists_optimize' always comes together with
      a select_cond. (containing 'is_null').
      1d6261c5
    • Ole John Aske's avatar
      Merge · 83817644
      Ole John Aske authored
      83817644