Go to the documentation of this file.    1 #ifndef EXPR_EXPRNODE_H 
    2 #define EXPR_EXPRNODE_H 
   33     template<
class ...UniquePtrs>
 
   35         TreeNode(tag, 
std::forward<UniquePtrs>(input)...) {}
 
   41     virtual Datum Eval(
const std::vector<NullableDatumRef>& record) 
const = 0;
 
   44     virtual Datum Eval(
const char* record) 
const = 0;
 
   47     std::shared_ptr<const SysTable_Type> 
ReturnType()
 const {
 
   52     std::shared_ptr<const SysTable_Type> 
m_type;
 
   57 #endif      // QUERY_EXPR_EXPRNODE_H 
 
TreeNode is the base class of all tree structures in TDB (e.g., parsing tree, logical plan,...
Definition: TreeNode.h:45
 
virtual Datum Eval(const std::vector< NullableDatumRef > &record) const =0
Evaluate function upon a deserialized record.
 
std::shared_ptr< const SysTable_Type > ReturnType() const
Derive the return type of this expression.
Definition: ExprNode.h:47
 
virtual ~ExprNode()
Deconstructor.
Definition: ExprNode.h:38
 
ExprNode is an abstract class of all expressions.
Definition: ExprNode.h:20
 
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
 
ExprNode(NodeTag tag, UniquePtrs &&...input)
Base constructor for all expression nodes.
Definition: ExprNode.h:34
 
NodeTag
Definition: NodeTag.h:12