This repository was archived by the owner on Sep 27, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 618
/
Copy pathgroup_marker_expression.h
64 lines (50 loc) · 1.67 KB
/
group_marker_expression.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//===----------------------------------------------------------------------===//
//
// Peloton
//
// group_marker_expression.h
//
// Identification: src/include/expression/group_marker_expression.h
//
// Copyright (c) 2015-2018, Carnegie Mellon University Database Group
//
//===----------------------------------------------------------------------===//
#pragma once
#include "expression/abstract_expression.h"
#include "optimizer/group_expression.h"
#include "util/hash_util.h"
namespace peloton {
namespace executor {
class ExecutorContext;
} // namespace executor
namespace expression {
//===----------------------------------------------------------------------===//
// GroupMarkerExpression
//===----------------------------------------------------------------------===//
class GroupMarkerExpression : public AbstractExpression {
public:
GroupMarkerExpression(optimizer::GroupID group_id) :
AbstractExpression(ExpressionType::GROUP_MARKER),
group_id_(group_id) {};
optimizer::GroupID GetGroupID() { return group_id_; }
AbstractExpression *Copy() const override {
return new GroupMarkerExpression(group_id_);
}
type::Value Evaluate(const AbstractTuple *tuple1,
const AbstractTuple *tuple2,
executor::ExecutorContext *context) const {
(void)tuple1;
(void)tuple2;
(void)context;
PELOTON_ASSERT(0);
}
void Accept(SqlNodeVisitor *) {
PELOTON_ASSERT(0);
}
protected:
optimizer::GroupID group_id_;
GroupMarkerExpression(const GroupMarkerExpression &other)
: AbstractExpression(other), group_id_(other.group_id_) {}
};
} // namespace expression
} // namespace peloton