Throw in untyped versions of IFunction::{isCompilable,compile}

IFunction inherits IFunctionBase for some reason despite not actually knowing
the types, so these two methods make no sense. The versions with DataTypes&
as an argument should be used instead.
This commit is contained in:
pyos 2018-04-25 20:07:19 +03:00
parent 9ae5fe1b6d
commit c95f8a669f

View File

@ -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);