• Davi Arnaut's avatar
    Backport of Bug#15192 to mysql-next-mr · e879919a
    Davi Arnaut authored
    ------------------------------------------------------------
    revno: 2597.4.17
    revision-id: sp1r-davi@mysql.com/endora.local-20080328174753-24337
    parent: sp1r-anozdrin/alik@quad.opbmk-20080328140038-16479
    committer: davi@mysql.com/endora.local
    timestamp: Fri 2008-03-28 14:47:53 -0300
    message:
      Bug#15192 "fatal errors" are caught by handlers in stored procedures
    
      The problem is that fatal errors (e.g.: out of memory) were being
      caught by stored procedure exception handlers which could cause
      the execution to not be stopped due to a continue handler.
    
      The solution is to not call any exception handler if the error is
      fatal and send the fatal error to the client.
    
    mysql-test/r/sp-error.result:
      Add test case result for Bug#15192
    mysql-test/t/sp-error.test:
      Add test case for Bug#15192
    mysys/my_alloc.c:
      Pass flag to signal fatal error in memory root allocations.
    sql/event_data_objects.cc:
      Use init_sql_alloc to initialize memory roots, which uses
      the sql error handler to push errors.
    sql/ha_partition.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/item_func.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/item_subselect.cc:
      Remove redundant fatal error, memory root already pushes error.
    sql/opt_sum.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/sp_head.cc:
      Allocator already sets fatal error.
    sql/sql_class.h:
      A error must exist for it to be fatal. Pass flag to signal fatal
      error instead of calling fatal_error.
    sql/sql_insert.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/sql_list.h:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/sql_parse.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/sql_partition.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/sql_select.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/sql_servers.cc:
      Use init_sql_alloc to initialize memory roots, which uses
      the sql error handler to push errors.
    sql/sql_show.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/sql_trigger.cc:
      Use init_sql_alloc to initialize memory roots, which uses
      the sql error handler to push errors.
    sql/sql_update.cc:
      Pass flag to signal fatal error instead of calling fatal_error.
    sql/tztime.cc:
      Use init_sql_alloc to initialize memory roots, which uses
      the sql error handler to push errors.
    e879919a
sql_show.cc 239 KB