Skip to content

Commit 05f13ba

Browse files
committed
Fix JSQLParser table name extraction
1 parent 4308d95 commit 05f13ba

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

testsuite-base/assertion/src/main/java/com/blazebit/persistence/testsuite/base/jpa/assertion/AbstractAssertStatement.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -162,21 +162,24 @@ private List<Table> getTables(Statement statement) {
162162
final List<Table> tables = new ArrayList<>();
163163
FromItemVisitor visitor = new FromItemVisitorAdapter() {
164164
@Override
165-
public void visit(Table table) {
165+
public Object visit(Table table, Object context) {
166166
tables.add(table);
167+
return null;
167168
}
168169

169170
@Override
170-
public void visit(ParenthesedSelect selectBody) {
171-
tables.addAll( getTables( selectBody.getSelect() ) );
171+
public Object visit(ParenthesedSelect selectBody, Object context) {
172+
tables.addAll(getTables(selectBody.getSelect()));
173+
return null;
172174
}
173175

174176
@Override
175-
public void visit(ParenthesedFromItem fromItem) {
176-
fromItem.getFromItem().accept( this );
177+
public Object visit(ParenthesedFromItem fromItem, Object context) {
178+
fromItem.getFromItem().accept(this);
177179
for (Join join : fromItem.getJoins()) {
178180
join.getRightItem().accept(this);
179181
}
182+
return null;
180183
}
181184
};
182185
plainSelect.getFromItem().accept(visitor);
@@ -204,14 +207,16 @@ public void visit(ParenthesedFromItem fromItem) {
204207
Delete delete = (Delete) statement;
205208
if (delete.getTables().size() == 1) {
206209
Table t = delete.getTables().get(0);
207-
if (delete.getJoins() != null && !delete.getJoins().isEmpty()) {
208-
for (Join join : delete.getJoins()) {
209-
if (join.getRightItem().getAlias().getName().equals(t.getName())) {
210-
return Collections.singletonList((Table) join.getRightItem());
210+
if (!t.getName().equals(delete.getTable().getAlias().getName())) {
211+
if (delete.getJoins() != null && !delete.getJoins().isEmpty()) {
212+
for (Join join : delete.getJoins()) {
213+
if (join.getRightItem().getAlias().getName().equals(t.getName())) {
214+
return Collections.singletonList((Table) join.getRightItem());
215+
}
211216
}
212217
}
218+
return Collections.singletonList(t);
213219
}
214-
return Collections.singletonList(t);
215220
}
216221
return Collections.singletonList(delete.getTable());
217222
} else if (statement instanceof Merge) {

0 commit comments

Comments
 (0)