-
Notifications
You must be signed in to change notification settings - Fork 397
Expand file tree
/
Copy pathClickHouseSelect.java
More file actions
140 lines (112 loc) · 3.89 KB
/
ClickHouseSelect.java
File metadata and controls
140 lines (112 loc) · 3.89 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package sqlancer.clickhouse.ast;
import java.util.Collections;
import java.util.List;
import sqlancer.clickhouse.ClickHouseSchema.ClickHouseColumn;
import sqlancer.clickhouse.ClickHouseSchema.ClickHouseTable;
import sqlancer.clickhouse.ClickHouseToStringVisitor;
import sqlancer.common.ast.newast.Select;
public class ClickHouseSelect extends ClickHouseExpression implements
Select<ClickHouseExpression.ClickHouseJoin, ClickHouseExpression, ClickHouseTable, ClickHouseColumn> {
private ClickHouseSelect.SelectType fromOptions = ClickHouseSelect.SelectType.ALL;
private List<ClickHouseExpression> fromClauses;
private ClickHouseExpression whereClause;
private List<ClickHouseExpression> groupByClause = Collections.emptyList();
private ClickHouseExpression limitClause;
private List<ClickHouseExpression> orderByClause = Collections.emptyList();
private ClickHouseExpression offsetClause;
private List<ClickHouseExpression> fetchColumns = Collections.emptyList();
private List<ClickHouseExpression.ClickHouseJoin> joinStatements = Collections.emptyList();
private ClickHouseExpression havingClause;
public enum SelectType {
DISTINCT, ALL;
}
public void setSelectType(ClickHouseSelect.SelectType fromOptions) {
this.setFromOptions(fromOptions);
}
public void setFromClause(ClickHouseExpression fromList) {
this.fromClauses = List.of(fromList);
}
@Override
public List<ClickHouseExpression> getFromList() {
return fromClauses;
}
public ClickHouseSelect.SelectType getFromOptions() {
return fromOptions;
}
public void setFromOptions(ClickHouseSelect.SelectType fromOptions) {
this.fromOptions = fromOptions;
}
@Override
public ClickHouseExpression getWhereClause() {
return whereClause;
}
@Override
public void setWhereClause(ClickHouseExpression whereClause) {
this.whereClause = whereClause;
}
@Override
public void setGroupByClause(List<ClickHouseExpression> groupByClause) {
this.groupByClause = groupByClause;
}
@Override
public List<ClickHouseExpression> getGroupByClause() {
return groupByClause;
}
@Override
public void setLimitClause(ClickHouseExpression limitClause) {
this.limitClause = limitClause;
}
@Override
public ClickHouseExpression getLimitClause() {
return limitClause;
}
@Override
public List<ClickHouseExpression> getOrderByClauses() {
return orderByClause;
}
@Override
public void setOrderByClauses(List<ClickHouseExpression> orderBy) {
this.orderByClause = orderBy;
}
@Override
public void setOffsetClause(ClickHouseExpression offsetClause) {
this.offsetClause = offsetClause;
}
@Override
public ClickHouseExpression getOffsetClause() {
return offsetClause;
}
@Override
public void setFetchColumns(List<ClickHouseExpression> fetchColumns) {
this.fetchColumns = fetchColumns;
}
@Override
public List<ClickHouseExpression> getFetchColumns() {
return fetchColumns;
}
@Override
public void setJoinClauses(List<ClickHouseExpression.ClickHouseJoin> joinStatements) {
this.joinStatements = joinStatements;
}
@Override
public List<ClickHouseExpression.ClickHouseJoin> getJoinClauses() {
return joinStatements;
}
@Override
public void setHavingClause(ClickHouseExpression havingClause) {
this.havingClause = havingClause;
}
@Override
public ClickHouseExpression getHavingClause() {
assert orderByClause != null;
return havingClause;
}
@Override
public String asString() {
return ClickHouseToStringVisitor.asString(this);
}
@Override
public void setFromList(List<ClickHouseExpression> fromList) {
this.fromClauses = fromList;
}
}