taco-db  0.1.0
OrOperator.h
Go to the documentation of this file.
1 #ifndef EXPR_OROPERATOR_H
2 #define EXPR_OROPERATOR_H
3 
4 #include "expr/ExprNode.h"
5 
6 namespace taco {
7 
8 class OrOperator: public ExprNode {
9 public:
10  static std::unique_ptr<OrOperator>
11  Create(std::unique_ptr<ExprNode>&& left,
12  std::unique_ptr<ExprNode>&& right);
13 
14  ~OrOperator() override;
15 
16  Datum Eval(const std::vector<NullableDatumRef>& record) const override;
17 
18  Datum Eval(const char* record) const override;
19 
20  void node_properties_to_string(std::string &buf, int indent) const override;
21 private:
22  OrOperator(std::unique_ptr<ExprNode>&& left,
23  std::unique_ptr<ExprNode>&& right);
24 };
25 
26 }
27 
28 #endif
taco::OrOperator::OrOperator
OrOperator(std::unique_ptr< ExprNode > &&left, std::unique_ptr< ExprNode > &&right)
Definition: OrOperator.cpp:7
taco::OrOperator::~OrOperator
~OrOperator() override
Definition: OrOperator.cpp:18
taco
Definition: datum.h:28
taco::OrOperator
Definition: OrOperator.h:8
taco::OrOperator::Eval
Datum Eval(const std::vector< NullableDatumRef > &record) const override
Evaluate function upon a deserialized record.
Definition: OrOperator.cpp:28
taco::OrOperator::Create
static std::unique_ptr< OrOperator > Create(std::unique_ptr< ExprNode > &&left, std::unique_ptr< ExprNode > &&right)
Definition: OrOperator.cpp:21
ExprNode.h
taco::ExprNode
ExprNode is an abstract class of all expressions.
Definition: ExprNode.h:20
taco::OrOperator::node_properties_to_string
void node_properties_to_string(std::string &buf, int indent) const override
Definition: OrOperator.cpp:47
taco::Datum
A Datum stores and possibly manage the memory resource of a read-only value of a plain fixed-length C...
Definition: datum.h:250