Skip to content
This repository was archived by the owner on May 9, 2024. It is now read-only.

Commit 181dda1

Browse files
committed
Move optype enums to a separate header.
Signed-off-by: ienkovich <[email protected]>
1 parent 318b74c commit 181dda1

File tree

2 files changed

+115
-105
lines changed

2 files changed

+115
-105
lines changed

omniscidb/IR/OpType.h

Lines changed: 2 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -7,112 +7,9 @@
77

88
#pragma once
99

10-
#include "Logger/Logger.h"
11-
12-
namespace hdk::ir {
13-
14-
// must not change the order without keeping the array in OperExpr::to_string
15-
// in sync.
16-
enum class OpType {
17-
kEq = 0,
18-
kBwEq,
19-
kNe,
20-
kLt,
21-
kGt,
22-
kLe,
23-
kGe,
24-
kAnd,
25-
kOr,
26-
kNot,
27-
kBwAnd,
28-
kBwOr,
29-
kBwXor,
30-
kBwNot,
31-
kMinus,
32-
kPlus,
33-
kMul,
34-
kDiv,
35-
kMod,
36-
kUMinus,
37-
kIsNull,
38-
kCast,
39-
kArrayAt,
40-
kUnnest,
41-
kFunction,
42-
kIn
43-
};
44-
45-
inline bool isComparison(OpType op) {
46-
return op == OpType::kEq || op == OpType::kBwEq || op == OpType::kNe ||
47-
op == OpType::kLt || op == OpType::kGt || op == OpType::kLe || op == OpType::kGe;
48-
}
49-
50-
inline bool isLogic(OpType op) {
51-
return op == OpType::kAnd || op == OpType::kOr;
52-
}
53-
54-
inline bool isArithmetic(OpType op) {
55-
return op == OpType::kMinus || op == OpType::kPlus || op == OpType::kMul ||
56-
op == OpType::kDiv || op == OpType::kMod;
57-
}
58-
inline OpType commuteComparison(OpType op) {
59-
return op == OpType::kLt ? OpType::kGt
60-
: op == OpType::kLe ? OpType::kGe
61-
: op == OpType::kGt ? OpType::kLt
62-
: op == OpType::kGe ? OpType::kLe
63-
: op;
64-
}
65-
inline bool isUnary(OpType op) {
66-
return op == OpType::kNot || op == OpType::kUMinus || op == OpType::kIsNull ||
67-
op == OpType::kCast || op == OpType::kBwNot;
68-
}
69-
inline bool isEquivalence(OpType op) {
70-
return op == OpType::kEq || op == OpType::kBwEq;
71-
}
72-
73-
inline bool isBitwise(OpType op) {
74-
return op == OpType::kBwAnd || op == OpType::kBwOr || op == OpType::kBwXor ||
75-
op == OpType::kBwNot;
76-
}
10+
#include "OpTypeEnums.h"
7711

78-
enum class Qualifier { kOne, kAny, kAll };
79-
80-
enum class AggType {
81-
kAvg,
82-
kMin,
83-
kMax,
84-
kSum,
85-
kCount,
86-
kApproxCountDistinct,
87-
kApproxQuantile,
88-
kSample,
89-
kSingleValue,
90-
kTopK,
91-
// Compound aggregates
92-
kStdDevSamp,
93-
kCorr,
94-
};
95-
96-
enum class WindowFunctionKind {
97-
RowNumber,
98-
Rank,
99-
DenseRank,
100-
PercentRank,
101-
CumeDist,
102-
NTile,
103-
Lag,
104-
Lead,
105-
FirstValue,
106-
LastValue,
107-
Avg,
108-
Min,
109-
Max,
110-
Sum,
111-
Count,
112-
SumInternal // For deserialization from Calcite only. Gets rewritten to a regular SUM.
113-
};
114-
115-
} // namespace hdk::ir
12+
#include "Logger/Logger.h"
11613

11714
inline std::string toString(hdk::ir::OpType op) {
11815
switch (op) {

omniscidb/IR/OpTypeEnums.h

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/**
2+
* Copyright 2017 MapD Technologies, Inc.
3+
* Copyright (C) 2023 Intel Corporation
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
#pragma once
9+
10+
namespace hdk::ir {
11+
12+
// must not change the order without keeping the array in OperExpr::to_string
13+
// in sync.
14+
enum class OpType {
15+
kEq = 0,
16+
kBwEq,
17+
kNe,
18+
kLt,
19+
kGt,
20+
kLe,
21+
kGe,
22+
kAnd,
23+
kOr,
24+
kNot,
25+
kBwAnd,
26+
kBwOr,
27+
kBwXor,
28+
kBwNot,
29+
kMinus,
30+
kPlus,
31+
kMul,
32+
kDiv,
33+
kMod,
34+
kUMinus,
35+
kIsNull,
36+
kCast,
37+
kArrayAt,
38+
kUnnest,
39+
kFunction,
40+
kIn
41+
};
42+
43+
inline bool isComparison(OpType op) {
44+
return op == OpType::kEq || op == OpType::kBwEq || op == OpType::kNe ||
45+
op == OpType::kLt || op == OpType::kGt || op == OpType::kLe || op == OpType::kGe;
46+
}
47+
48+
inline bool isLogic(OpType op) {
49+
return op == OpType::kAnd || op == OpType::kOr;
50+
}
51+
52+
inline bool isArithmetic(OpType op) {
53+
return op == OpType::kMinus || op == OpType::kPlus || op == OpType::kMul ||
54+
op == OpType::kDiv || op == OpType::kMod;
55+
}
56+
inline OpType commuteComparison(OpType op) {
57+
return op == OpType::kLt ? OpType::kGt
58+
: op == OpType::kLe ? OpType::kGe
59+
: op == OpType::kGt ? OpType::kLt
60+
: op == OpType::kGe ? OpType::kLe
61+
: op;
62+
}
63+
inline bool isUnary(OpType op) {
64+
return op == OpType::kNot || op == OpType::kUMinus || op == OpType::kIsNull ||
65+
op == OpType::kCast || op == OpType::kBwNot;
66+
}
67+
inline bool isEquivalence(OpType op) {
68+
return op == OpType::kEq || op == OpType::kBwEq;
69+
}
70+
71+
inline bool isBitwise(OpType op) {
72+
return op == OpType::kBwAnd || op == OpType::kBwOr || op == OpType::kBwXor ||
73+
op == OpType::kBwNot;
74+
}
75+
76+
enum class Qualifier { kOne, kAny, kAll };
77+
78+
enum class AggType {
79+
kAvg,
80+
kMin,
81+
kMax,
82+
kSum,
83+
kCount,
84+
kApproxCountDistinct,
85+
kApproxQuantile,
86+
kSample,
87+
kSingleValue,
88+
kTopK,
89+
// Compound aggregates
90+
kStdDevSamp,
91+
kCorr,
92+
};
93+
94+
enum class WindowFunctionKind {
95+
RowNumber,
96+
Rank,
97+
DenseRank,
98+
PercentRank,
99+
CumeDist,
100+
NTile,
101+
Lag,
102+
Lead,
103+
FirstValue,
104+
LastValue,
105+
Avg,
106+
Min,
107+
Max,
108+
Sum,
109+
Count,
110+
SumInternal // For deserialization from Calcite only. Gets rewritten to a regular SUM.
111+
};
112+
113+
} // namespace hdk::ir

0 commit comments

Comments
 (0)