135
135
136
136
/**
137
137
* Find all used tables within an select statement.
138
+ *
139
+ * Override extractTableName method to modify the extracted table names (e.g. without schema).
138
140
*/
139
141
public class TablesNamesFinder implements SelectVisitor , FromItemVisitor , ExpressionVisitor , ItemsListVisitor , SelectItemVisitor , StatementVisitor {
140
142
@@ -218,9 +220,18 @@ public void visit(PlainSelect plainSelect) {
218
220
}
219
221
}
220
222
223
+ /**
224
+ * Override to adapt the tableName generation (e.g. with / without schema).
225
+ * @param table
226
+ * @return
227
+ */
228
+ protected String extractTableName (Table table ) {
229
+ return table .getFullyQualifiedName ();
230
+ }
231
+
221
232
@ Override
222
233
public void visit (Table tableName ) {
223
- String tableWholeName = tableName . getFullyQualifiedName ( );
234
+ String tableWholeName = extractTableName ( tableName );
224
235
if (!otherItemNames .contains (tableWholeName .toLowerCase ())
225
236
&& !tables .contains (tableWholeName )) {
226
237
tables .add (tableWholeName );
@@ -618,7 +629,7 @@ public void visit(ValueListExpression valueList) {
618
629
619
630
@ Override
620
631
public void visit (Delete delete ) {
621
- tables . add (delete .getTable (). getName ());
632
+ visit (delete .getTable ());
622
633
623
634
if (delete .getJoins () != null ) {
624
635
for (Join join : delete .getJoins ()) {
@@ -634,7 +645,7 @@ public void visit(Delete delete) {
634
645
@ Override
635
646
public void visit (Update update ) {
636
647
for (Table table : update .getTables ()) {
637
- tables . add (table . getName () );
648
+ visit (table );
638
649
}
639
650
if (update .getExpressions () != null ) {
640
651
for (Expression expression : update .getExpressions ()) {
@@ -659,7 +670,7 @@ public void visit(Update update) {
659
670
660
671
@ Override
661
672
public void visit (Insert insert ) {
662
- tables . add (insert .getTable (). getName ());
673
+ visit (insert .getTable ());
663
674
if (insert .getItemsList () != null ) {
664
675
insert .getItemsList ().accept (this );
665
676
}
@@ -670,7 +681,7 @@ public void visit(Insert insert) {
670
681
671
682
@ Override
672
683
public void visit (Replace replace ) {
673
- tables . add (replace .getTable (). getName ());
684
+ visit (replace .getTable ());
674
685
if (replace .getExpressions () != null ) {
675
686
for (Expression expression : replace .getExpressions ()) {
676
687
expression .accept (this );
@@ -698,7 +709,7 @@ public void visit(CreateIndex createIndex) {
698
709
699
710
@ Override
700
711
public void visit (CreateTable create ) {
701
- tables . add (create .getTable (). getFullyQualifiedName ());
712
+ visit (create .getTable ());
702
713
if (create .getSelect () != null ) {
703
714
create .getSelect ().accept (this );
704
715
}
@@ -743,7 +754,7 @@ public void visit(HexValue hexValue) {
743
754
744
755
@ Override
745
756
public void visit (Merge merge ) {
746
- tables . add (merge .getTable (). getName ());
757
+ visit (merge .getTable ());
747
758
if (merge .getUsingTable () != null ) {
748
759
merge .getUsingTable ().accept (this );
749
760
} else if (merge .getUsingSelect () != null ) {
@@ -780,7 +791,7 @@ public void visit(Commit commit) {
780
791
781
792
@ Override
782
793
public void visit (Upsert upsert ) {
783
- tables . add (upsert .getTable (). getName ());
794
+ visit (upsert .getTable ());
784
795
if (upsert .getItemsList () != null ) {
785
796
upsert .getItemsList ().accept (this );
786
797
}
0 commit comments