• unknown's avatar
    A fix and a test case for Bug#14210 "Simple query with > operator on · 3fa0dd23
    unknown authored
    large table gives server crash": make sure that when a MyISAM temporary
    table is created for a cursor, it's created in its memory root,
    not the memory root of the current query.
    
    
    mysql-test/r/sp.result:
      Test results fixed: a test case for Bug#14210
    mysql-test/t/sp.test:
      A test case for Bug#14210 "Simple query with > operator on large table 
      gives server crash"
    sql/handler.cc:
      - rewrite get_new_handler to accept a memory root and use it for
    sql/handler.h:
      - get_new_handler declaration changed
    sql/opt_range.cc:
      - get_new_handler declaration changed
    sql/sql_base.cc:
      - get_new_handler declaration changed
    sql/sql_select.cc:
      - the actual fix for Bug#14210. In create_myisam_from_heap we should
      create the new table handler in TABLE::mem_root, not in THD::mem_root:
      the latter is freed shortly after cursor is open.
      - adjust create_tmp_table to explicitly supply &table->mem_root
      to get_new_handler when creating a handler for a new temporary table
    sql/sql_table.cc:
      - get_new_handler declaration changed
    sql/table.cc:
      - get_new_handler declaration changed
    sql/unireg.cc:
      - get_new_handler declaration changed
    tests/mysql_client_test.c:
      A test case for Bug#14210 "Simple query with > operator on large table
       gives server crash": a C API test case is worth adding because of different
      memory allocation/freeing patterns in handling of C API and SP cursors
    3fa0dd23
sp.test 93.4 KB