@@ -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