Skip to content

Commit 493a803

Browse files
authored
[fix][common]Support 'BETWEEN AND' query condition parameter parsing CURRENT. #1972 (#1973)
1 parent b425c49 commit 493a803

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

common/src/main/java/com/tencent/supersonic/common/jsqlparser/FieldAndValueAcquireVisitor.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,7 @@
77
import net.sf.jsqlparser.expression.Function;
88
import net.sf.jsqlparser.expression.LongValue;
99
import net.sf.jsqlparser.expression.StringValue;
10-
import net.sf.jsqlparser.expression.operators.relational.ComparisonOperator;
11-
import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
12-
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
13-
import net.sf.jsqlparser.expression.operators.relational.GreaterThan;
14-
import net.sf.jsqlparser.expression.operators.relational.GreaterThanEquals;
15-
import net.sf.jsqlparser.expression.operators.relational.InExpression;
16-
import net.sf.jsqlparser.expression.operators.relational.LikeExpression;
17-
import net.sf.jsqlparser.expression.operators.relational.MinorThan;
18-
import net.sf.jsqlparser.expression.operators.relational.MinorThanEquals;
10+
import net.sf.jsqlparser.expression.operators.relational.*;
1911
import net.sf.jsqlparser.schema.Column;
2012
import org.apache.commons.collections.CollectionUtils;
2113

@@ -34,6 +26,29 @@ public FieldAndValueAcquireVisitor(Set<FieldExpression> fieldExpressions) {
3426
this.fieldExpressions = fieldExpressions;
3527
}
3628

29+
public void visit(Between between) {
30+
Expression leftExpression = between.getLeftExpression();
31+
String columnName = null;
32+
if (leftExpression instanceof Column) {
33+
Column column = (Column) leftExpression;
34+
columnName = column.getColumnName();
35+
}
36+
Expression betweenExpressionStart = between.getBetweenExpressionStart();
37+
Expression betweenExpressionEnd = between.getBetweenExpressionEnd();
38+
39+
FieldExpression fieldExpressionStart = new FieldExpression();
40+
fieldExpressionStart.setFieldName(columnName);
41+
fieldExpressionStart.setFieldValue(getFieldValue(betweenExpressionStart));
42+
fieldExpressionStart.setOperator(JsqlConstants.GREATER_THAN_EQUALS);
43+
fieldExpressions.add(fieldExpressionStart);
44+
45+
FieldExpression fieldExpressionEnd = new FieldExpression();
46+
fieldExpressionEnd.setFieldName(columnName);
47+
fieldExpressionEnd.setFieldValue(getFieldValue(betweenExpressionEnd));
48+
fieldExpressionEnd.setOperator(JsqlConstants.MINOR_THAN_EQUALS);
49+
fieldExpressions.add(fieldExpressionEnd);
50+
}
51+
3752
public void visit(LikeExpression expr) {
3853
Expression leftExpression = expr.getLeftExpression();
3954
Expression rightExpression = expr.getRightExpression();

0 commit comments

Comments
 (0)