`SELECT * FROM values('x Decimal256(0)', (1))`

```
Code: 53. DB::Exception: Type mismatch in IN or VALUES section. Expected: Decimal(76, 0). Got: UInt64. (TYPE_MISMATCH)
```
{
    From value = from.get<From>();
    if (!type.canStoreWhole(value))
        throw Exception("Number is too big to place in " + type.getName(), ErrorCodes::ARGUMENT_OUT_OF_BOUND);
    T scaled_value = type.getScaleMultiplier() * static_cast<T>(value);
    return DecimalField<T>(scaled_value, type.getScale());
}
template <typename T>
Field convertStringToDecimalType(const Field & from, const DataTypeDecimal<T> & type)
{
    const String & str_value = from.get<String>();
    T value = type.parseFromString(str_value);
    return DecimalField<T>(value, type.getScale());
}
template <typename From, typename T>
Field convertDecimalToDecimalType(const Field & from, const DataTypeDecimal<T> & type)
{
    auto field = from.get<DecimalField<From>>();
    T value = convertDecimals<DataTypeDecimal<From>, DataTypeDecimal<T>>(field.getValue(), field.getScale(), type.getScale());
    return DecimalField<T>(value, type.getScale());
}
template <typename To>
Field convertDecimalType(const Field & from, const To & type)