(improvement)(chat) Modify getFilterExpression to support the datediff function. (#576)

This commit is contained in:
lexluo09
2023-12-27 21:20:05 +08:00
committed by GitHub
parent 6c8ebdfe1a
commit f788249b1a
3 changed files with 15 additions and 1 deletions

View File

@@ -144,7 +144,10 @@ public class FieldAndValueAcquireVisitor extends ExpressionVisitorAdapter {
private Column getColumn(Function leftExpressionFunction) {
List<Expression> leftExpressions = leftExpressionFunction.getParameters().getExpressions();
if (CollectionUtils.isEmpty(leftExpressions) || leftExpressions.size() < 1) {
if (CollectionUtils.isEmpty(leftExpressions)) {
return null;
}
if (!(leftExpressions.get(0) instanceof Column)) {
return null;
}
return (Column) leftExpressions.get(0);

View File

@@ -34,6 +34,7 @@ import net.sf.jsqlparser.statement.select.SelectItem;
import net.sf.jsqlparser.statement.select.SelectVisitorAdapter;
import net.sf.jsqlparser.statement.select.SubSelect;
import net.sf.jsqlparser.statement.select.SetOperationList;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.springframework.util.CollectionUtils;
@@ -59,6 +60,9 @@ public class SqlParserSelectHelper {
having.accept(new FieldAndValueAcquireVisitor(result));
}
}
result = result.stream()
.filter(fieldExpression -> StringUtils.isNotBlank(fieldExpression.getFieldName()))
.collect(Collectors.toSet());
return new ArrayList<>(result);
}