diff --git a/dbms/src/Columns/ColumnsCommon.cpp b/dbms/src/Columns/ColumnsCommon.cpp index 1fb24261007..e07f4171cac 100644 --- a/dbms/src/Columns/ColumnsCommon.cpp +++ b/dbms/src/Columns/ColumnsCommon.cpp @@ -322,13 +322,13 @@ namespace detail return nullptr; } - template <> + template const PaddedPODArray * getIndexesData(const DB::ColumnPtr & indexes); - template <> + template const PaddedPODArray * getIndexesData(const DB::ColumnPtr & indexes); - template <> + template const PaddedPODArray * getIndexesData(const DB::ColumnPtr & indexes); - template <> + template const PaddedPODArray * getIndexesData(const DB::ColumnPtr & indexes); } diff --git a/dbms/src/Functions/FunctionsMiscellaneous.h b/dbms/src/Functions/FunctionsMiscellaneous.h index 78184e81105..47d355d9d1a 100644 --- a/dbms/src/Functions/FunctionsMiscellaneous.h +++ b/dbms/src/Functions/FunctionsMiscellaneous.h @@ -78,6 +78,7 @@ public: bool useDefaultImplementationForNulls() const override { return false; } bool useDefaultImplementationForConstants() const override { return true; } + bool useDefaultImplementationForColumnsWithDictionary() const override { return false; } DataTypePtr getReturnTypeImpl(const DataTypes & arguments) const override { @@ -110,6 +111,7 @@ public: bool useDefaultImplementationForNulls() const override { return false; } bool useDefaultImplementationForConstants() const override { return true; } + bool useDefaultImplementationForColumnsWithDictionary() const override { return false; } DataTypePtr getReturnTypeImpl(const DataTypes & arguments) const override { diff --git a/dbms/src/Functions/IFunction.h b/dbms/src/Functions/IFunction.h index 21ad8b491d3..5aaeb81bdc5 100644 --- a/dbms/src/Functions/IFunction.h +++ b/dbms/src/Functions/IFunction.h @@ -271,6 +271,7 @@ public: /// Override this functions to change default implementation behavior. See details in IMyFunction. bool useDefaultImplementationForNulls() const override { return true; } bool useDefaultImplementationForConstants() const override { return false; } + bool useDefaultImplementationForColumnsWithDictionary() const override { return true; } ColumnNumbers getArgumentsThatAreAlwaysConstant() const override { return {}; } using PreparedFunctionImpl::execute; @@ -317,6 +318,7 @@ protected: } bool useDefaultImplementationForNulls() const final { return function->useDefaultImplementationForNulls(); } bool useDefaultImplementationForConstants() const final { return function->useDefaultImplementationForConstants(); } + bool useDefaultImplementationForColumnsWithDictionary() const final { return function->useDefaultImplementationForColumnsWithDictionary(); } ColumnNumbers getArgumentsThatAreAlwaysConstant() const final { return function->getArgumentsThatAreAlwaysConstant(); } private: @@ -375,6 +377,7 @@ protected: DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override { return function->getReturnTypeImpl(arguments); } bool useDefaultImplementationForNulls() const override { return function->useDefaultImplementationForNulls(); } + bool useDefaultImplementationForColumnsWithDictionary() const override { return function->useDefaultImplementationForColumnsWithDictionary(); } FunctionBasePtr buildImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr & return_type) const override {