21 : resultType{std::move(dataType)}, clientContext{nullptr}, count{1} {}
23 : paramTypes{std::move(paramTypes)}, resultType{std::move(resultType)},
24 clientContext{nullptr}, count{1} {}
31 template<
class TARGET>
33 return common::ku_dynamic_cast<FunctionBindData&, TARGET&>(*
this);
36 virtual std::unique_ptr<FunctionBindData>
copy()
const {
37 return std::make_unique<FunctionBindData>(common::LogicalType::copy(paramTypes),
77 virtual std::unique_ptr<Function>
copy()
const = 0;
79 template<
class TARGET>
83 template<
class TARGET>
#define KUZU_API
Definition api.h:25
static KUZU_API std::vector< LogicalType > copy(const std::vector< LogicalType > &types)
Contain client side configuration. We make profiler associated per query, so profiler is not maintain...
Definition client_context.h:51
std::vector< std::shared_ptr< Expression > > expression_vector
Definition expression.h:19
TO ku_dynamic_cast(FROM old)
Definition cast.h:11
LogicalTypeID
Definition types.h:126
std::vector< std::unique_ptr< Function > > function_set
Definition function.h:43
std::function< std::unique_ptr< FunctionBindData >(ScalarBindFuncInput bindInput)> scalar_bind_func
Definition function.h:55
Definition alter_type.h:5
static std::string toString(LogicalTypeID dataTypeID)
BaseScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_bind_func bindFunc)
Definition function.h:93
std::string signatureToString() const override
Definition function.h:98
common::LogicalTypeID returnTypeID
Definition function.h:90
scalar_bind_func bindFunc
Definition function.h:91
DELETE_COPY_AND_MOVE(FunctionBindData)
virtual std::unique_ptr< FunctionBindData > copy() const
Definition function.h:36
common::LogicalType resultType
Definition function.h:16
TARGET & cast()
Definition function.h:32
int64_t count
Definition function.h:18
virtual ~FunctionBindData()=default
std::vector< common::LogicalType > paramTypes
Definition function.h:15
FunctionBindData(std::vector< common::LogicalType > paramTypes, common::LogicalType resultType)
Definition function.h:22
main::ClientContext * clientContext
Definition function.h:17
FunctionBindData(common::LogicalType dataType)
Definition function.h:20
static std::unique_ptr< FunctionBindData > getSimpleBindData(const binder::expression_vector ¶ms, const common::LogicalType &resultType)
Function()
Definition function.h:65
std::string name
Definition function.h:59
TARGET * ptrCast()
Definition function.h:84
const TARGET * constPtrCast() const
Definition function.h:80
std::vector< common::LogicalTypeID > parameterTypeIDs
Definition function.h:60
Function(const Function &)=default
virtual ~Function()=default
Function(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs)
Definition function.h:66
virtual std::string signatureToString() const
Definition function.h:73
bool isVarLength
Definition function.h:63
virtual std::unique_ptr< Function > copy() const =0