Skip to content

Commit 7a5428d

Browse files
Merge branch 'master' of github.com:JSQLParser/JSqlParser into manticore
2 parents 9351514 + d33d61a commit 7a5428d

File tree

24 files changed

+2781
-58
lines changed

24 files changed

+2781
-58
lines changed

src/main/java/net/sf/jsqlparser/expression/ExpressionVisitor.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,14 @@ default void visit(JsonFunction jsonFunction) {
652652
this.visit(jsonFunction, null);
653653
}
654654

655+
default <S> T visit(JsonTableFunction jsonTableFunction, S context) {
656+
return visit((Function) jsonTableFunction, context);
657+
}
658+
659+
default void visit(JsonTableFunction jsonTableFunction) {
660+
this.visit(jsonTableFunction, null);
661+
}
662+
655663
<S> T visit(ConnectByRootOperator connectByRootOperator, S context);
656664

657665
default void visit(ConnectByRootOperator connectByRootOperator) {

src/main/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapter.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,12 +722,40 @@ public <S> T visit(JsonAggregateFunction jsonAggregateFunction, S context) {
722722
@Override
723723
public <S> T visit(JsonFunction jsonFunction, S context) {
724724
ArrayList<Expression> subExpressions = new ArrayList<>();
725+
for (JsonKeyValuePair keyValuePair : jsonFunction.getKeyValuePairs()) {
726+
if (keyValuePair.getKey() instanceof Expression) {
727+
subExpressions.add((Expression) keyValuePair.getKey());
728+
}
729+
if (keyValuePair.getValue() instanceof Expression) {
730+
subExpressions.add((Expression) keyValuePair.getValue());
731+
}
732+
}
725733
for (JsonFunctionExpression expr : jsonFunction.getExpressions()) {
726734
subExpressions.add(expr.getExpression());
727735
}
736+
if (jsonFunction.getInputExpression() != null) {
737+
subExpressions.add(jsonFunction.getInputExpression().getExpression());
738+
}
739+
if (jsonFunction.getJsonPathExpression() != null) {
740+
subExpressions.add(jsonFunction.getJsonPathExpression());
741+
}
742+
subExpressions.addAll(jsonFunction.getPassingExpressions());
743+
if (jsonFunction.getOnEmptyBehavior() != null
744+
&& jsonFunction.getOnEmptyBehavior().getExpression() != null) {
745+
subExpressions.add(jsonFunction.getOnEmptyBehavior().getExpression());
746+
}
747+
if (jsonFunction.getOnErrorBehavior() != null
748+
&& jsonFunction.getOnErrorBehavior().getExpression() != null) {
749+
subExpressions.add(jsonFunction.getOnErrorBehavior().getExpression());
750+
}
728751
return visitExpressions(jsonFunction, context, subExpressions);
729752
}
730753

754+
@Override
755+
public <S> T visit(JsonTableFunction jsonTableFunction, S context) {
756+
return visitExpressions(jsonTableFunction, context, jsonTableFunction.getAllExpressions());
757+
}
758+
731759
@Override
732760
public <S> T visit(ConnectByRootOperator connectByRootOperator, S context) {
733761
return connectByRootOperator.getColumn().accept(this, context);

0 commit comments

Comments
 (0)