|
9 | 9 | */ |
10 | 10 | package net.sf.jsqlparser.util; |
11 | 11 |
|
12 | | -import net.sf.jsqlparser.statement.create.accessmethod.CreateAccessMethod; |
13 | | - |
14 | | -import net.sf.jsqlparser.statement.create.fdw.CreateForeignDataWrapper; |
15 | | -import net.sf.jsqlparser.statement.alter.AlterForeignDataWrapper; |
16 | | -import net.sf.jsqlparser.statement.create.server.CreateServer; |
17 | | -import net.sf.jsqlparser.statement.alter.AlterServer; |
18 | | -import net.sf.jsqlparser.statement.create.usermapping.CreateUserMapping; |
19 | | -import net.sf.jsqlparser.statement.alter.AlterUserMapping; |
20 | | -import net.sf.jsqlparser.statement.create.textsearch.CreateTextSearchConfiguration; |
21 | | -import net.sf.jsqlparser.statement.alter.AlterTextSearchConfiguration; |
22 | | -import net.sf.jsqlparser.statement.create.rule.CreateRule; |
23 | | -import net.sf.jsqlparser.statement.notify.NotifyStatement; |
24 | | -import net.sf.jsqlparser.statement.create.collation.CreateCollation; |
25 | | -import net.sf.jsqlparser.statement.alter.AlterCollation; |
26 | | -import net.sf.jsqlparser.statement.alter.AlterPolicy; |
27 | | -import net.sf.jsqlparser.statement.drop.DropPolicy; |
28 | | -import net.sf.jsqlparser.statement.create.statistics.CreateStatistics; |
29 | | -import net.sf.jsqlparser.statement.alter.AlterStatistics; |
30 | | -import net.sf.jsqlparser.statement.alter.AlterRelation; |
31 | | -import net.sf.jsqlparser.statement.alter.AlterTablespaceMove; |
32 | | -import net.sf.jsqlparser.statement.alter.database.AlterDatabase; |
33 | | -import net.sf.jsqlparser.statement.alter.schema.AlterSchema; |
34 | | -import net.sf.jsqlparser.statement.select.MatchRecognize; |
35 | | -import net.sf.jsqlparser.expression.RowPatternFunction; |
36 | | - |
37 | | -import net.sf.jsqlparser.expression.AliasedExpression; |
38 | | - |
39 | | -import net.sf.jsqlparser.statement.oracle.OracleBlock; |
40 | | -import net.sf.jsqlparser.statement.oracle.OracleAssignment; |
41 | | -import net.sf.jsqlparser.statement.oracle.OracleNullStatement; |
42 | | - |
43 | | -import net.sf.jsqlparser.statement.role.CreateRole; |
44 | | -import net.sf.jsqlparser.statement.role.AlterRole; |
45 | | -import net.sf.jsqlparser.statement.grant.Revoke; |
46 | | -import net.sf.jsqlparser.statement.grant.AlterDefaultPrivileges; |
47 | | -import net.sf.jsqlparser.statement.create.type.CreateType; |
48 | | -import net.sf.jsqlparser.statement.alter.AlterType; |
49 | | -import net.sf.jsqlparser.statement.create.domain.CreateDomain; |
50 | | -import net.sf.jsqlparser.statement.alter.AlterDomain; |
51 | | -import net.sf.jsqlparser.statement.create.extension.CreateExtension; |
52 | | -import net.sf.jsqlparser.statement.alter.AlterExtension; |
53 | | -import net.sf.jsqlparser.statement.create.publication.CreatePublication; |
54 | | -import net.sf.jsqlparser.statement.alter.AlterPublication; |
55 | | -import net.sf.jsqlparser.statement.create.subscription.CreateSubscription; |
56 | | -import net.sf.jsqlparser.statement.alter.AlterSubscription; |
57 | | - |
58 | 12 | import java.util.ArrayList; |
59 | 13 | import java.util.HashSet; |
60 | 14 | import java.util.List; |
61 | 15 | import java.util.Map; |
62 | 16 | import java.util.Set; |
63 | 17 | import net.sf.jsqlparser.JSQLParserException; |
64 | 18 | import net.sf.jsqlparser.expression.*; |
| 19 | +import net.sf.jsqlparser.expression.AliasedExpression; |
| 20 | +import net.sf.jsqlparser.expression.RowPatternFunction; |
65 | 21 | import net.sf.jsqlparser.expression.operators.arithmetic.Addition; |
66 | 22 | import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseAnd; |
67 | 23 | import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseLeftShift; |
|
95 | 51 | import net.sf.jsqlparser.expression.operators.relational.Intersects; |
96 | 52 | import net.sf.jsqlparser.expression.operators.relational.IsBooleanExpression; |
97 | 53 | import net.sf.jsqlparser.expression.operators.relational.IsDistinctExpression; |
| 54 | +import net.sf.jsqlparser.expression.operators.relational.IsJsonExpression; |
98 | 55 | import net.sf.jsqlparser.expression.operators.relational.IsNullExpression; |
99 | 56 | import net.sf.jsqlparser.expression.operators.relational.IsUnknownExpression; |
100 | | -import net.sf.jsqlparser.expression.operators.relational.IsJsonExpression; |
101 | 57 | import net.sf.jsqlparser.expression.operators.relational.JsonOperator; |
102 | 58 | import net.sf.jsqlparser.expression.operators.relational.LikeExpression; |
103 | 59 | import net.sf.jsqlparser.expression.operators.relational.Matches; |
|
114 | 70 | import net.sf.jsqlparser.parser.CCJSqlParserUtil; |
115 | 71 | import net.sf.jsqlparser.schema.Column; |
116 | 72 | import net.sf.jsqlparser.schema.Table; |
| 73 | +import net.sf.jsqlparser.statement.AssertStatement; |
| 74 | +import net.sf.jsqlparser.statement.AttachStatement; |
117 | 75 | import net.sf.jsqlparser.statement.Block; |
118 | 76 | import net.sf.jsqlparser.statement.Commit; |
119 | | -import net.sf.jsqlparser.statement.StartTransaction; |
120 | | -import net.sf.jsqlparser.statement.ReleaseSavepointStatement; |
| 77 | +import net.sf.jsqlparser.statement.ConnectStatement; |
| 78 | +import net.sf.jsqlparser.statement.CopyStatement; |
121 | 79 | import net.sf.jsqlparser.statement.CreateFunctionalStatement; |
| 80 | +import net.sf.jsqlparser.statement.DeallocateStatement; |
122 | 81 | import net.sf.jsqlparser.statement.DeclareStatement; |
123 | 82 | import net.sf.jsqlparser.statement.DescribeStatement; |
| 83 | +import net.sf.jsqlparser.statement.DetachStatement; |
| 84 | +import net.sf.jsqlparser.statement.DisconnectStatement; |
124 | 85 | import net.sf.jsqlparser.statement.DoStatement; |
125 | 86 | import net.sf.jsqlparser.statement.ExplainStatement; |
| 87 | +import net.sf.jsqlparser.statement.ExtensionStatement; |
126 | 88 | import net.sf.jsqlparser.statement.IfElseStatement; |
127 | 89 | import net.sf.jsqlparser.statement.OutputClause; |
| 90 | +import net.sf.jsqlparser.statement.PragmaStatement; |
| 91 | +import net.sf.jsqlparser.statement.PrepareStatement; |
128 | 92 | import net.sf.jsqlparser.statement.PurgeObjectType; |
129 | 93 | import net.sf.jsqlparser.statement.PurgeStatement; |
| 94 | +import net.sf.jsqlparser.statement.ReleaseSavepointStatement; |
130 | 95 | import net.sf.jsqlparser.statement.ResetStatement; |
131 | 96 | import net.sf.jsqlparser.statement.ReturningClause; |
132 | 97 | import net.sf.jsqlparser.statement.RollbackStatement; |
133 | 98 | import net.sf.jsqlparser.statement.SavepointStatement; |
134 | 99 | import net.sf.jsqlparser.statement.SessionStatement; |
| 100 | +import net.sf.jsqlparser.statement.SetIdentityInsertStatement; |
135 | 101 | import net.sf.jsqlparser.statement.SetStatement; |
136 | 102 | import net.sf.jsqlparser.statement.ShowColumnsStatement; |
137 | 103 | import net.sf.jsqlparser.statement.ShowStatement; |
| 104 | +import net.sf.jsqlparser.statement.StartTransaction; |
138 | 105 | import net.sf.jsqlparser.statement.Statement; |
139 | 106 | import net.sf.jsqlparser.statement.StatementVisitor; |
140 | 107 | import net.sf.jsqlparser.statement.Statements; |
141 | 108 | import net.sf.jsqlparser.statement.UnsupportedStatement; |
142 | 109 | import net.sf.jsqlparser.statement.UseStatement; |
143 | | -import net.sf.jsqlparser.statement.SetIdentityInsertStatement; |
144 | 110 | import net.sf.jsqlparser.statement.alter.Alter; |
| 111 | +import net.sf.jsqlparser.statement.alter.AlterCollation; |
| 112 | +import net.sf.jsqlparser.statement.alter.AlterDomain; |
| 113 | +import net.sf.jsqlparser.statement.alter.AlterExtension; |
| 114 | +import net.sf.jsqlparser.statement.alter.AlterForeignDataWrapper; |
| 115 | +import net.sf.jsqlparser.statement.alter.AlterPolicy; |
| 116 | +import net.sf.jsqlparser.statement.alter.AlterPublication; |
| 117 | +import net.sf.jsqlparser.statement.alter.AlterRelation; |
| 118 | +import net.sf.jsqlparser.statement.alter.AlterServer; |
145 | 119 | import net.sf.jsqlparser.statement.alter.AlterSession; |
| 120 | +import net.sf.jsqlparser.statement.alter.AlterStatistics; |
| 121 | +import net.sf.jsqlparser.statement.alter.AlterSubscription; |
146 | 122 | import net.sf.jsqlparser.statement.alter.AlterSystemStatement; |
| 123 | +import net.sf.jsqlparser.statement.alter.AlterTablespaceMove; |
| 124 | +import net.sf.jsqlparser.statement.alter.AlterTextSearchConfiguration; |
| 125 | +import net.sf.jsqlparser.statement.alter.AlterType; |
| 126 | +import net.sf.jsqlparser.statement.alter.AlterUserMapping; |
147 | 127 | import net.sf.jsqlparser.statement.alter.RenameTableStatement; |
| 128 | +import net.sf.jsqlparser.statement.alter.database.AlterDatabase; |
| 129 | +import net.sf.jsqlparser.statement.alter.schema.AlterSchema; |
148 | 130 | import net.sf.jsqlparser.statement.alter.sequence.AlterSequence; |
149 | 131 | import net.sf.jsqlparser.statement.analyze.Analyze; |
150 | 132 | import net.sf.jsqlparser.statement.comment.Comment; |
| 133 | +import net.sf.jsqlparser.statement.create.accessmethod.CreateAccessMethod; |
| 134 | +import net.sf.jsqlparser.statement.create.collation.CreateCollation; |
151 | 135 | import net.sf.jsqlparser.statement.create.database.CreateDatabase; |
| 136 | +import net.sf.jsqlparser.statement.create.domain.CreateDomain; |
152 | 137 | import net.sf.jsqlparser.statement.create.event.AlterEvent; |
153 | 138 | import net.sf.jsqlparser.statement.create.event.CreateEvent; |
| 139 | +import net.sf.jsqlparser.statement.create.extension.CreateExtension; |
| 140 | +import net.sf.jsqlparser.statement.create.extension.CreateExtensionRepository; |
| 141 | +import net.sf.jsqlparser.statement.create.fdw.CreateForeignDataWrapper; |
154 | 142 | import net.sf.jsqlparser.statement.create.index.CreateIndex; |
| 143 | +import net.sf.jsqlparser.statement.create.macro.CreateMacro; |
155 | 144 | import net.sf.jsqlparser.statement.create.policy.CreatePolicy; |
| 145 | +import net.sf.jsqlparser.statement.create.publication.CreatePublication; |
| 146 | +import net.sf.jsqlparser.statement.create.rule.CreateRule; |
156 | 147 | import net.sf.jsqlparser.statement.create.schema.CreateSchema; |
157 | 148 | import net.sf.jsqlparser.statement.create.sequence.CreateSequence; |
| 149 | +import net.sf.jsqlparser.statement.create.server.CreateServer; |
| 150 | +import net.sf.jsqlparser.statement.create.statistics.CreateStatistics; |
| 151 | +import net.sf.jsqlparser.statement.create.subscription.CreateSubscription; |
158 | 152 | import net.sf.jsqlparser.statement.create.synonym.CreateSynonym; |
159 | 153 | import net.sf.jsqlparser.statement.create.table.CreateTable; |
| 154 | +import net.sf.jsqlparser.statement.create.textsearch.CreateTextSearchConfiguration; |
160 | 155 | import net.sf.jsqlparser.statement.create.trigger.CreateTrigger; |
| 156 | +import net.sf.jsqlparser.statement.create.type.CreateType; |
161 | 157 | import net.sf.jsqlparser.statement.create.user.CreateUser; |
| 158 | +import net.sf.jsqlparser.statement.create.usermapping.CreateUserMapping; |
162 | 159 | import net.sf.jsqlparser.statement.create.view.AlterView; |
163 | 160 | import net.sf.jsqlparser.statement.create.view.CreateView; |
164 | 161 | import net.sf.jsqlparser.statement.delete.Delete; |
165 | 162 | import net.sf.jsqlparser.statement.delete.ParenthesedDelete; |
166 | 163 | import net.sf.jsqlparser.statement.drop.Drop; |
| 164 | +import net.sf.jsqlparser.statement.drop.DropPolicy; |
167 | 165 | import net.sf.jsqlparser.statement.execute.Execute; |
168 | 166 | import net.sf.jsqlparser.statement.execute.ExecuteArgument; |
169 | 167 | import net.sf.jsqlparser.statement.export.Export; |
| 168 | +import net.sf.jsqlparser.statement.export.ExportDataStatement; |
| 169 | +import net.sf.jsqlparser.statement.grant.AlterDefaultPrivileges; |
170 | 170 | import net.sf.jsqlparser.statement.grant.Grant; |
| 171 | +import net.sf.jsqlparser.statement.grant.Revoke; |
171 | 172 | import net.sf.jsqlparser.statement.imprt.Import; |
172 | 173 | import net.sf.jsqlparser.statement.insert.Insert; |
173 | 174 | import net.sf.jsqlparser.statement.insert.InsertBulk; |
|
176 | 177 | import net.sf.jsqlparser.statement.insert.OracleMultiInsertBranch; |
177 | 178 | import net.sf.jsqlparser.statement.insert.OracleMultiInsertClause; |
178 | 179 | import net.sf.jsqlparser.statement.insert.ParenthesedInsert; |
| 180 | +import net.sf.jsqlparser.statement.load.LoadDataStatement; |
179 | 181 | import net.sf.jsqlparser.statement.lock.LockStatement; |
180 | 182 | import net.sf.jsqlparser.statement.merge.Merge; |
181 | 183 | import net.sf.jsqlparser.statement.merge.MergeDelete; |
182 | 184 | import net.sf.jsqlparser.statement.merge.MergeInsert; |
183 | 185 | import net.sf.jsqlparser.statement.merge.MergeOperation; |
184 | 186 | import net.sf.jsqlparser.statement.merge.MergeOperationVisitor; |
185 | 187 | import net.sf.jsqlparser.statement.merge.MergeUpdate; |
| 188 | +import net.sf.jsqlparser.statement.notify.NotifyStatement; |
| 189 | +import net.sf.jsqlparser.statement.oracle.OracleAssignment; |
| 190 | +import net.sf.jsqlparser.statement.oracle.OracleBlock; |
| 191 | +import net.sf.jsqlparser.statement.oracle.OracleNullStatement; |
186 | 192 | import net.sf.jsqlparser.statement.piped.AggregatePipeOperator; |
187 | 193 | import net.sf.jsqlparser.statement.piped.AsPipeOperator; |
188 | 194 | import net.sf.jsqlparser.statement.piped.CallPipeOperator; |
|
204 | 210 | import net.sf.jsqlparser.statement.piped.WherePipeOperator; |
205 | 211 | import net.sf.jsqlparser.statement.piped.WindowPipeOperator; |
206 | 212 | import net.sf.jsqlparser.statement.refresh.RefreshMaterializedViewStatement; |
| 213 | +import net.sf.jsqlparser.statement.role.AlterRole; |
| 214 | +import net.sf.jsqlparser.statement.role.CreateRole; |
207 | 215 | import net.sf.jsqlparser.statement.select.AllColumns; |
208 | 216 | import net.sf.jsqlparser.statement.select.AllTableColumns; |
209 | 217 | import net.sf.jsqlparser.statement.select.FromItem; |
|
212 | 220 | import net.sf.jsqlparser.statement.select.Join; |
213 | 221 | import net.sf.jsqlparser.statement.select.LateralSubSelect; |
214 | 222 | import net.sf.jsqlparser.statement.select.LateralView; |
| 223 | +import net.sf.jsqlparser.statement.select.MatchRecognize; |
215 | 224 | import net.sf.jsqlparser.statement.select.OrderByElement; |
216 | 225 | import net.sf.jsqlparser.statement.select.ParenthesedFromItem; |
217 | 226 | import net.sf.jsqlparser.statement.select.ParenthesedSelect; |
218 | 227 | import net.sf.jsqlparser.statement.select.Pivot; |
219 | 228 | import net.sf.jsqlparser.statement.select.PivotQuery; |
220 | | -import net.sf.jsqlparser.statement.select.UnPivotQuery; |
221 | 229 | import net.sf.jsqlparser.statement.select.PivotVisitor; |
222 | 230 | import net.sf.jsqlparser.statement.select.PivotXml; |
223 | 231 | import net.sf.jsqlparser.statement.select.PlainSelect; |
|
227 | 235 | import net.sf.jsqlparser.statement.select.SelectVisitor; |
228 | 236 | import net.sf.jsqlparser.statement.select.SetOperationList; |
229 | 237 | import net.sf.jsqlparser.statement.select.TableFunction; |
230 | | -import net.sf.jsqlparser.statement.select.UnPivot; |
231 | 238 | import net.sf.jsqlparser.statement.select.TableStatement; |
| 239 | +import net.sf.jsqlparser.statement.select.UnPivot; |
| 240 | +import net.sf.jsqlparser.statement.select.UnPivotQuery; |
232 | 241 | import net.sf.jsqlparser.statement.select.Values; |
233 | 242 | import net.sf.jsqlparser.statement.select.WithItem; |
234 | 243 | import net.sf.jsqlparser.statement.show.ShowIndexStatement; |
|
238 | 247 | import net.sf.jsqlparser.statement.update.Update; |
239 | 248 | import net.sf.jsqlparser.statement.update.UpdateSet; |
240 | 249 | import net.sf.jsqlparser.statement.upsert.Upsert; |
241 | | -import net.sf.jsqlparser.statement.PragmaStatement; |
242 | | -import net.sf.jsqlparser.statement.ExtensionStatement; |
243 | | -import net.sf.jsqlparser.statement.AttachStatement; |
244 | | -import net.sf.jsqlparser.statement.DetachStatement; |
245 | | -import net.sf.jsqlparser.statement.ConnectStatement; |
246 | | -import net.sf.jsqlparser.statement.DisconnectStatement; |
247 | | -import net.sf.jsqlparser.statement.PrepareStatement; |
248 | | -import net.sf.jsqlparser.statement.DeallocateStatement; |
249 | | -import net.sf.jsqlparser.statement.CopyStatement; |
250 | | -import net.sf.jsqlparser.statement.create.macro.CreateMacro; |
251 | | -import net.sf.jsqlparser.statement.create.extension.CreateExtensionRepository; |
252 | | -import net.sf.jsqlparser.statement.AssertStatement; |
253 | | -import net.sf.jsqlparser.statement.export.ExportDataStatement; |
254 | | -import net.sf.jsqlparser.statement.load.LoadDataStatement; |
255 | 250 |
|
256 | 251 |
|
257 | 252 | /** |
@@ -649,6 +644,9 @@ public <S> Void visit(Column tableColumn, S context) { |
649 | 644 | MatchRecognize.normalizeVariableName(tableColumn.getTable().getName()))) { |
650 | 645 | visit(tableColumn.getTable(), context); |
651 | 646 | } |
| 647 | + if (tableColumn.getArrayConstructor() != null) { |
| 648 | + tableColumn.getArrayConstructor().accept(this, context); |
| 649 | + } |
652 | 650 | return null; |
653 | 651 | } |
654 | 652 |
|
@@ -686,6 +684,10 @@ public <S> Void visit(Function function, S context) { |
686 | 684 | if (exprList != null) { |
687 | 685 | visit(exprList, context); |
688 | 686 | } |
| 687 | + exprList = function.getNamedParameters(); |
| 688 | + if (exprList != null) { |
| 689 | + visit(exprList, context); |
| 690 | + } |
689 | 691 | return null; |
690 | 692 | } |
691 | 693 |
|
@@ -1020,6 +1022,9 @@ public <S> Void visit(AnalyticExpression analytic, S context) { |
1020 | 1022 | if (analytic.getFilterExpression() != null) { |
1021 | 1023 | analytic.getFilterExpression().accept(this, context); |
1022 | 1024 | } |
| 1025 | + if (analytic.getPartitionExpressionList() != null) { |
| 1026 | + visit(analytic.getPartitionExpressionList(), context); |
| 1027 | + } |
1023 | 1028 | if (analytic.getFuncOrderBy() != null) { |
1024 | 1029 | for (OrderByElement element : analytic.getFuncOrderBy()) { |
1025 | 1030 | element.getExpression().accept(this, context); |
@@ -1126,6 +1131,12 @@ public <S> Void visit(FromQuery fromQuery, S context) { |
1126 | 1131 | if (fromQuery.getFromItem() != null) { |
1127 | 1132 | fromQuery.getFromItem().accept(this, context); |
1128 | 1133 | } |
| 1134 | + if (fromQuery.getLateralViews() != null) { |
| 1135 | + for (LateralView lateralView : fromQuery.getLateralViews()) { |
| 1136 | + lateralView.getGeneratorFunction().accept(this, context); |
| 1137 | + } |
| 1138 | + } |
| 1139 | + visitJoins(fromQuery.getJoins(), context); |
1129 | 1140 | for (PipeOperator pipeOperator : fromQuery.getPipeOperators()) { |
1130 | 1141 | pipeOperator.accept(this, null); |
1131 | 1142 | } |
@@ -1578,9 +1589,17 @@ private <S> void visitInsertAction(InsertConflictAction action, S context) { |
1578 | 1589 |
|
1579 | 1590 | @Override |
1580 | 1591 | public <S> Void visitOutputClause(OutputClause outputClause, S context) { |
1581 | | - if (outputClause != null && outputClause.getSelectItemList() != null) { |
1582 | | - for (SelectItem<?> selectItem : outputClause.getSelectItemList()) { |
1583 | | - selectItem.accept(this, context); |
| 1592 | + if (outputClause != null) { |
| 1593 | + if (outputClause.getSelectItemList() != null) { |
| 1594 | + for (SelectItem<?> selectItem : outputClause.getSelectItemList()) { |
| 1595 | + selectItem.accept(this, context); |
| 1596 | + } |
| 1597 | + } |
| 1598 | + if (outputClause.getOutputTable() != null) { |
| 1599 | + visit(outputClause.getOutputTable(), context); |
| 1600 | + } |
| 1601 | + if (outputClause.getTableVariable() != null) { |
| 1602 | + outputClause.getTableVariable().accept(this, context); |
1584 | 1603 | } |
1585 | 1604 | } |
1586 | 1605 | return null; |
@@ -1902,6 +1921,7 @@ public <S> Void visit(Merge merge, S context) { |
1902 | 1921 | operation.accept(this, context); |
1903 | 1922 | } |
1904 | 1923 | } |
| 1924 | + visitOutputClause(merge.getOutputClause(), context); |
1905 | 1925 | visitReturningClause(merge.getReturningClause(), context); |
1906 | 1926 | return null; |
1907 | 1927 | } |
@@ -2032,6 +2052,9 @@ public <S> Void visit(Upsert upsert, S context) { |
2032 | 2052 | if (upsert.getSelect() != null) { |
2033 | 2053 | visit(upsert.getSelect(), context); |
2034 | 2054 | } |
| 2055 | + if (upsert.getDuplicateAction() != null) { |
| 2056 | + visitInsertAction(upsert.getDuplicateAction(), context); |
| 2057 | + } |
2035 | 2058 | return null; |
2036 | 2059 | } |
2037 | 2060 |
|
@@ -2207,7 +2230,7 @@ public void visit(Grant grant) { |
2207 | 2230 | @Override |
2208 | 2231 | public <S> Void visit(ArrayExpression array, S context) { |
2209 | 2232 | array.getObjExpression().accept(this, context); |
2210 | | - if (array.getStartIndexExpression() != null) { |
| 2233 | + if (array.getIndexExpression() != null) { |
2211 | 2234 | array.getIndexExpression().accept(this, context); |
2212 | 2235 | } |
2213 | 2236 | if (array.getStartIndexExpression() != null) { |
@@ -2520,6 +2543,7 @@ public <S> Void visit(KeyExpression keyExpression, S context) { |
2520 | 2543 |
|
2521 | 2544 | @Override |
2522 | 2545 | public <S> Void visit(IfElseStatement ifElseStatement, S context) { |
| 2546 | + ifElseStatement.getCondition().accept(this, context); |
2523 | 2547 | ifElseStatement.getIfStatement().accept(this, context); |
2524 | 2548 | if (ifElseStatement.getElseStatement() != null) { |
2525 | 2549 | ifElseStatement.getElseStatement().accept(this, context); |
|
0 commit comments