Skip to content

Commit 8957cd8

Browse files
committed
Reuse more code in TiDB
1 parent be37723 commit 8957cd8

File tree

6 files changed

+75
-76
lines changed

6 files changed

+75
-76
lines changed
Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package sqlancer.tidb.ast;
22

33
import sqlancer.Randomly;
4-
import sqlancer.ast.BinaryNode;
4+
import sqlancer.ast.BinaryOperatorNode;
5+
import sqlancer.ast.BinaryOperatorNode.Operator;
6+
import sqlancer.tidb.ast.TiDBBinaryArithmeticOperation.TiDBBinaryArithmeticOperator;
57

8+
public class TiDBBinaryArithmeticOperation extends BinaryOperatorNode<TiDBExpression, TiDBBinaryArithmeticOperator>
9+
implements TiDBExpression {
610

7-
public class TiDBBinaryArithmeticOperation extends BinaryNode<TiDBExpression> implements TiDBExpression {
8-
9-
private final TiDBBinaryArithmeticOperator op;
10-
11-
public static enum TiDBBinaryArithmeticOperator {
12-
ADD("+"), //
11+
public static enum TiDBBinaryArithmeticOperator implements Operator {
12+
ADD("+"), //
1313
MINUS("-"), //
1414
MULT("*"), //
1515
DIV("/"), //
@@ -25,16 +25,15 @@ public static enum TiDBBinaryArithmeticOperator {
2525
public static TiDBBinaryArithmeticOperator getRandom() {
2626
return Randomly.fromOptions(values());
2727
}
28-
}
2928

30-
public TiDBBinaryArithmeticOperation(TiDBExpression left, TiDBExpression right, TiDBBinaryArithmeticOperator op) {
31-
super(left, right);
32-
this.op = op;
29+
@Override
30+
public String getTextRepresentation() {
31+
return textRepresentation;
32+
}
3333
}
3434

35-
@Override
36-
public String getOperatorRepresentation() {
37-
return op.textRepresentation;
35+
public TiDBBinaryArithmeticOperation(TiDBExpression left, TiDBExpression right, TiDBBinaryArithmeticOperator op) {
36+
super(left, right, op);
3837
}
3938

4039
}
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package sqlancer.tidb.ast;
22

33
import sqlancer.Randomly;
4-
import sqlancer.ast.BinaryNode;
4+
import sqlancer.ast.BinaryOperatorNode;
5+
import sqlancer.ast.BinaryOperatorNode.Operator;
6+
import sqlancer.tidb.ast.TiDBBinaryComparisonOperation.TiDBComparisonOperator;
57

6-
public class TiDBBinaryComparisonOperation extends BinaryNode<TiDBExpression> implements TiDBExpression {
8+
public class TiDBBinaryComparisonOperation extends BinaryOperatorNode<TiDBExpression, TiDBComparisonOperator>
9+
implements TiDBExpression {
710

8-
public enum TiDBComparisonOperator {
11+
public enum TiDBComparisonOperator implements Operator {
912
EQUALS("="), //
1013
GREATER(">"), //
1114
GREATER_EQUALS(">="), //
@@ -24,18 +27,15 @@ public static TiDBComparisonOperator getRandom() {
2427
return Randomly.fromOptions(TiDBComparisonOperator.values());
2528
}
2629

27-
}
28-
29-
private final TiDBComparisonOperator op;
30+
@Override
31+
public String getTextRepresentation() {
32+
return textRepr;
33+
}
3034

31-
public TiDBBinaryComparisonOperation(TiDBExpression left, TiDBExpression right, TiDBComparisonOperator op) {
32-
super(left, right);
33-
this.op = op;
3435
}
3536

36-
@Override
37-
public String getOperatorRepresentation() {
38-
return op.textRepr;
37+
public TiDBBinaryComparisonOperation(TiDBExpression left, TiDBExpression right, TiDBComparisonOperator op) {
38+
super(left, right, op);
3939
}
4040

4141
}
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package sqlancer.tidb.ast;
22

33
import sqlancer.Randomly;
4-
import sqlancer.ast.BinaryNode;
4+
import sqlancer.ast.BinaryOperatorNode;
5+
import sqlancer.ast.BinaryOperatorNode.Operator;
6+
import sqlancer.tidb.ast.TiDBBinaryLogicalOperation.TiDBBinaryLogicalOperator;
57

6-
public class TiDBBinaryLogicalOperation extends BinaryNode<TiDBExpression> implements TiDBExpression {
8+
public class TiDBBinaryLogicalOperation extends BinaryOperatorNode<TiDBExpression, TiDBBinaryLogicalOperator>
9+
implements TiDBExpression {
710

8-
private final TiDBBinaryLogicalOperator op;
9-
10-
public static enum TiDBBinaryLogicalOperator {
11+
public static enum TiDBBinaryLogicalOperator implements Operator {
1112
AND("&"), //
1213
OR("|"), //
1314
XOR("^"), //
@@ -23,16 +24,15 @@ public static enum TiDBBinaryLogicalOperator {
2324
public static TiDBBinaryLogicalOperator getRandom() {
2425
return Randomly.fromOptions(values());
2526
}
26-
}
2727

28-
public TiDBBinaryLogicalOperation(TiDBExpression left, TiDBExpression right, TiDBBinaryLogicalOperator op) {
29-
super(left, right);
30-
this.op = op;
28+
@Override
29+
public String getTextRepresentation() {
30+
return textRepresentation;
31+
}
3132
}
3233

33-
@Override
34-
public String getOperatorRepresentation() {
35-
return op.textRepresentation;
34+
public TiDBBinaryLogicalOperation(TiDBExpression left, TiDBExpression right, TiDBBinaryLogicalOperator op) {
35+
super(left, right, op);
3636
}
3737

3838
}
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package sqlancer.tidb.ast;
22

33
import sqlancer.Randomly;
4-
import sqlancer.ast.BinaryNode;
4+
import sqlancer.ast.BinaryOperatorNode;
5+
import sqlancer.ast.BinaryOperatorNode.Operator;
6+
import sqlancer.tidb.ast.TiDBRegexOperation.TiDBRegexOperator;
57

6-
public class TiDBRegexOperation extends BinaryNode<TiDBExpression> implements TiDBExpression {
8+
public class TiDBRegexOperation extends BinaryOperatorNode<TiDBExpression, TiDBRegexOperator>
9+
implements TiDBExpression {
710

8-
public enum TiDBRegexOperator {
11+
public enum TiDBRegexOperator implements Operator {
912
LIKE("LIKE"), //
1013
NOT_LIKE("NOT LIKE"), //
1114
ILIKE("REGEXP"), //
@@ -21,18 +24,15 @@ public static TiDBRegexOperator getRandom() {
2124
return Randomly.fromOptions(values());
2225
}
2326

24-
}
25-
26-
private final TiDBRegexOperator op;
27+
@Override
28+
public String getTextRepresentation() {
29+
return textRepr;
30+
}
2731

28-
public TiDBRegexOperation(TiDBExpression left, TiDBExpression right, TiDBRegexOperator op) {
29-
super(left, right);
30-
this.op = op;
3132
}
3233

33-
@Override
34-
public String getOperatorRepresentation() {
35-
return op.textRepr;
34+
public TiDBRegexOperation(TiDBExpression left, TiDBExpression right, TiDBRegexOperator op) {
35+
super(left, right, op);
3636
}
3737

3838
}

src/sqlancer/tidb/ast/TiDBUnaryPostfixOperation.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
package sqlancer.tidb.ast;
22

33
import sqlancer.Randomly;
4-
import sqlancer.ast.UnaryNode;
4+
import sqlancer.ast.BinaryOperatorNode.Operator;
5+
import sqlancer.ast.UnaryOperatorNode;
6+
import sqlancer.tidb.ast.TiDBUnaryPostfixOperation.TiDBUnaryPostfixOperator;
57

6-
public class TiDBUnaryPostfixOperation extends UnaryNode<TiDBExpression> implements TiDBExpression {
8+
public class TiDBUnaryPostfixOperation extends UnaryOperatorNode<TiDBExpression, TiDBUnaryPostfixOperator>
9+
implements TiDBExpression {
710

8-
private final TiDBUnaryPostfixOperator op;
9-
10-
public static enum TiDBUnaryPostfixOperator {
11+
public static enum TiDBUnaryPostfixOperator implements Operator {
1112
IS_NULL("IS NULL"), //
1213
IS_NOT_NULL("IS NOT NULL"); //
13-
14+
1415
private String s;
15-
16+
1617
private TiDBUnaryPostfixOperator(String s) {
1718
this.s = s;
1819
}
19-
20+
2021
public static TiDBUnaryPostfixOperator getRandom() {
2122
return Randomly.fromOptions(values());
2223
}
23-
}
2424

25-
public TiDBUnaryPostfixOperation(TiDBExpression expr, TiDBUnaryPostfixOperator op) {
26-
super(expr);
27-
this.op = op;
25+
@Override
26+
public String getTextRepresentation() {
27+
return s;
28+
}
2829
}
2930

30-
@Override
31-
public String getOperatorRepresentation() {
32-
return op.s;
31+
public TiDBUnaryPostfixOperation(TiDBExpression expr, TiDBUnaryPostfixOperator op) {
32+
super(expr, op);
3333
}
3434

3535
@Override

src/sqlancer/tidb/ast/TiDBUnaryPrefixOperation.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package sqlancer.tidb.ast;
22

33
import sqlancer.Randomly;
4-
import sqlancer.ast.UnaryNode;
4+
import sqlancer.ast.BinaryOperatorNode.Operator;
5+
import sqlancer.ast.UnaryOperatorNode;
6+
import sqlancer.tidb.ast.TiDBUnaryPrefixOperation.TiDBUnaryPrefixOperator;
57

6-
public class TiDBUnaryPrefixOperation extends UnaryNode<TiDBExpression> implements TiDBExpression {
8+
public class TiDBUnaryPrefixOperation extends UnaryOperatorNode<TiDBExpression, TiDBUnaryPrefixOperator> implements TiDBExpression {
79

8-
private final TiDBUnaryPrefixOperator op;
9-
10-
public static enum TiDBUnaryPrefixOperator {
10+
public static enum TiDBUnaryPrefixOperator implements Operator {
1111
NOT("NOT"), //
1212
INVERSION("~"), //
1313
PLUS("+"), //
@@ -23,17 +23,17 @@ private TiDBUnaryPrefixOperator(String s) {
2323
public static TiDBUnaryPrefixOperator getRandom() {
2424
return Randomly.fromOptions(values());
2525
}
26+
27+
@Override
28+
public String getTextRepresentation() {
29+
return s;
30+
}
2631
}
2732

2833
public TiDBUnaryPrefixOperation(TiDBExpression expr, TiDBUnaryPrefixOperator op) {
29-
super(expr);
30-
this.op = op;
34+
super(expr, op);
3135
}
3236

33-
@Override
34-
public String getOperatorRepresentation() {
35-
return op.s;
36-
}
3737

3838
@Override
3939
public OperatorKind getOperatorKind() {

0 commit comments

Comments
 (0)