Skip to content

Commit baa1f1c

Browse files
committed
[Databend] Update expressions to match new AST
1 parent eac479e commit baa1f1c

37 files changed

+268
-314
lines changed

src/sqlancer/databend/DatabendExpectedValueVisitor.java

Lines changed: 50 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,57 @@
22

33
import java.util.List;
44

5-
import sqlancer.common.ast.newast.ColumnReferenceNode;
6-
import sqlancer.common.ast.newast.NewAliasNode;
7-
import sqlancer.common.ast.newast.NewBetweenOperatorNode;
8-
import sqlancer.common.ast.newast.NewBinaryOperatorNode;
9-
import sqlancer.common.ast.newast.NewFunctionNode;
10-
import sqlancer.common.ast.newast.NewInOperatorNode;
11-
import sqlancer.common.ast.newast.NewOrderingTerm;
12-
import sqlancer.common.ast.newast.NewPostfixTextNode;
13-
import sqlancer.common.ast.newast.NewUnaryPostfixOperatorNode;
14-
import sqlancer.common.ast.newast.NewUnaryPrefixOperatorNode;
15-
import sqlancer.common.ast.newast.Node;
16-
import sqlancer.common.ast.newast.TableReferenceNode;
17-
import sqlancer.databend.DatabendSchema.DatabendColumn;
5+
import sqlancer.databend.ast.DatabendAlias;
6+
import sqlancer.databend.ast.DatabendBetweenOperation;
7+
import sqlancer.databend.ast.DatabendBinaryOperation;
8+
import sqlancer.databend.ast.DatabendColumnReference;
189
import sqlancer.databend.ast.DatabendConstant;
1910
import sqlancer.databend.ast.DatabendExpression;
11+
import sqlancer.databend.ast.DatabendFunctionOperation;
12+
import sqlancer.databend.ast.DatabendInOperation;
2013
import sqlancer.databend.ast.DatabendJoin;
14+
import sqlancer.databend.ast.DatabendOrderByTerm;
15+
import sqlancer.databend.ast.DatabendPostFixText;
2116
import sqlancer.databend.ast.DatabendSelect;
17+
import sqlancer.databend.ast.DatabendTableReference;
18+
import sqlancer.databend.ast.DatabendUnaryPostfixOperation;
19+
import sqlancer.databend.ast.DatabendUnaryPrefixOperation;
2220

2321
public class DatabendExpectedValueVisitor {
2422

2523
protected final StringBuilder sb = new StringBuilder();
2624

27-
private void print(Node<DatabendExpression> expr) {
25+
private void print(DatabendExpression expr) {
2826
sb.append(DatabendToStringVisitor.asString(expr));
2927
sb.append(" -- ");
30-
sb.append(((DatabendExpression) expr).getExpectedValue());
28+
sb.append((expr).getExpectedValue());
3129
sb.append("\n");
3230
}
3331

34-
@SuppressWarnings("unchecked")
35-
public void visit(Node<DatabendExpression> expr) {
32+
public void visit(DatabendExpression expr) {
3633
assert expr != null;
37-
if (expr instanceof ColumnReferenceNode<?, ?>) {
38-
visit((ColumnReferenceNode<DatabendExpression, DatabendColumn>) expr);
39-
} else if (expr instanceof NewUnaryPostfixOperatorNode<?>) {
40-
visit((NewUnaryPostfixOperatorNode<DatabendExpression>) expr);
41-
} else if (expr instanceof NewUnaryPrefixOperatorNode<?>) {
42-
visit((NewUnaryPrefixOperatorNode<DatabendExpression>) expr);
43-
} else if (expr instanceof NewBinaryOperatorNode<?>) {
44-
visit((NewBinaryOperatorNode<DatabendExpression>) expr);
45-
} else if (expr instanceof TableReferenceNode<?, ?>) {
46-
visit((TableReferenceNode<DatabendExpression, ?>) expr);
47-
} else if (expr instanceof NewFunctionNode<?, ?>) {
48-
visit((NewFunctionNode<DatabendExpression, ?>) expr);
49-
} else if (expr instanceof NewBetweenOperatorNode<?>) {
50-
visit((NewBetweenOperatorNode<DatabendExpression>) expr);
51-
} else if (expr instanceof NewInOperatorNode<?>) {
52-
visit((NewInOperatorNode<DatabendExpression>) expr);
53-
} else if (expr instanceof NewOrderingTerm<?>) {
54-
visit((NewOrderingTerm<DatabendExpression>) expr);
55-
} else if (expr instanceof NewAliasNode<?>) {
56-
visit((NewAliasNode<DatabendExpression>) expr);
57-
} else if (expr instanceof NewPostfixTextNode<?>) {
58-
visit((NewPostfixTextNode<DatabendExpression>) expr);
34+
if (expr instanceof DatabendColumnReference) {
35+
visit((DatabendColumnReference) expr);
36+
} else if (expr instanceof DatabendUnaryPostfixOperation) {
37+
visit((DatabendUnaryPostfixOperation) expr);
38+
} else if (expr instanceof DatabendUnaryPrefixOperation) {
39+
visit((DatabendUnaryPrefixOperation) expr);
40+
} else if (expr instanceof DatabendBinaryOperation) {
41+
visit((DatabendBinaryOperation) expr);
42+
} else if (expr instanceof DatabendTableReference) {
43+
visit((DatabendTableReference) expr);
44+
} else if (expr instanceof DatabendFunctionOperation<?>) {
45+
visit((DatabendFunctionOperation<?>) expr);
46+
} else if (expr instanceof DatabendBetweenOperation) {
47+
visit((DatabendBetweenOperation) expr);
48+
} else if (expr instanceof DatabendInOperation) {
49+
visit((DatabendInOperation) expr);
50+
} else if (expr instanceof DatabendOrderByTerm) {
51+
visit((DatabendOrderByTerm) expr);
52+
} else if (expr instanceof DatabendAlias) {
53+
visit((DatabendAlias) expr);
54+
} else if (expr instanceof DatabendPostFixText) {
55+
visit((DatabendPostFixText) expr);
5956
} else if (expr instanceof DatabendConstant) {
6057
visit((DatabendConstant) expr);
6158
} else if (expr instanceof DatabendSelect) {
@@ -67,65 +64,65 @@ public void visit(Node<DatabendExpression> expr) {
6764
}
6865
}
6966

70-
public void visit(ColumnReferenceNode<DatabendExpression, DatabendColumn> c) {
67+
public void visit(DatabendColumnReference c) {
7168
print(c);
7269
}
7370

74-
public void visit(NewUnaryPostfixOperatorNode<DatabendExpression> op) {
71+
public void visit(DatabendUnaryPostfixOperation op) {
7572
print(op);
7673
visit(op.getExpr());
7774
}
7875

79-
public void visit(NewUnaryPrefixOperatorNode<DatabendExpression> op) {
76+
public void visit(DatabendUnaryPrefixOperation op) {
8077
print(op);
8178
visit(op.getExpr());
8279
}
8380

84-
public void visit(NewBinaryOperatorNode<DatabendExpression> op) {
81+
public void visit(DatabendBinaryOperation op) {
8582
print(op);
8683
visit(op.getLeft());
8784
visit(op.getRight());
8885
}
8986

90-
public void visit(TableReferenceNode<DatabendExpression, ?> t) {
87+
public void visit(DatabendTableReference t) {
9188
print(t);
9289
}
9390

94-
public void visit(NewFunctionNode<DatabendExpression, ?> fun) {
91+
public void visit(DatabendFunctionOperation<?> fun) {
9592
print(fun);
9693
visit(fun.getArgs());
9794
}
9895

99-
public void visit(List<Node<DatabendExpression>> expressions) {
100-
for (Node<DatabendExpression> expression : expressions) {
96+
public void visit(List<DatabendExpression> expressions) {
97+
for (DatabendExpression expression : expressions) {
10198
visit(expression);
10299
}
103100
}
104101

105-
public void visit(NewBetweenOperatorNode<DatabendExpression> op) {
102+
public void visit(DatabendBetweenOperation op) {
106103
print(op);
107104
visit(op.getLeft());
108105
visit(op.getMiddle());
109106
visit(op.getRight());
110107
}
111108

112-
public void visit(NewInOperatorNode<DatabendExpression> op) {
109+
public void visit(DatabendInOperation op) {
113110
print(op);
114111
visit(op.getLeft());
115112
visit(op.getRight());
116113
}
117114

118-
public void visit(NewOrderingTerm<DatabendExpression> op) {
115+
public void visit(DatabendOrderByTerm op) {
119116
print(op);
120117
visit(op.getExpr());
121118
}
122119

123-
public void visit(NewAliasNode<DatabendExpression> op) {
120+
public void visit(DatabendAlias op) {
124121
print(op);
125122
visit(op.getExpr());
126123
}
127124

128-
public void visit(NewPostfixTextNode<DatabendExpression> postFixText) {
125+
public void visit(DatabendPostFixText postFixText) {
129126
print(postFixText);
130127
visit(postFixText.getExpr());
131128
}
@@ -146,7 +143,7 @@ public String get() {
146143
return sb.toString();
147144
}
148145

149-
public static String asExpectedValues(Node<DatabendExpression> expr) {
146+
public static String asExpectedValues(DatabendExpression expr) {
150147
DatabendExpectedValueVisitor v = new DatabendExpectedValueVisitor();
151148
v.visit(expr);
152149
return v.get();

src/sqlancer/databend/DatabendExprToNode.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/sqlancer/databend/DatabendToStringVisitor.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package sqlancer.databend;
22

33
import sqlancer.common.ast.newast.NewToStringVisitor;
4-
import sqlancer.common.ast.newast.Node;
54
import sqlancer.databend.ast.DatabendConstant;
65
import sqlancer.databend.ast.DatabendExpression;
76
import sqlancer.databend.ast.DatabendJoin;
@@ -10,7 +9,7 @@
109
public class DatabendToStringVisitor extends NewToStringVisitor<DatabendExpression> {
1110

1211
@Override
13-
public void visitSpecific(Node<DatabendExpression> expr) {
12+
public void visitSpecific(DatabendExpression expr) {
1413
if (expr instanceof DatabendConstant) {
1514
visit((DatabendConstant) expr);
1615
} else if (expr instanceof DatabendSelect) {
@@ -91,7 +90,7 @@ private void visit(DatabendSelect select) {
9190
}
9291
}
9392

94-
public static String asString(Node<DatabendExpression> expr) {
93+
public static String asString(DatabendExpression expr) {
9594
DatabendToStringVisitor visitor = new DatabendToStringVisitor();
9695
visitor.visit(expr);
9796
return visitor.get();

src/sqlancer/databend/ast/DatabendAggregateOperation.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,12 @@
33
import java.util.List;
44

55
import sqlancer.Randomly;
6-
import sqlancer.common.ast.newast.NewFunctionNode;
7-
import sqlancer.databend.DatabendExprToNode;
86
import sqlancer.databend.DatabendSchema;
97

10-
public class DatabendAggregateOperation
11-
extends NewFunctionNode<DatabendExpression, DatabendAggregateOperation.DatabendAggregateFunction>
12-
implements DatabendExpression {
8+
public class DatabendAggregateOperation extends
9+
DatabendFunctionOperation<DatabendAggregateOperation.DatabendAggregateFunction> implements DatabendExpression {
1310
public DatabendAggregateOperation(List<DatabendExpression> args, DatabendAggregateFunction func) {
14-
super(DatabendExprToNode.casts(args), func);
11+
super(args, func);
1512
}
1613

1714
public enum DatabendAggregateFunction {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package sqlancer.databend.ast;
2+
3+
import sqlancer.common.ast.newast.NewAliasNode;
4+
5+
public class DatabendAlias extends NewAliasNode<DatabendExpression> implements DatabendExpression {
6+
public DatabendAlias(DatabendExpression expr, String text) {
7+
super(expr, text);
8+
}
9+
}

src/sqlancer/databend/ast/DatabendBetweenOperation.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
package sqlancer.databend.ast;
22

33
import sqlancer.common.ast.newast.NewBetweenOperatorNode;
4-
import sqlancer.databend.DatabendExprToNode;
54
import sqlancer.databend.DatabendSchema;
65

76
public class DatabendBetweenOperation extends NewBetweenOperatorNode<DatabendExpression> implements DatabendExpression {
87
public DatabendBetweenOperation(DatabendExpression left, DatabendExpression middle, DatabendExpression right,
98
boolean isTrue) {
10-
super(DatabendExprToNode.cast(left), DatabendExprToNode.cast(middle), DatabendExprToNode.cast(right), isTrue);
9+
super(left, middle, right, isTrue);
1110
}
1211

1312
public DatabendExpression getLeftExpr() {
14-
return (DatabendExpression) left;
13+
return left;
1514
}
1615

1716
public DatabendExpression getMiddleExpr() {
18-
return (DatabendExpression) middle;
17+
return middle;
1918
}
2019

2120
public DatabendExpression getRightExpr() {
22-
return (DatabendExpression) right;
21+
return right;
2322
}
2423

2524
@Override

src/sqlancer/databend/ast/DatabendBinaryArithmeticOperation.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44

55
import sqlancer.common.ast.BinaryOperatorNode;
66
import sqlancer.common.ast.newast.NewBinaryOperatorNode;
7-
import sqlancer.databend.DatabendExprToNode;
87
import sqlancer.databend.DatabendSchema.DatabendDataType;
98

109
public class DatabendBinaryArithmeticOperation extends NewBinaryOperatorNode<DatabendExpression>
1110
implements DatabendExpression {
1211

1312
public DatabendBinaryArithmeticOperation(DatabendExpression left, DatabendExpression right,
1413
BinaryOperatorNode.Operator op) {
15-
super(DatabendExprToNode.cast(left), DatabendExprToNode.cast(right), op);
14+
super(left, right, op);
1615
}
1716

1817
public enum DatabendBinaryArithmeticOperator implements BinaryOperatorNode.Operator {
@@ -72,11 +71,11 @@ public String getTextRepresentation() {
7271
}
7372

7473
public DatabendExpression getLeftExpr() {
75-
return (DatabendExpression) super.getLeft();
74+
return super.getLeft();
7675
}
7776

7877
public DatabendExpression getRightExpr() {
79-
return (DatabendExpression) super.getRight();
78+
return super.getRight();
8079
}
8180

8281
public DatabendBinaryArithmeticOperator getOp() {

src/sqlancer/databend/ast/DatabendBinaryComparisonOperation.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,22 @@
22

33
import sqlancer.common.ast.BinaryOperatorNode;
44
import sqlancer.common.ast.newast.NewBinaryOperatorNode;
5-
import sqlancer.databend.DatabendExprToNode;
65
import sqlancer.databend.DatabendSchema.DatabendDataType;
76

87
public class DatabendBinaryComparisonOperation extends NewBinaryOperatorNode<DatabendExpression>
98
implements DatabendExpression {
109

1110
public DatabendBinaryComparisonOperation(DatabendExpression left, DatabendExpression right,
1211
DatabendBinaryComparisonOperator op) {
13-
super(DatabendExprToNode.cast(left), DatabendExprToNode.cast(right), op);
12+
super(left, right, op);
1413
}
1514

1615
public DatabendExpression getLeftExpression() {
17-
return (DatabendExpression) super.getLeft();
16+
return super.getLeft();
1817
}
1918

2019
public DatabendExpression getRightExpression() {
21-
return (DatabendExpression) super.getRight();
20+
return super.getRight();
2221
}
2322

2423
public DatabendBinaryComparisonOperator getOp() {

src/sqlancer/databend/ast/DatabendBinaryLogicalOperation.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,22 @@
33
import sqlancer.Randomly;
44
import sqlancer.common.ast.BinaryOperatorNode;
55
import sqlancer.common.ast.newast.NewBinaryOperatorNode;
6-
import sqlancer.databend.DatabendExprToNode;
76
import sqlancer.databend.DatabendSchema.DatabendDataType;
87

98
public class DatabendBinaryLogicalOperation extends NewBinaryOperatorNode<DatabendExpression>
109
implements DatabendExpression {
1110

1211
public DatabendBinaryLogicalOperation(DatabendExpression left, DatabendExpression right,
1312
DatabendBinaryLogicalOperator op) {
14-
super(DatabendExprToNode.cast(left), DatabendExprToNode.cast(right), op);
13+
super(left, right, op);
1514
}
1615

1716
public DatabendExpression getLeftExpr() {
18-
return (DatabendExpression) super.getLeft();
17+
return super.getLeft();
1918
}
2019

2120
public DatabendExpression getRightExpr() {
22-
return (DatabendExpression) super.getRight();
21+
return super.getRight();
2322
}
2423

2524
public DatabendBinaryLogicalOperator getOp() {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package sqlancer.databend.ast;
2+
3+
import sqlancer.common.ast.BinaryOperatorNode;
4+
import sqlancer.common.ast.newast.NewBinaryOperatorNode;
5+
6+
public class DatabendBinaryOperation extends NewBinaryOperatorNode<DatabendExpression> implements DatabendExpression {
7+
public DatabendBinaryOperation(DatabendExpression left, DatabendExpression right,
8+
BinaryOperatorNode.Operator operator) {
9+
super(left, right, operator);
10+
}
11+
12+
}

0 commit comments

Comments
 (0)