Fix tests

This commit is contained in:
Pavel Kruglov 2021-04-23 13:39:50 +03:00 committed by Pavel Kruglov
parent ae8df9c1c5
commit 0a32e47b5f
6 changed files with 11 additions and 7 deletions

View File

@ -194,6 +194,8 @@ void ColumnFunction::appendArgument(const ColumnWithTypeAndName & column)
ColumnWithTypeAndName ColumnFunction::reduce(bool reduce_arguments) const
{
// LOG_DEBUG(&Poco::Logger::get("ColumnFunction"), "Reduce function: {}", function->getName());
auto args = function->getArgumentTypes().size();
auto captured = captured_columns.size();
@ -207,7 +209,7 @@ ColumnWithTypeAndName ColumnFunction::reduce(bool reduce_arguments) const
columns.reserve(captured_columns.size());
for (const auto & col : captured_columns)
{
LOG_DEBUG(&Poco::Logger::get("ColumnFunction"), "Arg type: {}", col.type->getName());
// LOG_DEBUG(&Poco::Logger::get("ColumnFunction"), "Arg type: {}", col.type->getName());
if (const auto * column_function = typeid_cast<const ColumnFunction *>(col.column.get()))
columns.push_back(column_function->reduce(true));

View File

@ -126,7 +126,7 @@ void disjunctionMasks(PaddedPODArray<UInt8> & mask1, const PaddedPODArray<UInt8>
binaryMasksOperationImpl(mask1, mask2, [](const auto & lhs, const auto & rhs){ return lhs | rhs; });
}
void maskedExecute(ColumnWithTypeAndName & column, const PaddedPODArray<UInt8> & mask, bool reverse, Field * default_value)
void maskedExecute(ColumnWithTypeAndName & column, const PaddedPODArray<UInt8> & mask, Field * default_value, bool reverse)
{
const auto * column_function = checkAndGetColumn<ColumnFunction>(*column.column);
if (!column_function)

View File

@ -13,7 +13,7 @@ void conjunctionMasks(PaddedPODArray<UInt8> & mask1, const PaddedPODArray<UInt8>
void disjunctionMasks(PaddedPODArray<UInt8> & mask1, const PaddedPODArray<UInt8> & mask2);
void maskedExecute(ColumnWithTypeAndName & column, const PaddedPODArray<UInt8> & mask, bool reverse = false, Field * default_value = nullptr);
void maskedExecute(ColumnWithTypeAndName & column, const PaddedPODArray<UInt8> & mask, Field * default_value = nullptr, bool reverse = false);
void executeColumnIfNeeded(ColumnWithTypeAndName & column);

View File

@ -525,7 +525,7 @@ void FunctionAnyArityLogical<Impl, Name>::executeShortCircuitArguments(ColumnsWi
for (size_t i = 1; i < arguments.size(); ++i)
{
if (isColumnFunction(*arguments[i].column))
maskedExecute(arguments[i], mask, false, &default_value);
maskedExecute(arguments[i], mask, &default_value, false);
getMaskFromColumn(arguments[i].column, mask, reverse, nullptr, null_value);
}
}

View File

@ -928,7 +928,7 @@ public:
IColumn::Filter mask;
getMaskFromColumn(arguments[0].column, mask);
maskedExecute(arguments[1], mask);
maskedExecute(arguments[2], mask, /*reverse=*/true);
maskedExecute(arguments[2], mask, nullptr, /*reverse=*/true);
}
}

View File

@ -114,7 +114,7 @@ public:
IColumn::Filter current_mask;
IColumn::Filter mask_disjunctions = IColumn::Filter(arguments[0].column->size(), 0);
Field default_value = 0;
auto default_value = std::make_unique<Field>(1);
size_t i = 1;
while (i < arguments.size())
{
@ -124,9 +124,11 @@ public:
maskedExecute(arguments[i], current_mask);
++i;
if (i == arguments.size() - 1)
default_value = nullptr;
if (isColumnFunction(*arguments[i].column))
maskedExecute(arguments[i], mask_disjunctions, true, &default_value);
maskedExecute(arguments[i], mask_disjunctions, default_value.get(), true);
++i;
}