• unknown's avatar
    Simpler arena swapping code · 435b20aa
    unknown authored
    Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
    This gives us the following benefits:
    - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
    - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
    - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
    
    
    
    client/mysqltest.c:
      Remove some not needed defines
      (Things like this should be done in config-win.h)
    include/config-win.h:
      Added popen() and pclose() compatibility macros
    mysql-test/t/rpl_failed_optimize-master.opt:
      Portability fix
    sql/ha_berkeley.cc:
      New thd->memroot handling
    sql/item_cmpfunc.cc:
      Simpler arena swapping code
    sql/item_func.cc:
      Simpler arena swapping code
    sql/item_subselect.cc:
      Simpler arena swapping code
      New thd->mem_root handling
    sql/item_sum.cc:
      New thd->mem_root handling
    sql/item_timefunc.cc:
      Fixed not-initalized usage errors found by valgrind
    sql/log_event.cc:
      New thd->mem_root handling
    sql/mysql_priv.h:
      New thd->mem_root handling
    sql/mysqld.cc:
      New thd->mem_root handling
    sql/opt_range.cc:
      New thd->mem_root handling
    sql/repl_failsafe.cc:
      New thd->mem_root handling
    sql/set_var.cc:
      New thd->mem_root handling
    sql/sql_acl.cc:
      New thd->mem_root handling
    sql/sql_base.cc:
      Simpler arena swapping code
      New thd->mem_root handling
    sql/sql_class.cc:
      New thd->mem_root handling
    sql/sql_class.h:
      Simpler arena swapping code
      New thd->mem_root handling
    sql/sql_db.cc:
      New thd->mem_root handling
    sql/sql_error.cc:
      New thd->mem_root handling
    sql/sql_help.cc:
      New thd->mem_root handling
    sql/sql_insert.cc:
      New thd->mem_root handling
    sql/sql_parse.cc:
      New thd->mem_root handling
      Added some extra checking of return value of new
    sql/sql_prepare.cc:
      New thd->mem_root handling
    sql/sql_select.cc:
      New thd->mem_root handling
    sql/sql_select.h:
      New thd->mem_root handling
    sql/sql_union.cc:
      Simpler arena swapping code
    sql/sql_yacc.yy:
      New thd->mem_root handling
    sql/table.cc:
      New thd->mem_root handling
    sql/thr_malloc.cc:
      New thd->mem_root handling
    tests/client_test.c:
      Added drop table to some tests
      Changed some table names to 't1'
    435b20aa
sql_union.cc 16.8 KB