File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed
main/java/net/sf/jsqlparser/util
test/java/net/sf/jsqlparser/util Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -172,6 +172,13 @@ public List<String> getTableList(CreateTable create) {
172172
173173 return tables ;
174174 }
175+
176+ public List <String > getTableList (Expression expr ) {
177+ init ();
178+ expr .accept (this );
179+
180+ return tables ;
181+ }
175182
176183 @ Override
177184 public void visit (WithItem withItem ) {
Original file line number Diff line number Diff line change 88import java .util .List ;
99import java .util .StringTokenizer ;
1010import net .sf .jsqlparser .JSQLParserException ;
11+ import net .sf .jsqlparser .expression .Expression ;
1112
1213import net .sf .jsqlparser .parser .CCJSqlParserManager ;
14+ import net .sf .jsqlparser .parser .CCJSqlParserUtil ;
1315import net .sf .jsqlparser .statement .create .table .CreateTable ;
1416import net .sf .jsqlparser .statement .delete .Delete ;
1517import net .sf .jsqlparser .statement .insert .Insert ;
@@ -317,6 +319,16 @@ public void testInsertSubSelect() throws JSQLParserException {
317319 assertTrue (tableList .contains ("Customers" ));
318320 assertTrue (tableList .contains ("Suppliers" ));
319321 }
322+
323+ @ Test
324+ public void testExpr () throws JSQLParserException {
325+ String sql = "mycol in (select col2 from mytable)" ;
326+ Expression expr = (Expression ) CCJSqlParserUtil .parseCondExpression (sql );
327+ TablesNamesFinder tablesNamesFinder = new TablesNamesFinder ();
328+ List <String > tableList = tablesNamesFinder .getTableList (expr );
329+ assertEquals (1 , tableList .size ());
330+ assertTrue (tableList .contains ("mytable" ));
331+ }
320332
321333 private String getLine (BufferedReader in ) throws Exception {
322334 return CCJSqlParserManagerTest .getLine (in );
You can’t perform that action at this time.
0 commit comments