Skip to content

Commit f1b8939

Browse files
committed
Merge pull request #55 from shuyangzhou/TablesNamesFinder.getTableList(Delete)-NPE
TablesNamesFinder.getTableList(Delete) throws NPE when the sql does not have a where clause
2 parents c3404e0 + 8cc036b commit f1b8939

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ public class TablesNamesFinder implements SelectVisitor, FromItemVisitor, Expres
5959
public List<String> getTableList(Delete delete) {
6060
init();
6161
tables.add(delete.getTable().getName());
62-
delete.getWhere().accept(this);
62+
if (delete.getWhere() != null) {
63+
delete.getWhere().accept(this);
64+
}
6365

6466
return tables;
6567
}

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,17 @@ public void testGetTableListFromDelete() throws Exception {
174174
assertTrue(tableList.contains("MY_TABLE2"));
175175
}
176176

177+
public void testGetTableListFromDelete2() throws Exception {
178+
String sql = "DELETE FROM MY_TABLE1";
179+
net.sf.jsqlparser.statement.Statement statement = pm.parse(new StringReader(sql));
180+
181+
Delete deleteStatement = (Delete) statement;
182+
TablesNamesFinder tablesNamesFinder = new TablesNamesFinder();
183+
List<String> tableList = tablesNamesFinder.getTableList(deleteStatement);
184+
assertEquals(1, tableList.size());
185+
assertTrue(tableList.contains("MY_TABLE1"));
186+
}
187+
177188
public void testGetTableListFromInsert() throws Exception {
178189
String sql = "INSERT INTO MY_TABLE1 (a) VALUES ((SELECT a from MY_TABLE2 WHERE a = 1))";
179190
net.sf.jsqlparser.statement.Statement statement = pm.parse(new StringReader(sql));

0 commit comments

Comments
 (0)