• Alexander Barkov's avatar
    MDEV-26765 UNIX_TIMESTAMP(CURRENT_TIME()) return null ?!? · 03b4a2d6
    Alexander Barkov authored
    Problem:
    
    UNIX_TIMESTAMP() called for a expression of the TIME data type
    returned NULL.
    
    Inside Type_handler_timestamp_common::Item_val_native_with_conversion
    the call for item->get_date() did not convert TIME to DATETIME
    automatically (because it does not have to, by design).
    As a result, Type_handler_timestamp_common::TIME_to_native() received
    a MYSQL_TIME value with zero date 0000-00-00 and therefore returned "true"
    (indicating SQL NULL value).
    
    Fix:
    
    Removing the call for item->get_date().
    Instantiating Datetime(item) instead.
    This forces automatic TIME to DATETIME conversion
    (unless @@old_mode is zero_date_time_cast).
    03b4a2d6
sql_type.cc 271 KB