Skip to content

Commit f1c9835

Browse files
committed
fixes #194
1 parent a97e9c9 commit f1c9835

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Also I would like to know about needed examples or documentation stuff.
3838

3939
## Extensions in the latest SNAPSHOT version 0.9.5
4040

41+
* support for **insert ... on duplicate key update**
4142
* improved support for **alter table** statements
4243
* first Oracle hint support for **select** statements
4344
* first **alter table foreign key** support

src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
/**
5252
* Find all used tables within an select statement.
5353
*/
54-
public class TablesNamesFinder implements SelectVisitor, FromItemVisitor, ExpressionVisitor, ItemsListVisitor, SelectItemVisitor, StatementVisitor {
54+
public class TablesNamesFinder implements SelectVisitor, FromItemVisitor, ExpressionVisitor, ItemsListVisitor, SelectItemVisitor, StatementVisitor {
5555

5656
private List<String> tables;
5757
/**
@@ -136,7 +136,7 @@ public List<String> getTableList(CreateTable create) {
136136
create.accept(this);
137137
return tables;
138138
}
139-
139+
140140
public List<String> getTableList(Expression expr) {
141141
init();
142142
expr.accept(this);
@@ -157,7 +157,9 @@ public void visit(PlainSelect plainSelect) {
157157
}
158158
}
159159

160-
plainSelect.getFromItem().accept(this);
160+
if (plainSelect.getFromItem() != null) {
161+
plainSelect.getFromItem().accept(this);
162+
}
161163

162164
if (plainSelect.getJoins() != null) {
163165
for (Join join : plainSelect.getJoins()) {
@@ -624,18 +626,18 @@ public void visit(RowConstructor rowConstructor) {
624626
}
625627
}
626628

627-
@Override
628-
public void visit(HexValue hexValue) {
629-
630-
}
629+
@Override
630+
public void visit(HexValue hexValue) {
631+
632+
}
631633

632634
@Override
633635
public void visit(Merge merge) {
634636
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
635637
}
636-
638+
637639
@Override
638640
public void visit(OracleHint hint) {
639641
}
640-
642+
641643
}

src/test/java/net/sf/jsqlparser/util/TablesNamesFinderTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,17 @@ public void visit(OracleHint hint) {
351351
};
352352
tablesNamesFinder.getTableList(select);
353353
assertNull(holder[0]);
354-
355354
}
355+
356+
@Test
357+
public void testGetTableListIssue194() throws Exception {
358+
String sql = "SELECT 1";
359+
net.sf.jsqlparser.statement.Statement statement = pm.parse(new StringReader(sql));
360+
361+
Select selectStatement = (Select) statement;
362+
TablesNamesFinder tablesNamesFinder = new TablesNamesFinder();
363+
List<String> tableList = tablesNamesFinder.getTableList(selectStatement);
364+
assertEquals(0, tableList.size());
365+
}
356366

357367
}

0 commit comments

Comments
 (0)