diff --git a/dbms/src/Functions/IFunction.h b/dbms/src/Functions/IFunction.h index 28a87dddcda..a07f0a5c99e 100644 --- a/dbms/src/Functions/IFunction.h +++ b/dbms/src/Functions/IFunction.h @@ -291,6 +291,11 @@ public: virtual bool isCompilable(const DataTypes & /*types*/) const { return false; } + bool isCompilable() const final + { + throw Exception("isCompilable without explicit types is not implemented for IFunction", ErrorCodes::NOT_IMPLEMENTED); + } + PreparedFunctionPtr prepare(const Block & /*sample_block*/) const final { throw Exception("prepare is not implemented for IFunction", ErrorCodes::NOT_IMPLEMENTED); @@ -301,6 +306,11 @@ public: throw Exception(getName() + " is not JIT-compilable", ErrorCodes::NOT_IMPLEMENTED); } + llvm::Value * compile(llvm::IRBuilderBase & /*builder*/, const ValuePlaceholders & /*values*/) const final + { + throw Exception("compile without explicit types is not implemented for IFunction", ErrorCodes::NOT_IMPLEMENTED); + } + const DataTypes & getArgumentTypes() const final { throw Exception("getArgumentTypes is not implemented for IFunction", ErrorCodes::NOT_IMPLEMENTED);