#pragma once #include #include #include #include namespace DB { class IFunctionOverloadResolver; using FunctionOverloadResolverPtr = std::shared_ptr; class IFunctionBase; using FunctionBasePtr = std::shared_ptr; enum class CastType : uint8_t { nonAccurate, accurate, accurateOrNull }; struct CastDiagnostic { std::string column_from; std::string column_to; }; FunctionBasePtr createInternalCast(ColumnWithTypeAndName from, DataTypePtr to, CastType cast_type, std::optional diagnostic); }