File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
main/javacc/net/sf/jsqlparser/parser
test/java/net/sf/jsqlparser/test/create Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -1843,7 +1843,12 @@ CreateView CreateView():
18431843 <K_VIEW> view=Table() { createView.setView(view); }
18441844 [ columnNames = ColumnsNamesList() { createView.setColumnNames(columnNames); } ]
18451845 <K_AS>
1846- select=SelectBody() { createView.setSelectBody(select); }
1846+ (
1847+ LOOKAHEAD(3)
1848+ "(" select=SelectBody() ")" { createView.setSelectBody(select); }
1849+ |
1850+ select=SelectBody() { createView.setSelectBody(select); }
1851+ )
18471852 { return createView; }
18481853}
18491854
Original file line number Diff line number Diff line change 11package net .sf .jsqlparser .test .create ;
22
33import java .io .StringReader ;
4+ import static junit .framework .Assert .assertEquals ;
5+ import static junit .framework .Assert .assertFalse ;
46
57import junit .framework .TestCase ;
68import net .sf .jsqlparser .JSQLParserException ;
@@ -47,6 +49,16 @@ public void testCreateViewWithColumnNames1() throws JSQLParserException {
4749 String stmt = "CREATE OR REPLACE VIEW view1(col1, col2) AS SELECT a, b FROM testtab" ;
4850 assertSqlCanBeParsedAndDeparsed (stmt );
4951 }
52+
53+ public void testCreateView5 () throws JSQLParserException {
54+ String statement = "CREATE VIEW myview AS (SELECT * FROM mytab)" ;
55+ String statement2 = "CREATE VIEW myview AS SELECT * FROM mytab" ;
56+ CreateView createView = (CreateView ) parserManager .parse (new StringReader (statement ));
57+ assertFalse (createView .isOrReplace ());
58+ assertEquals ("myview" , createView .getView ().getName ());
59+ assertEquals ("mytab" , ((Table ) ((PlainSelect ) createView .getSelectBody ()).getFromItem ()).getName ());
60+ assertEquals (statement2 , createView .toString ());
61+ }
5062
5163 private void assertSqlCanBeParsedAndDeparsed (String statement ) throws JSQLParserException {
5264 Statement parsed = parserManager .parse (new StringReader (statement ));
You can’t perform that action at this time.
0 commit comments