Skip to content

Commit aed02df

Browse files
committed
[Feature][Transform] support boolean type for sql transform
1 parent cfad3e8 commit aed02df

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

seatunnel-transforms-v2/src/main/java/org/apache/seatunnel/transform/sql/zeta/ZetaSQLFunction.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@
5959
import net.sf.jsqlparser.expression.operators.arithmetic.Multiplication;
6060
import net.sf.jsqlparser.expression.operators.arithmetic.Subtraction;
6161
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
62-
import net.sf.jsqlparser.parser.Node;
6362
import net.sf.jsqlparser.schema.Column;
6463
import net.sf.jsqlparser.statement.select.LateralView;
6564

@@ -264,19 +263,18 @@ public Object computeForValue(Expression expression, Object[] inputFields) {
264263
if (expression instanceof Column) {
265264
Column columnExp = (Column) expression;
266265
String columnName = columnExp.getColumnName();
267-
Node node = columnExp.getASTNode().jjtGetParent();
268-
if (("true".equalsIgnoreCase(columnExp.getColumnName())
269-
|| "false".equalsIgnoreCase(columnExp.getColumnName()))
270-
&& ("CaseWhenExpression".equalsIgnoreCase(node.toString()))) {
271-
return Boolean.parseBoolean(columnExp.getColumnName());
272-
}
273266
int index = inputRowType.indexOf(columnName, false);
274267
if (index == -1
275268
&& columnName.startsWith(ZetaSQLEngine.ESCAPE_IDENTIFIER)
276269
&& columnName.endsWith(ZetaSQLEngine.ESCAPE_IDENTIFIER)) {
277270
columnName = columnName.substring(1, columnName.length() - 1);
278271
index = inputRowType.indexOf(columnName, false);
279272
}
273+
if (index == -1
274+
&& ("true".equalsIgnoreCase(columnName)
275+
|| "false".equalsIgnoreCase(columnName))) {
276+
return Boolean.parseBoolean(columnName);
277+
}
280278

281279
if (index != -1) {
282280
return inputFields[index];

seatunnel-transforms-v2/src/main/java/org/apache/seatunnel/transform/sql/zeta/ZetaSQLType.java

+5-8
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
import net.sf.jsqlparser.expression.operators.relational.IsNullExpression;
5757
import net.sf.jsqlparser.expression.operators.relational.LikeExpression;
5858
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
59-
import net.sf.jsqlparser.parser.Node;
6059
import net.sf.jsqlparser.schema.Column;
6160

6261
import java.util.ArrayList;
@@ -115,12 +114,6 @@ public SeaTunnelDataType<?> getExpressionType(Expression expression) {
115114
}
116115
if (expression instanceof Column) {
117116
Column columnExp = (Column) expression;
118-
Node node = columnExp.getASTNode().jjtGetParent();
119-
if (("true".equalsIgnoreCase(columnExp.getColumnName())
120-
|| "false".equalsIgnoreCase(columnExp.getColumnName()))
121-
&& ("CaseWhenExpression".equalsIgnoreCase(node.toString()))) {
122-
return BasicType.BOOLEAN_TYPE;
123-
}
124117
String columnName = columnExp.getColumnName();
125118
int index = inputRowType.indexOf(columnName, false);
126119
if (index == -1
@@ -129,7 +122,11 @@ public SeaTunnelDataType<?> getExpressionType(Expression expression) {
129122
columnName = columnName.substring(1, columnName.length() - 1);
130123
index = inputRowType.indexOf(columnName, false);
131124
}
132-
125+
if (index == -1
126+
&& ("true".equalsIgnoreCase(columnName)
127+
|| "false".equalsIgnoreCase(columnName))) {
128+
return BasicType.BOOLEAN_TYPE;
129+
}
133130
if (index != -1) {
134131
return inputRowType.getFieldType(index);
135132
} else {

0 commit comments

Comments
 (0)