11package net .sf .jsqlparser .statement .select ;
22
3+ import java .io .*;
4+ import java .util .*;
35import net .sf .jsqlparser .*;
46import net .sf .jsqlparser .expression .*;
57import net .sf .jsqlparser .expression .operators .arithmetic .*;
68import net .sf .jsqlparser .expression .operators .relational .*;
79import net .sf .jsqlparser .parser .*;
810import net .sf .jsqlparser .schema .*;
911import net .sf .jsqlparser .statement .*;
10- import org .apache .commons .io .*;
11-
12- import java .io .*;
13- import java .util .*;
14-
1512import static net .sf .jsqlparser .test .TestUtils .*;
13+ import org .apache .commons .io .*;
1614import static org .junit .Assert .assertEquals ;
1715import static org .junit .Assert .assertFalse ;
1816import static org .junit .Assert .assertNotNull ;
@@ -1025,7 +1023,7 @@ public void testFunctions() throws JSQLParserException {
10251023 assertTrue (fun .isAllColumns ());
10261024 assertStatementCanBeDeparsedAs (select , statement );
10271025 }
1028-
1026+
10291027 @ Test
10301028 public void testEscapedFunctionsIssue647 () throws JSQLParserException {
10311029 assertSqlCanBeParsedAndDeparsed ("SELECT {fn test(0)} AS COL" );
@@ -1939,6 +1937,11 @@ public void testExtractFrom4() throws JSQLParserException {
19391937 assertSqlCanBeParsedAndDeparsed (stmt );
19401938 }
19411939
1940+ // @Test
1941+ // public void testExtractFromIssue673() throws JSQLParserException {
1942+ // String stmt = "select EXTRACT(DAY FROM (SYSDATE - to_date('20180101', 'YYYYMMDD' ) ) DAY TO SECOND) from dual";
1943+ // assertSqlCanBeParsedAndDeparsed(stmt);
1944+ // }
19421945 @ Test
19431946 public void testProblemFunction () throws JSQLParserException {
19441947 String stmt = "SELECT test() FROM testtable" ;
@@ -3182,59 +3185,59 @@ public void testSqlContainIsNullFunctionShouldBeParsed() throws JSQLParserExcept
31823185 public void testNestedCast () throws JSQLParserException {
31833186 assertSqlCanBeParsedAndDeparsed ("SELECT acolumn::bit (64)::bigint FROM mytable" );
31843187 }
3185-
3188+
31863189 @ Test
31873190 public void testAndOperator () throws JSQLParserException {
31883191 String stmt = "SELECT name from customers where name = 'John' && lastname = 'Doh'" ;
31893192 Statement parsed = parserManager .parse (new StringReader (stmt ));
31903193 assertStatementCanBeDeparsedAs (parsed , "SELECT name FROM customers WHERE name = 'John' AND lastname = 'Doh'" );
31913194 }
3192-
3193- @ Test
3195+
3196+ @ Test
31943197 public void testNamedParametersIssue612 () throws Exception {
3195- assertSqlCanBeParsedAndDeparsed ( "SELECT a FROM b LIMIT 10 OFFSET :param" );
3198+ assertSqlCanBeParsedAndDeparsed ("SELECT a FROM b LIMIT 10 OFFSET :param" );
31963199 }
3197-
3200+
31983201 @ Test
31993202 public void testMissingOffsetIssue620 () throws JSQLParserException {
32003203 assertSqlCanBeParsedAndDeparsed ("SELECT a, b FROM test OFFSET 0" );
32013204 assertSqlCanBeParsedAndDeparsed ("SELECT a, b FROM test LIMIT 1 OFFSET 0" );
32023205 }
3203-
3206+
32043207 @ Test
32053208 public void testMultiPartNames1 () throws JSQLParserException {
32063209 assertSqlCanBeParsedAndDeparsed ("SELECT a.b" );
32073210 }
3208-
3211+
32093212 @ Test
32103213 public void testMultiPartNames2 () throws JSQLParserException {
32113214 assertSqlCanBeParsedAndDeparsed ("SELECT a.b.*" );
32123215 }
3213-
3216+
32143217 @ Test
32153218 public void testMultiPartNames3 () throws JSQLParserException {
32163219 assertSqlCanBeParsedAndDeparsed ("SELECT a.*" );
32173220 }
3218-
3221+
32193222 @ Test
32203223 public void testMultiPartNames4 () throws JSQLParserException {
32213224 assertSqlCanBeParsedAndDeparsed ("SELECT a.b.c.d.e.f.g.h" );
32223225 }
3223-
3226+
32243227 @ Test
32253228 public void testMultiPartNames5 () throws JSQLParserException {
32263229 assertSqlCanBeParsedAndDeparsed ("SELECT * FROM a.b.c.d.e.f.g.h" );
32273230 }
3228-
3231+
32293232 @ Test
32303233 public void testMultiPartNamesIssue163 () throws JSQLParserException {
32313234 assertSqlCanBeParsedAndDeparsed ("SELECT mymodel.name FROM com.myproject.MyModelClass AS mymodel" );
32323235 }
3233-
3236+
32343237 @ Test
32353238 public void testMultiPartNamesIssue608 () throws JSQLParserException {
32363239 assertSqlCanBeParsedAndDeparsed ("SELECT @@session.tx_read_only" );
3237- }
3240+ }
32383241
32393242// Teradata allows SEL to be used in place of SELECT
32403243// Deparse to the non-contracted form
@@ -3245,36 +3248,36 @@ public void testSelContraction() throws JSQLParserException {
32453248 Select select = (Select ) parserManager .parse (new StringReader (statementSrc ));
32463249 assertStatementCanBeDeparsedAs (select , statementTgt );
32473250 }
3248-
3251+
32493252 @ Test
32503253 public void testMultiPartNamesIssue643 () throws JSQLParserException {
32513254 assertSqlCanBeParsedAndDeparsed ("SELECT id, bid, pid, devnum, pointdesc, sysid, zone, sort FROM fault ORDER BY id DESC LIMIT ?, ?" );
32523255 }
32533256
32543257 @ Test
32553258 public void testRawStringExpressionIssue656 () throws JSQLParserException {
3256- for (String c : new String [] {"u" , "e" , "n" , "r" , "b" , "rb" } ) {
3257- final String prefix = c ;
3258- String sql = "select " + c + "'test' from foo" ;
3259- Statement statement = CCJSqlParserUtil .parse (sql );
3260- assertNotNull (statement );
3261- statement .accept (new StatementVisitorAdapter () {
3262- @ Override
3263- public void visit (Select select ) {
3264- select .getSelectBody ().accept (new SelectVisitorAdapter () {
3265- @ Override
3266- public void visit (PlainSelect plainSelect ) {
3267- SelectExpressionItem typedExpression =
3268- (SelectExpressionItem ) plainSelect .getSelectItems ().get (0 );
3269- assertNotNull (typedExpression );
3270- assertNull (typedExpression .getAlias ());
3271- StringValue value = (StringValue ) typedExpression .getExpression ();
3272- assertEquals (prefix .toUpperCase (), value .getPrefix ());
3273- assertEquals ("test" , value .getValue ());
3274- }
3259+ for (String c : new String []{"u" , "e" , "n" , "r" , "b" , "rb" }) {
3260+ final String prefix = c ;
3261+ String sql = "select " + c + "'test' from foo" ;
3262+ Statement statement = CCJSqlParserUtil .parse (sql );
3263+ assertNotNull (statement );
3264+ statement .accept (new StatementVisitorAdapter () {
3265+ @ Override
3266+ public void visit (Select select ) {
3267+ select .getSelectBody ().accept (new SelectVisitorAdapter () {
3268+ @ Override
3269+ public void visit (PlainSelect plainSelect ) {
3270+ SelectExpressionItem typedExpression
3271+ = (SelectExpressionItem ) plainSelect .getSelectItems ().get (0 );
3272+ assertNotNull (typedExpression );
3273+ assertNull (typedExpression .getAlias ());
3274+ StringValue value = (StringValue ) typedExpression .getExpression ();
3275+ assertEquals (prefix .toUpperCase (), value .getPrefix ());
3276+ assertEquals ("test" , value .getValue ());
3277+ }
3278+ });
3279+ }
32753280 });
3276- }
3277- });
3278- }
3281+ }
32793282 }
32803283}
0 commit comments