updated dt64 value return

This commit is contained in:
zvonand 2022-01-23 23:06:32 +03:00
parent 86cc9419ba
commit 3594cdbeeb

View File

@ -120,7 +120,7 @@ public:
}
template <typename T>
ColumnPtr executeType(const ColumnsWithTypeAndName & arguments, size_t input_rows_count) const
MutableColumnPtr executeType(auto & result_column, const ColumnsWithTypeAndName & arguments, size_t input_rows_count) const
{
const auto & src = arguments[0];
const auto & col = *src.column;
@ -128,7 +128,6 @@ public:
if (!checkAndGetColumn<ColumnVector<T>>(col))
return nullptr;
auto result_column = ColumnDecimal<DateTime64>::create(input_rows_count, target_scale);
auto & result_data = result_column->getData();
const auto & source_data = typeid_cast<const ColumnVector<T> &>(col).getData();
@ -136,22 +135,22 @@ public:
for (size_t i = 0; i < input_rows_count; ++i)
result_data[i] = source_data[i];
return result_column;
return reinterpret_cast<COW<IColumn>::MutablePtr &&>(result_column);
}
ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t input_rows_count) const override
{
ColumnPtr result_column;
auto result_column = ColumnDecimal<DateTime64>::create(input_rows_count, target_scale);
if (!((result_column = executeType<UInt8>(arguments, input_rows_count))
|| (result_column = executeType<UInt16>(arguments, input_rows_count))
|| (result_column = executeType<UInt32>(arguments, input_rows_count))
|| (result_column = executeType<UInt32>(arguments, input_rows_count))
|| (result_column = executeType<UInt64>(arguments, input_rows_count))
|| (result_column = executeType<Int8>(arguments, input_rows_count))
|| (result_column = executeType<Int16>(arguments, input_rows_count))
|| (result_column = executeType<Int32>(arguments, input_rows_count))
|| (result_column = executeType<Int64>(arguments, input_rows_count))))
if (!((result_column = executeType<UInt8>(result_column, arguments, input_rows_count))
|| (result_column = executeType<UInt16>(result_column, arguments, input_rows_count))
|| (result_column = executeType<UInt32>(result_column, arguments, input_rows_count))
|| (result_column = executeType<UInt32>(result_column, arguments, input_rows_count))
|| (result_column = executeType<UInt64>(result_column, arguments, input_rows_count))
|| (result_column = executeType<Int8>(result_column, arguments, input_rows_count))
|| (result_column = executeType<Int16>(result_column, arguments, input_rows_count))
|| (result_column = executeType<Int32>(result_column, arguments, input_rows_count))
|| (result_column = executeType<Int64>(result_column, arguments, input_rows_count))))
{
throw Exception(ErrorCodes::ILLEGAL_COLUMN,
"Illegal column {} of first argument of function {}",