• Tor Didriksen's avatar
    Bug #11766860 - 60085: CRASH IN ITEM::SAVE_IN_FIELD() WITH TIME DATA TYPE · 08c8d21f
    Tor Didriksen authored
    This assumption in Item_cache_datetime::cache_value_int
    was wrong:
    -  /* Assume here that the underlying item will do correct conversion.*/
    -  int_value= example->val_int_result();
    
    
    mysql-test/r/subselect_innodb.result:
      New test case.
    mysql-test/t/subselect_innodb.test:
      New test case.
    sql/item.cc:
      In Item_cache_datetime::cache_value_int()
       - call get_time() or get_date() depending on desired type
       - convert the returned MYSQL_TIME value to longlong depending on desired type
    sql/item.h:
      The cached int_value in Item_cache_datetime should not be unsigned:
       - it is used mostly in signed context
       - it can actually have negative value (for TIME data type)
    sql/item_cmpfunc.cc:
      Add comment on Bug#59685
    sql/item_subselect.cc:
      Add some DBUG_TRACE for easier bug-hunting.
    08c8d21f
item_cmpfunc.cc 145 KB