diff --git a/src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java b/src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java index 122d5cf2e..3e8bc9e1b 100644 --- a/src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java +++ b/src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java @@ -1151,8 +1151,11 @@ public void visit(CreateTable createTable) { } @Override - public Void visit(CreateView createView, S context) { - throwUnsupported(createView); + public Void visit(CreateView create, S context) { + visit(create.getView(), null); + if (create.getSelect() != null) { + create.getSelect().accept((SelectVisitor) this, context); + } return null; } diff --git a/src/test/java/net/sf/jsqlparser/util/TablesNamesFinderTest.java b/src/test/java/net/sf/jsqlparser/util/TablesNamesFinderTest.java index 66304b1da..111fba75a 100644 --- a/src/test/java/net/sf/jsqlparser/util/TablesNamesFinderTest.java +++ b/src/test/java/net/sf/jsqlparser/util/TablesNamesFinderTest.java @@ -152,12 +152,19 @@ public void testInsertSelect() throws Exception { } @Test - public void testCreateSelect() throws Exception { + public void testCreateTableSelect() throws Exception { String sqlStr = "CREATE TABLE mytable AS SELECT mycolumn FROM mytable2"; assertThat(TablesNamesFinder.findTables(sqlStr)).containsExactlyInAnyOrder("mytable", "mytable2"); } + @Test + public void testCreateViewSelect() throws Exception { + String sqlStr = "CREATE VIEW mytable AS SELECT mycolumn FROM mytable2"; + assertThat(TablesNamesFinder.findTables(sqlStr)).containsExactlyInAnyOrder("mytable", + "mytable2"); + } + @Test public void testInsertSubSelect() throws JSQLParserException { String sqlStr =