1. 29 Mar, 2012 2 commits
    • Tor Didriksen's avatar
      Patch for Bug#13805127: Stored program cache produces wrong result in same THD. · 71261282
      Tor Didriksen authored
      Background:
      
        - as described in MySQL Internals Prepared Stored
          (http://forge.mysql.com/wiki/MySQL_Internals_Prepared_Stored),
          the Optimizer sometimes does destructive changes to the parsed
          LEX-object (Item-tree), which makes it impossible to re-use
          that tree for PS/SP re-execution.
      
        - in order to be able to re-use the Item-tree, the destructive
          changes are remembered and rolled back after the statement execution.
      
      The problem, discovered by this bug, was that the objects representing
      GROUP-BY clause did not restored after query execution. So, the GROUP-BY
      part of the statement could not be properly re-initialized for re-execution
      after destructive changes.
      
      Those objects do not take part in the Item-tree, so they can not be saved
      using the approach for Item-tree.
      
      The fix is as follows:
      
        - introduce a new array in st_select_lex to store the original
          ORDER pointers, representing the GROUP-BY clause;
      
        - Initialize this array in fix_prepare_information().
      
        - restore the list of GROUP-BY items in reinit_stmt_before_use().
      71261282
    • Sunny Bains's avatar
      Bug #13817703 - auto_increment_offset != 1 + innodb_autoinc_lock_mode=1 => bulk inserts fail · 90436a09
      Sunny Bains authored
              
      Fix the calculation of the next autoinc value when offset > 1. Some of the
      results have changed due to the changes in the allocation calculation. The
      new calculation will result in slightly bigger gaps for bulk inserts.
        
      rb://866 Approved by Jimmy Yang.
      Backported from mysql-trunk (5.6)
      90436a09
  2. 28 Mar, 2012 6 commits
    • Marc Alff's avatar
      Bug#13898343 THREAD LOOPS ENDLESSLY IN LF_PINBOX_PUT_PINS WHILE HOLDING · ea40710d
      Marc Alff authored
      LOCK_THREAD_COUNT
      
      When using the performance schema file io instrumentation in MySQL 5.5,
      a thread would loop forever inside lf_pinbox_put_pins, when disconnecting.
      It would also hold LOCK_thread_count while doing so, effectively killing the
      server.
      
      The root cause of the loop in lf_pinbox_put_pins() is a leak of LF_PINS,
      when used with the filename_hash LF_HASH table in the performance schema.
      
      This fix contains the following changes:
      
      1)
      Added the missing call to lf_hash_search_unpin(), to prevent the leak.
      
      2)
      In mysys/lf_alloc-pin.c, there was some extra debugging code
      (MY_LF_EXTRA_DEBUG) written to detect precisely this kind of issues,
      but it was never used.
      Replaced MY_LF_EXTRA_DEBUG with DBUG_OFF, so that leaks similar to this one
      can be always detected in regular debug builds.
      
      3)
      Backported the fix for the following bug, from 5.6 to 5.5:
      Bug#13417446 - 63339: INCORRECT FILE PATH IN PEFORMANCE_SCHEMA ON WINDOWS
      ea40710d
    • Praveenkumar Hulakund's avatar
      Merge from 5.1 to 5.5 · 86ad81b3
      Praveenkumar Hulakund authored
      86ad81b3
    • Praveenkumar Hulakund's avatar
      Bug#11763507 - 56224: FUNCTION NAME IS CASE-SENSITIVE · 19c375c9
      Praveenkumar Hulakund authored
      Analysis:
      -------------------------------
      According to the Manual
      (http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html):
      "Column, index, stored routine, and event names are not case sensitive on any
      platform, nor are column aliases."
      
      In other words, 'lower_case_table_names' does not affect the behaviour of 
      those identifiers.
      
      On the other hand, trigger names are case sensitive on some platforms,
      and case insensitive on others. 'lower_case_table_names' does not affect
      the behaviour of trigger names either.
      
      The bug was that SHOW statements did case sensitive comparison
      for stored procedure / stored function / event names.
      
      Fix:
      Modified the code so that comparison in case insensitive for routines 
      and events for "SHOW" operation.
      
      As part of this commit, only fixing the test failures due to the actual code fix.
      19c375c9
    • Sunny Bains's avatar
      Merge from mysql-5.1. · fc520129
      Sunny Bains authored
      fc520129
    • Sunny Bains's avatar
      Merge from mysql-5.0 · 899e600b
      Sunny Bains authored
      899e600b
    • Sunny Bains's avatar
      Bug# 13847885 - PURGING STALLS WHEN PURGE_SYS->N_PAGES_HANDLED OVERFLOWS · 0ebe1273
      Sunny Bains authored
      Change the type of purge_sys_t::n_pages_handled and purge_sys_t::handle_limit
      to ulonglong from ulint. On a 32 bit system doing ~700 deletes per second the
      counters can overflow in ~3.5 months, if they are 32 bit.
      
      Approved by Jimmy Yang over IM.
      0ebe1273
  3. 27 Mar, 2012 4 commits
  4. 26 Mar, 2012 1 commit
  5. 22 Mar, 2012 1 commit
  6. 21 Mar, 2012 3 commits
  7. 20 Mar, 2012 6 commits
  8. 16 Mar, 2012 3 commits
  9. 15 Mar, 2012 9 commits
  10. 14 Mar, 2012 5 commits
    • Mattias Jonsson's avatar
      merge of bug#1364811 into mysql-5.5 · aaf0e5d6
      Mattias Jonsson authored
      aaf0e5d6
    • Mattias Jonsson's avatar
      bug#13694811 · f8eb6262
      Mattias Jonsson authored
      Updated code comments according to reviewers requests.
      f8eb6262
    • Tor Didriksen's avatar
      Bug#13832772 ASSERTION `THD->IS_ERROR() || KILL_ERRNO' · cfea7c7d
      Tor Didriksen authored
      We are trying to sort a lot of text/blob fields, 
      so the buffer is indeed too small.
      Memory available = thd->variables.sortbuff_size = 262144
      min_sort_memory = param.sort_length*MERGEBUFF2 = 292245
      So the decision to abort the query is correct.
      
      filesort() calls my_error(), the error is reported.
      But, since we have DELETE IGNORE ... the error is converted to a warning by
      THD::raise_condition
      
      filesort currently expects an error to be recorded in the THD diagnostics
      area.
      If we lift this restriction (remove the assert) we end up in the familiar
      void Protocol::end_statement()
        default:
          DBUG_ASSERT(0);
      
      The solution seems to be to call my_error(ME_FATALERROR) in filesort,
      so that the error is propagated as an error rather than a warning.
      cfea7c7d
    • sayantan.dutta@oracle.com's avatar
    • Chaithra Gopalareddy's avatar
      Bug#12626844 : WE ARE NOT CHECKING VIEW TABLE NAMES · d93559f9
      Chaithra Gopalareddy authored
                     ENOUGH - CONCAT() HACKS. ALSO WRONG
                     ERROR MESSAGE WHILE TRYING TO CREATE
                     A VIEW ON A NON EXISTING DATABASE
      
      PROBLEM:
      The first part of the problem is concluded as not a
      bug, as 'concat' is not a reserved word and it is
      completely valid to create a view with the name
      'concat'.
      
      The second issue is, while trying to create a view on
      a non existing database, we are not giving a proper error
      message.
      
      FIX:
      We have added a check for the database existence while
      trying to create a view. This check would give an error
      as 'unknown database' when the database does not exist.
      
      This patch is a backport of the patch for Bug#13601606
      d93559f9