1. 07 Jan, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#41348: INSERT INTO tbl SELECT * FROM temp_tbl overwrites · dc5a0f44
      Davi Arnaut authored
                 locking type of temp table
      
      The problem is that INSERT INTO .. SELECT FROM .. and CREATE
      TABLE .. SELECT FROM a temporary table could inadvertently
      overwrite the locking type of the temporary table. The lock
      type of temporary tables should be a write lock by default.
      
      The solution is to reset the lock type of temporary tables
      back to its default value after they are used in a statement.
      dc5a0f44
  2. 05 Jan, 2009 4 commits
  3. 31 Dec, 2008 1 commit
    • Gleb Shchepa's avatar
      Bug #41363: crash of mysqld on windows with aggregate in case · 33cbf93c
      Gleb Shchepa authored
      Execution of queries containing the CASE function of
      aggregate function like in "SELECT ... CASE ARGV(...) WHEN ..."
      crashed the server.
      
      
      The CASE function caches pointers to concrete comparison
      functions for an each pair of types of CASE-WHERE clause
      parameters, i.e. for the "CASE INT_RESULT WHERE REAL_RESULT
      THEN ... WHERE DECIMAL_RESULT ... END" function call it
      caches comparisons for INT_RESULT with REAL_RESULT and
      for INT_RESULT with DECIMAL_RESULT. Usually a result
      type is known after a call to the fix_fields function,
      however, the setup_copy_fields function call may
      wrap aggregate items with Item_copy_string that has
      STRING_RESULT result type, so setup_copy_fields may
      change argument result types of the CASE function after
      call to Item_func_case::fix_fields/fix_length_and_dec.
      Then the Item_func_case::find_item function tries to
      use comparison function for unexpected pair of the
      STRING_RESULT and some other type - that caused
      an assertion failure of server crash.
      
      The Item_func_case::fix_length_and_dec function has
      been modified to take into account possible STRING_RESULT
      result type in the presence of aggregate arguments of
      the CASE function.
      33cbf93c
  4. 30 Dec, 2008 5 commits
  5. 29 Dec, 2008 4 commits
  6. 28 Dec, 2008 5 commits
  7. 24 Dec, 2008 8 commits
  8. 23 Dec, 2008 7 commits
  9. 22 Dec, 2008 1 commit
  10. 19 Dec, 2008 4 commits
    • Matthias Leich's avatar
      Merge into actual tree · b82383b8
      Matthias Leich authored
      b82383b8
    • Sergey Petrunia's avatar
      BUG#40974: Incorrect query results when using clause evaluated using range check · 05ae989e
      Sergey Petrunia authored
      - QUICK_INDEX_MERGE_SELECT deinitializes its rnd_pos() scan when it reaches EOF, but we 
        need to make the deinitialization in QUICK_INDEX_MERGE_SELECT destructor also. This is because
        certain execution strategies can stop scanning without reaching EOF, then then try to do a full
        table scan on this table. Failure to deinitialize caused the full scan to use (already empty) 
        table->sort and produce zero records.
      05ae989e
    • Davi Arnaut's avatar
      Merge before pushing. · 8ed0235e
      Davi Arnaut authored
      8ed0235e
    • Davi Arnaut's avatar
      Bug#41612: resolve_stack_dump does not decode 5.1 stack trace · d6e7b04a
      Davi Arnaut authored
      resolve_stack_dump is not able to decode a stack trace produced
      by glibc's backtrace() functions. The problem is that the stack
      trace addresses are printed between brackets and the utility is
      not able to ignore the brackets.
      
      The solution is to modify resolve_stack_dump so it can recognize
      stack trace addresses surrounded by brackets. e.g. [0xdeadbeef].
      d6e7b04a