Go to the documentation of this file.    1 #ifndef EXPR_FUNCCALLOPERATOR_H 
    2 #define EXPR_FUNCCALLOPERATOR_H 
   10     template<
class ...UniquePtrs>
 
   11     static std::unique_ptr<FuncCallOperator>
 
   13         std::shared_ptr<const SysTable_Type> rettyp;
 
   16         return absl::WrapUnique(
 
   20                                  std::forward<UniquePtrs>(arg_exprs)...));
 
   25     Datum Eval(
const std::vector<NullableDatumRef>& record) 
const override;
 
   27     Datum Eval(
const char* record) 
const override;
 
   32     template<
class ...UniquePtrs>
 
   35                      std::shared_ptr<const SysTable_Type> rettyp,
 
   36                      UniquePtrs&& ...arg_exprs):
 
   40     m_nargs((int16_t) sizeof...(UniquePtrs)) {
 
   41         m_type = std::move(rettyp);
 
   44     template<
class ...UniquePtrs>
 
   47                            std::shared_ptr<const SysTable_Type> &rettyp,
 
   48                            const UniquePtrs&... arg_exprs) {
 
   49         std::vector<const ExprNode*> arg_expr_ptrs {{
 
   58         std::shared_ptr<const SysTable_Type> &rettyp,
 
   59         std::vector<const ExprNode*> arg_expr_ptrs);
 
 
std::function< Datum(FunctionCallInfo &)> FunctionInfo
An FMGR managed function should be declared as.
Definition: fmgr.h:50
 
Definition: FuncCallOperator.h:8
 
void node_properties_to_string(std::string &buf, int indent) const override
Definition: FuncCallOperator.cpp:76
 
~FuncCallOperator() override
Definition: FuncCallOperator.h:23
 
static FunctionInfo CheckAndLookupFunction(Oid funcid, std::shared_ptr< const SysTable_Type > &rettyp, const UniquePtrs &... arg_exprs)
Definition: FuncCallOperator.h:46
 
FuncCallOperator(FunctionInfo &&func, Oid funcid, std::shared_ptr< const SysTable_Type > rettyp, UniquePtrs &&...arg_exprs)
Definition: FuncCallOperator.h:33
 
#define TAG(nodeclsname)
Definition: NodeTag.h:26
 
ExprNode is an abstract class of all expressions.
Definition: ExprNode.h:20
 
Oid m_funcid
Definition: FuncCallOperator.h:62
 
uint32_t Oid
Definition: tdb_base.h:211
 
FunctionInfo m_func
Definition: FuncCallOperator.h:61
 
A Datum stores and possibly manage the memory resource of a read-only value of a plain fixed-length C...
Definition: datum.h:250
 
std::shared_ptr< const SysTable_Type > m_type
Definition: ExprNode.h:52
 
static FunctionInfo CheckAndLookupFunctionImpl(Oid funcid, std::shared_ptr< const SysTable_Type > &rettyp, std::vector< const ExprNode * > arg_expr_ptrs)
Definition: FuncCallOperator.cpp:8
 
Datum Eval(const std::vector< NullableDatumRef > &record) const override
Evaluate function upon a deserialized record.
Definition: FuncCallOperator.cpp:46
 
int16_t m_nargs
Definition: FuncCallOperator.h:63
 
static std::unique_ptr< FuncCallOperator > Create(Oid funcid, UniquePtrs &&...arg_exprs)
Definition: FuncCallOperator.h:12