• Sergei Golubchik's avatar
    MDEV-9690 concurrent queries with virtual columns crash in temporal code · 67e20281
    Sergei Golubchik authored
    Item_func_le included Arg_comparator. Arg_comparator remembered
    the current_thd during fix_fields and used that value during
    execution to allocate Item_cache in get_datetime_value().
    But for vcols fix_fields and val_int can happen in different threads.
    
    Same bug for Item_func_in using in_datetime or cmp_item_datetime,
    both also remembered current_thd at fix_fields() to use it later
    for get_datetime_value().
    
    As a fix, these objects no longer remember the current_thd,
    and get_datetime_value() uses current_thd at run time. This
    should not increase the number of current_thd calls much, as
    Item_cache is created only once anyway.
    67e20281
wrong_arena.test 631 Bytes