mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-25 19:20:52 +00:00
Fix special build
This commit is contained in:
parent
9fd4d14521
commit
bff79d7774
@ -1465,7 +1465,7 @@ public:
|
||||
bool isVariadic() const override { return true; }
|
||||
size_t getNumberOfArguments() const override { return 0; }
|
||||
bool isInjective(const ColumnsWithTypeAndName &) const override { return std::is_same_v<Name, NameToString>; }
|
||||
bool isSuitableForShortCircuitArgumentsExecution(ColumnsWithTypeAndName & /*arguments*/) const override { return true; }
|
||||
bool isSuitableForShortCircuitArgumentsExecution(ColumnsWithTypeAndName & /*arguments*/) const override { return false; }
|
||||
|
||||
using DefaultReturnTypeGetter = std::function<DataTypePtr(const ColumnsWithTypeAndName &)>;
|
||||
static DataTypePtr getReturnTypeDefaultImplementationForNulls(const ColumnsWithTypeAndName & arguments, const DefaultReturnTypeGetter & getter)
|
||||
@ -1790,7 +1790,7 @@ public:
|
||||
}
|
||||
|
||||
bool isVariadic() const override { return true; }
|
||||
bool isSuitableForShortCircuitArgumentsExecution(ColumnsWithTypeAndName & /*arguments*/) const override { return true; }
|
||||
bool isSuitableForShortCircuitArgumentsExecution(ColumnsWithTypeAndName & /*arguments*/) const override { return false; }
|
||||
size_t getNumberOfArguments() const override { return 0; }
|
||||
|
||||
bool useDefaultImplementationForConstants() const override { return true; }
|
||||
@ -2462,7 +2462,7 @@ public:
|
||||
|
||||
bool isDeterministic() const override { return true; }
|
||||
bool isDeterministicInScopeOfQuery() const override { return true; }
|
||||
bool isSuitableForShortCircuitArgumentsExecution(ColumnsWithTypeAndName & /*arguments*/) const override { return true; }
|
||||
bool isSuitableForShortCircuitArgumentsExecution(ColumnsWithTypeAndName & /*arguments*/) const override { return false; }
|
||||
|
||||
bool hasInformationAboutMonotonicity() const override
|
||||
{
|
||||
|
@ -940,6 +940,27 @@ private:
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static void executeShortCircuitArguments(ColumnsWithTypeAndName & arguments)
|
||||
{
|
||||
int last_short_circuit_argument_index = checkShirtCircuitArguments(arguments);
|
||||
if (last_short_circuit_argument_index == -1)
|
||||
return;
|
||||
|
||||
/// Check if condition is const or null to not create full mask from it.
|
||||
if ((isColumnConst(*arguments[0].column) || arguments[0].column->onlyNull()) && !arguments[0].column->empty())
|
||||
{
|
||||
bool value = arguments[0].column->getBool(0);
|
||||
executeColumnIfNeeded(arguments[1], !value);
|
||||
executeColumnIfNeeded(arguments[2], value);
|
||||
return;
|
||||
}
|
||||
|
||||
IColumn::Filter mask;
|
||||
auto mask_info = getMaskFromColumn(arguments[0].column, mask);
|
||||
maskedExecute(arguments[1], mask, mask_info);
|
||||
maskedExecute(arguments[2], mask, mask_info, /*inverted=*/true);
|
||||
}
|
||||
|
||||
public:
|
||||
String getName() const override
|
||||
{
|
||||
@ -976,27 +997,6 @@ public:
|
||||
return getLeastSupertype({arguments[1], arguments[2]});
|
||||
}
|
||||
|
||||
void executeShortCircuitArguments(ColumnsWithTypeAndName & arguments) const
|
||||
{
|
||||
int last_short_circuit_argument_index = checkShirtCircuitArguments(arguments);
|
||||
if (last_short_circuit_argument_index == -1)
|
||||
return;
|
||||
|
||||
/// Check if condition is const or null to not create full mask from it.
|
||||
if ((isColumnConst(*arguments[0].column) || arguments[0].column->onlyNull()) && !arguments[0].column->empty())
|
||||
{
|
||||
bool value = arguments[0].column->getBool(0);
|
||||
executeColumnIfNeeded(arguments[1], !value);
|
||||
executeColumnIfNeeded(arguments[2], value);
|
||||
return;
|
||||
}
|
||||
|
||||
IColumn::Filter mask;
|
||||
auto mask_info = getMaskFromColumn(arguments[0].column, mask);
|
||||
maskedExecute(arguments[1], mask, mask_info);
|
||||
maskedExecute(arguments[2], mask, mask_info, /*inverted=*/true);
|
||||
}
|
||||
|
||||
ColumnPtr executeImpl(const ColumnsWithTypeAndName & args, const DataTypePtr & result_type, size_t input_rows_count) const override
|
||||
{
|
||||
ColumnsWithTypeAndName arguments = std::move(args);
|
||||
|
@ -262,7 +262,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
void executeShortCircuitArguments(ColumnsWithTypeAndName & arguments) const
|
||||
static void executeShortCircuitArguments(ColumnsWithTypeAndName & arguments)
|
||||
{
|
||||
int last_short_circuit_argument_index = checkShirtCircuitArguments(arguments);
|
||||
if (last_short_circuit_argument_index < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user