1. 22 Jun, 2006 1 commit
    • konstantin@mysql.com's avatar
      A fix and a test case for Bug#15217 "Using a SP cursor on a table created · e20898a5
      konstantin@mysql.com authored
       with PREPARE fails with weird error".
      More generally, re-executing a stored procedure with a complex SP cursor query
      could lead to a crash.
      
      The cause of the problem was that SP cursor queries were not optimized 
      properly at first execution: their parse tree belongs to sp_instr_cpush,
      not sp_instr_copen, and thus the tree was tagged "EXECUTED" when the
      cursor was declared, not when it was opened. This led to loss of optimization
      transformations performed at first execution, as sp_instr_copen saw that the
      query is already "EXECUTED" and therefore either not ran first-execution 
      related blocks or wrongly rolled back the transformations caused by 
      first-execution code.
      The fix is to update the state of the parsed tree only when the tree is
      executed, as opposed to when the instruction containing the tree is executed.
      Assignment if i->state is moved to reset_lex_and_exec_core.
      e20898a5
  2. 20 Jun, 2006 1 commit
    • dlenev@mysql.com's avatar
      Fix for bug#19634 "Re-execution of multi-delete which involve trigger/stored · b75254e1
      dlenev@mysql.com authored
      function crashes server".
      
      Attempts to execute prepared multi-delete statement which involved trigger or
      stored function caused server crashes (the same happened for such statements
      included in stored procedures in cases when one tried to execute them more
      than once).
      
      The problem was caused by yet another incorrect usage of check_table_access()
      routine (the latter assumes that table list which it gets as argument
      corresponds to value LEX::query_tables_own_last). We solve this problem by
      juggling with LEX::query_tables_own_last value when we call
      check_table_access() for LEX::auxilliary_table_list (better solution is too
      intrusive and should be done in 5.1).
      b75254e1
  3. 19 Jun, 2006 16 commits
  4. 18 Jun, 2006 3 commits
  5. 17 Jun, 2006 11 commits
  6. 16 Jun, 2006 8 commits