• Alexander Barkov's avatar
    A cleanup for the patch for MDEV-12852, MDEV-12853, MDEV-12869 · 62b62319
    Alexander Barkov authored
    The patch broke expressions like CAST(1.0e+300 AS SIGNED INT)
    in binary protocol, e.g.:
      mtr --ps cast
    
    Short real numbers like 1.0e+300 can return huge values,
    so using args[0]->max_length is not reliable to choose properly the result
    type for Item_func_signed and Item_func_unsigned (between INT and BIGINT).
    
    Setting Item_[un]signed_typecast::max_length to MAX_BIGINT_WIDTH
    when doing CAST from FLOAT/DOUBLE, to force type_handler() return
    &type_handler_longlong rather than &type_handler_long.
    62b62319
sql_type.cc 159 KB