mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-25 11:10:49 +00:00
Fix tests
This commit is contained in:
parent
ae8df9c1c5
commit
0a32e47b5f
@ -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));
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user