mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Fix a comment; remove unused method; stop using pointers
This commit is contained in:
parent
1f5e0f52ff
commit
4172057a4e
@ -5,6 +5,7 @@
|
|||||||
#include <Core/ColumnsWithTypeAndName.h>
|
#include <Core/ColumnsWithTypeAndName.h>
|
||||||
#include <Columns/IColumn.h>
|
#include <Columns/IColumn.h>
|
||||||
|
|
||||||
|
|
||||||
namespace DB
|
namespace DB
|
||||||
{
|
{
|
||||||
namespace ErrorCodes
|
namespace ErrorCodes
|
||||||
@ -16,7 +17,7 @@ class IFunctionBase;
|
|||||||
using FunctionBasePtr = std::shared_ptr<const IFunctionBase>;
|
using FunctionBasePtr = std::shared_ptr<const IFunctionBase>;
|
||||||
|
|
||||||
/** A column containing a lambda expression.
|
/** A column containing a lambda expression.
|
||||||
* Behaves like a constant-column. Contains an expression, but not input or output data.
|
* Contains an expression and captured columns, but not input arguments.
|
||||||
*/
|
*/
|
||||||
class ColumnFunction final : public COWHelper<IColumn, ColumnFunction>
|
class ColumnFunction final : public COWHelper<IColumn, ColumnFunction>
|
||||||
{
|
{
|
||||||
@ -207,8 +208,6 @@ private:
|
|||||||
bool is_function_compiled;
|
bool is_function_compiled;
|
||||||
|
|
||||||
void appendArgument(const ColumnWithTypeAndName & column);
|
void appendArgument(const ColumnWithTypeAndName & column);
|
||||||
|
|
||||||
void addOffsetsForReplication(const IColumn::Offsets & offsets);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const ColumnFunction * checkAndGetShortCircuitArgument(const ColumnPtr & column);
|
const ColumnFunction * checkAndGetShortCircuitArgument(const ColumnPtr & column);
|
||||||
|
@ -74,6 +74,8 @@ public:
|
|||||||
size_t getNumberOfArguments() const override { return 0; }
|
size_t getNumberOfArguments() const override { return 0; }
|
||||||
bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return true; }
|
bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return true; }
|
||||||
|
|
||||||
|
bool useDefaultImplementationForConstants() const override { return true; }
|
||||||
|
|
||||||
/// Called if at least one function argument is a lambda expression.
|
/// Called if at least one function argument is a lambda expression.
|
||||||
/// For argument-lambda expressions, it defines the types of arguments of these expressions.
|
/// For argument-lambda expressions, it defines the types of arguments of these expressions.
|
||||||
void getLambdaArgumentTypes(DataTypes & arguments) const override
|
void getLambdaArgumentTypes(DataTypes & arguments) const override
|
||||||
@ -370,10 +372,10 @@ public:
|
|||||||
|
|
||||||
/// Put all the necessary columns multiplied by the sizes of arrays into the columns.
|
/// Put all the necessary columns multiplied by the sizes of arrays into the columns.
|
||||||
auto replicated_column_function_ptr = IColumn::mutate(column_function->replicate(column_first_array->getOffsets()));
|
auto replicated_column_function_ptr = IColumn::mutate(column_function->replicate(column_first_array->getOffsets()));
|
||||||
auto * replicated_column_function = typeid_cast<ColumnFunction *>(replicated_column_function_ptr.get());
|
auto & replicated_column_function = typeid_cast<ColumnFunction &>(*replicated_column_function_ptr);
|
||||||
replicated_column_function->appendArguments(arrays);
|
replicated_column_function.appendArguments(arrays);
|
||||||
|
|
||||||
auto lambda_result = replicated_column_function->reduce();
|
auto lambda_result = replicated_column_function.reduce();
|
||||||
|
|
||||||
/// Convert LowCardinality(T) -> T and Const(LowCardinality(T)) -> Const(T),
|
/// Convert LowCardinality(T) -> T and Const(LowCardinality(T)) -> Const(T),
|
||||||
/// because we removed LowCardinality from return type of lambda expression.
|
/// because we removed LowCardinality from return type of lambda expression.
|
||||||
|
Loading…
Reference in New Issue
Block a user