4040/**
4141 * Find all used tables within an select statement.
4242 */
43- public class TablesNamesFinder implements SelectVisitor , FromItemVisitor , ExpressionVisitor , ItemsListVisitor {
43+ public class TablesNamesFinder implements SelectVisitor , FromItemVisitor , ExpressionVisitor , ItemsListVisitor , SelectItemVisitor {
4444
4545 private List <String > tables ;
4646 /**
@@ -163,6 +163,12 @@ public void visit(WithItem withItem) {
163163
164164 @ Override
165165 public void visit (PlainSelect plainSelect ) {
166+ if (plainSelect .getSelectItems () != null ) {
167+ for (SelectItem item : plainSelect .getSelectItems ()) {
168+ item .accept (this );
169+ }
170+ }
171+
166172 plainSelect .getFromItem ().accept (this );
167173
168174 if (plainSelect .getJoins () != null ) {
@@ -173,7 +179,9 @@ public void visit(PlainSelect plainSelect) {
173179 if (plainSelect .getWhere () != null ) {
174180 plainSelect .getWhere ().accept (this );
175181 }
176-
182+ if (plainSelect .getOracleHierarchical () != null ) {
183+ plainSelect .getOracleHierarchical ().accept (this );
184+ }
177185 }
178186
179187 @ Override
@@ -455,6 +463,13 @@ public void visit(JdbcNamedParameter jdbcNamedParameter) {
455463
456464 @ Override
457465 public void visit (OracleHierarchicalExpression oexpr ) {
466+ if (oexpr .getStartExpression () != null ) {
467+ oexpr .getStartExpression ().accept (this );
468+ }
469+
470+ if (oexpr .getConnectExpression () != null ) {
471+ oexpr .getConnectExpression ().accept (this );
472+ }
458473 }
459474
460475 @ Override
@@ -463,13 +478,24 @@ public void visit(RegExpMatchOperator rexpr) {
463478 }
464479
465480 @ Override
466- public void visit (RegExpMySQLOperator rexpr ) {
467- visitBinaryExpression (rexpr );
468- }
469-
481+ public void visit (RegExpMySQLOperator rexpr ) {
482+ visitBinaryExpression (rexpr );
483+ }
484+
470485 @ Override
471486 public void visit (JsonExpression jsonExpr ) {
472487 }
473488
474-
489+ @ Override
490+ public void visit (AllColumns allColumns ) {
491+ }
492+
493+ @ Override
494+ public void visit (AllTableColumns allTableColumns ) {
495+ }
496+
497+ @ Override
498+ public void visit (SelectExpressionItem item ) {
499+ item .getExpression ().accept (this );
500+ }
475501}
0 commit comments