Skip to content

Commit 435aff0

Browse files
committed
[Presto] Update expressions to match new AST
1 parent 2464a73 commit 435aff0

44 files changed

Lines changed: 478 additions & 354 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/sqlancer/presto/PrestoExpressionToNode.java

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

src/sqlancer/presto/PrestoToStringVisitor.java

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

33
import sqlancer.common.ast.newast.NewToStringVisitor;
4-
import sqlancer.common.ast.newast.Node;
54
import sqlancer.presto.ast.PrestoAtTimeZoneOperator;
65
import sqlancer.presto.ast.PrestoCastFunction;
76
import sqlancer.presto.ast.PrestoConstant;
@@ -14,14 +13,14 @@
1413

1514
public class PrestoToStringVisitor extends NewToStringVisitor<PrestoExpression> {
1615

17-
public static String asString(Node<PrestoExpression> expr) {
16+
public static String asString(PrestoExpression expr) {
1817
PrestoToStringVisitor visitor = new PrestoToStringVisitor();
1918
visitor.visit(expr);
2019
return visitor.get();
2120
}
2221

2322
@Override
24-
public void visitSpecific(Node<PrestoExpression> expr) {
23+
public void visitSpecific(PrestoExpression expr) {
2524
if (expr instanceof PrestoConstant) {
2625
visit((PrestoConstant) expr);
2726
} else if (expr instanceof PrestoSelect) {
@@ -44,15 +43,15 @@ public void visitSpecific(Node<PrestoExpression> expr) {
4443
}
4544

4645
private void visit(PrestoJoin join) {
47-
visit(join.getLeftTable());
46+
visit((PrestoExpression) join.getLeftTable());
4847
sb.append(" ");
4948
sb.append(join.getJoinType());
5049
sb.append(" ");
5150
if (join.getOuterType() != null) {
5251
sb.append(join.getOuterType());
5352
}
5453
sb.append(" JOIN ");
55-
visit(join.getRightTable());
54+
visit((PrestoExpression) join.getRightTable());
5655
if (join.getOnCondition() != null) {
5756
sb.append(" ON ");
5857
visit(join.getOnCondition());

src/sqlancer/presto/ast/PrestoAggregateFunction.java

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.util.stream.Stream;
99

1010
import sqlancer.Randomly;
11-
import sqlancer.common.ast.newast.Node;
1211
import sqlancer.presto.PrestoSchema;
1312
import sqlancer.presto.PrestoSchema.PrestoCompositeDataType;
1413
import sqlancer.presto.PrestoSchema.PrestoDataType;
@@ -37,7 +36,7 @@ public PrestoDataType getReturnType() {
3736
}
3837

3938
@Override
40-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
39+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
4140
PrestoCompositeDataType returnType, boolean orderable) {
4241
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
4342
() -> PrestoCompositeDataType.fromDataType(getReturnType()));
@@ -131,7 +130,7 @@ public PrestoDataType getReturnType() {
131130
}
132131

133132
@Override
134-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
133+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
135134
PrestoCompositeDataType returnType, boolean orderable) {
136135
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
137136
() -> PrestoCompositeDataType.fromDataType(getReturnType()));
@@ -165,7 +164,7 @@ public PrestoDataType getReturnType() {
165164
}
166165

167166
@Override
168-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
167+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
169168
PrestoCompositeDataType returnType, boolean orderable) {
170169
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
171170
() -> PrestoCompositeDataType.fromDataType(getReturnType()));
@@ -211,7 +210,7 @@ public PrestoCompositeDataType getCompositeReturnType() {
211210
}
212211

213212
@Override
214-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
213+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
215214
PrestoCompositeDataType returnType, boolean orderable) {
216215
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
217216
() -> PrestoCompositeDataType.fromDataType(getReturnType()));
@@ -248,7 +247,7 @@ public PrestoDataType getReturnType() {
248247
}
249248

250249
@Override
251-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
250+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
252251
PrestoCompositeDataType returnType, boolean orderable) {
253252
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
254253
() -> PrestoCompositeDataType.fromDataType(getReturnType()));
@@ -338,7 +337,7 @@ public PrestoDataType getReturnType() {
338337
}
339338

340339
@Override
341-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
340+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
342341
PrestoCompositeDataType returnType, boolean orderable) {
343342
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
344343
() -> PrestoCompositeDataType.fromDataType(getReturnType()));
@@ -427,9 +426,9 @@ public PrestoDataType[] getArgumentTypes(PrestoCompositeDataType returnType) {
427426
}
428427

429428
@Override
430-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
429+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
431430
PrestoDataType[] argumentTypes2, PrestoCompositeDataType returnType2) {
432-
List<Node<PrestoExpression>> arguments = new ArrayList<>();
431+
List<PrestoExpression> arguments = new ArrayList<>();
433432
arguments.add(gen.generateExpression(returnType2, depth + 1));
434433
arguments.add(new PrestoConstant.PrestoFloatConstant(Randomly.getPercentage()));
435434
return arguments;
@@ -441,7 +440,7 @@ public PrestoDataType getReturnType() {
441440
}
442441

443442
@Override
444-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
443+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
445444
PrestoCompositeDataType returnType, boolean orderable) {
446445
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
447446
() -> PrestoCompositeDataType.fromDataType(getReturnType()));
@@ -467,9 +466,9 @@ public PrestoDataType[] getArgumentTypes(PrestoCompositeDataType returnType) {
467466
}
468467

469468
@Override
470-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
469+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
471470
PrestoDataType[] argumentTypes2, PrestoCompositeDataType returnType2) {
472-
List<Node<PrestoExpression>> arguments = new ArrayList<>();
471+
List<PrestoExpression> arguments = new ArrayList<>();
473472
arguments.add(gen.generateExpression(returnType2, depth + 1));
474473
arguments.add(new PrestoConstant.PrestoFloatConstant(Randomly.getPercentage()));
475474
if (Randomly.getBooleanWithRatherLowProbability()) {
@@ -486,7 +485,7 @@ public PrestoDataType getReturnType() {
486485
}
487486

488487
@Override
489-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
488+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
490489
PrestoCompositeDataType returnType, boolean orderable) {
491490
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
492491
() -> PrestoCompositeDataType
@@ -523,9 +522,9 @@ public PrestoDataType[] getArgumentTypes(PrestoCompositeDataType returnType) {
523522
}
524523

525524
@Override
526-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
525+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
527526
PrestoDataType[] argumentTypes2, PrestoCompositeDataType returnType2) {
528-
List<Node<PrestoExpression>> arguments = new ArrayList<>();
527+
List<PrestoExpression> arguments = new ArrayList<>();
529528
arguments.add(gen.generateExpression(returnType2, depth + 1));
530529
arguments.add(new PrestoConstant.PrestoFloatConstant(Randomly.getPercentage()));
531530
if (Randomly.getBooleanWithRatherLowProbability()) {
@@ -542,7 +541,7 @@ public PrestoDataType getReturnType() {
542541
}
543542

544543
@Override
545-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
544+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
546545
PrestoCompositeDataType returnType, boolean orderable) {
547546
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
548547
() -> PrestoCompositeDataType
@@ -566,9 +565,9 @@ public PrestoDataType[] getArgumentTypes(PrestoCompositeDataType returnType) {
566565
}
567566

568567
@Override
569-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
568+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
570569
PrestoDataType[] argumentTypes2, PrestoCompositeDataType returnType2) {
571-
List<Node<PrestoExpression>> arguments = new ArrayList<>();
570+
List<PrestoExpression> arguments = new ArrayList<>();
572571
arguments.add(gen.generateExpression(returnType2, depth + 1));
573572
if (Randomly.getBooleanWithRatherLowProbability()) {
574573
arguments.add(new PrestoConstant.PrestoIntConstant(1));
@@ -590,7 +589,7 @@ public PrestoDataType getReturnType() {
590589
}
591590

592591
@Override
593-
public List<Node<PrestoExpression>> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
592+
public List<PrestoExpression> getArgumentsForReturnType(PrestoTypedExpressionGenerator gen, int depth,
594593
PrestoCompositeDataType returnType, boolean orderable) {
595594
PrestoCompositeDataType returnTypeLocal = Objects.requireNonNullElseGet(returnType,
596595
() -> PrestoCompositeDataType
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package sqlancer.presto.ast;
2+
3+
import sqlancer.common.ast.newast.NewAliasNode;
4+
5+
public class PrestoAlias extends NewAliasNode<PrestoExpression> implements PrestoExpression {
6+
public PrestoAlias(PrestoExpression expr, String alias) {
7+
super(expr, alias);
8+
}
9+
}
Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
package sqlancer.presto.ast;
22

3-
import sqlancer.common.ast.newast.Node;
3+
public class PrestoAtTimeZoneOperator implements PrestoExpression {
44

5-
public class PrestoAtTimeZoneOperator implements Node<PrestoExpression> {
5+
private final PrestoExpression expr;
6+
private final PrestoExpression timeZone;
67

7-
private final Node<PrestoExpression> expr;
8-
private final Node<PrestoExpression> timeZone;
9-
10-
public PrestoAtTimeZoneOperator(Node<PrestoExpression> expr, Node<PrestoExpression> timeZone) {
8+
public PrestoAtTimeZoneOperator(PrestoExpression expr, PrestoExpression timeZone) {
119
this.expr = expr;
1210
this.timeZone = timeZone;
1311
}
1412

15-
public Node<PrestoExpression> getExpr() {
13+
public PrestoExpression getExpr() {
1614
return expr;
1715
}
1816

19-
public Node<PrestoExpression> getTimeZone() {
17+
public PrestoExpression getTimeZone() {
2018
return timeZone;
2119
}
2220
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package sqlancer.presto.ast;
2+
3+
import sqlancer.common.ast.newast.NewBetweenOperatorNode;
4+
5+
public class PrestoBetweenOperation extends NewBetweenOperatorNode<PrestoExpression> implements PrestoExpression {
6+
public PrestoBetweenOperation(PrestoExpression left, PrestoExpression middle, PrestoExpression right,
7+
boolean isTrue) {
8+
super(left, middle, right, isTrue);
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package sqlancer.presto.ast;
2+
3+
import sqlancer.common.ast.BinaryOperatorNode;
4+
import sqlancer.common.ast.newast.NewBinaryOperatorNode;
5+
6+
public class PrestoBinaryOperation extends NewBinaryOperatorNode<PrestoExpression> implements PrestoExpression {
7+
public PrestoBinaryOperation(PrestoExpression left, PrestoExpression right, BinaryOperatorNode.Operator op) {
8+
super(left, right, op);
9+
}
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package sqlancer.presto.ast;
2+
3+
import java.util.List;
4+
5+
import sqlancer.common.ast.newast.NewCaseOperatorNode;
6+
7+
public class PrestoCaseOperation extends NewCaseOperatorNode<PrestoExpression> implements PrestoExpression {
8+
public PrestoCaseOperation(PrestoExpression switchCondition, List<PrestoExpression> conditions,
9+
List<PrestoExpression> expressions, PrestoExpression elseExpr) {
10+
super(switchCondition, conditions, expressions, elseExpr);
11+
}
12+
}

src/sqlancer/presto/ast/PrestoCastFunction.java

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

3-
import sqlancer.common.ast.newast.Node;
43
import sqlancer.presto.PrestoSchema;
54

6-
public class PrestoCastFunction implements Node<PrestoExpression> {
5+
public class PrestoCastFunction implements PrestoExpression {
76

8-
private final Node<PrestoExpression> expr;
7+
private final PrestoExpression expr;
98
private final PrestoSchema.PrestoCompositeDataType type;
109

11-
public PrestoCastFunction(Node<PrestoExpression> expr, PrestoSchema.PrestoCompositeDataType type) {
10+
public PrestoCastFunction(PrestoExpression expr, PrestoSchema.PrestoCompositeDataType type) {
1211
this.expr = expr;
1312
this.type = type;
1413
}
1514

16-
public Node<PrestoExpression> getExpr() {
15+
public PrestoExpression getExpr() {
1716
return expr;
1817
}
1918

src/sqlancer/presto/ast/PrestoColumnReference.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import sqlancer.common.ast.newast.ColumnReferenceNode;
44
import sqlancer.presto.PrestoSchema;
55

6-
public class PrestoColumnReference extends ColumnReferenceNode<PrestoExpression, PrestoSchema.PrestoColumn> {
6+
public class PrestoColumnReference extends ColumnReferenceNode<PrestoExpression, PrestoSchema.PrestoColumn>
7+
implements PrestoExpression {
78

89
public PrestoColumnReference(PrestoSchema.PrestoColumn column) {
910
super(column);

0 commit comments

Comments
 (0)