diff --git a/src/Functions/FunctionsConversion.cpp b/src/Functions/FunctionsConversion.cpp index ceff4f3fd7e4..0c0cbd87d17e 100644 --- a/src/Functions/FunctionsConversion.cpp +++ b/src/Functions/FunctionsConversion.cpp @@ -851,7 +851,25 @@ struct ConvertThroughParsing } } } + /// Special case, that allows to parse string like 12.34 as (U)Int8|16|32|64|128|256. + else if constexpr ( + std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v + || std::is_same_v) + { + if (!in.eof() && (*in.position() == '.')) + { + ++in.position(); + while (!in.eof() && isNumericASCII(*in.position())) + ++in.position(); + if (in.eof()) + return true; + } + } return false; }