1 #ifndef EXPR_EXPRNODE_H
2 #define EXPR_EXPRNODE_H
42 template<
class ...UniquePtrs>
44 TreeNode(tag,
std::forward<UniquePtrs>(input)...) {}
50 virtual Datum Eval(
const std::vector<NullableDatumRef>& record)
const = 0;
56 std::shared_ptr<const SysTable_Type>
ReturnType()
const {
61 std::shared_ptr<const SysTable_Type>
m_type;
This file is automatically generated, DO NOT modify.
A Datum stores and possibly manage the memory resource of a read-only value of a plain fixed-length C...
Definition: datum.h:250
ExprNode is an abstract class of all expressions.
Definition: ExprNode.h:29
std::shared_ptr< const SysTable_Type > ReturnType() const
Derive the return type of this expression.
Definition: ExprNode.h:56
virtual Datum Eval(const std::vector< NullableDatumRef > &record) const =0
Evaluate function upon a deserialized record.
virtual Datum Eval(const char *record) const =0
Evaluate function on top of a serialized record.
std::shared_ptr< const SysTable_Type > m_type
Definition: ExprNode.h:61
virtual ~ExprNode()
Deconstructor.
Definition: ExprNode.h:47
ExprNode(NodeTag tag, UniquePtrs &&...input)
Base constructor for all expression nodes.
Definition: ExprNode.h:43
TreeNode is the base class of all tree structures in TDB (e.g., parsing tree, logical plan,...
Definition: TreeNode.h:40
NodeTag
Definition: NodeTag.h:12