1
1
package net .sf .jsqlparser .statement .select ;
2
2
3
+ import java .io .*;
4
+ import java .util .*;
3
5
import net .sf .jsqlparser .*;
4
6
import net .sf .jsqlparser .expression .*;
5
7
import net .sf .jsqlparser .expression .operators .arithmetic .*;
6
8
import net .sf .jsqlparser .expression .operators .relational .*;
7
9
import net .sf .jsqlparser .parser .*;
8
10
import net .sf .jsqlparser .schema .*;
9
11
import net .sf .jsqlparser .statement .*;
10
- import org .apache .commons .io .*;
11
-
12
- import java .io .*;
13
- import java .util .*;
14
-
15
12
import static net .sf .jsqlparser .test .TestUtils .*;
13
+ import org .apache .commons .io .*;
16
14
import static org .junit .Assert .assertEquals ;
17
15
import static org .junit .Assert .assertFalse ;
18
16
import static org .junit .Assert .assertNotNull ;
@@ -1025,7 +1023,7 @@ public void testFunctions() throws JSQLParserException {
1025
1023
assertTrue (fun .isAllColumns ());
1026
1024
assertStatementCanBeDeparsedAs (select , statement );
1027
1025
}
1028
-
1026
+
1029
1027
@ Test
1030
1028
public void testEscapedFunctionsIssue647 () throws JSQLParserException {
1031
1029
assertSqlCanBeParsedAndDeparsed ("SELECT {fn test(0)} AS COL" );
@@ -1939,6 +1937,11 @@ public void testExtractFrom4() throws JSQLParserException {
1939
1937
assertSqlCanBeParsedAndDeparsed (stmt );
1940
1938
}
1941
1939
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
+ // }
1942
1945
@ Test
1943
1946
public void testProblemFunction () throws JSQLParserException {
1944
1947
String stmt = "SELECT test() FROM testtable" ;
@@ -3182,59 +3185,59 @@ public void testSqlContainIsNullFunctionShouldBeParsed() throws JSQLParserExcept
3182
3185
public void testNestedCast () throws JSQLParserException {
3183
3186
assertSqlCanBeParsedAndDeparsed ("SELECT acolumn::bit (64)::bigint FROM mytable" );
3184
3187
}
3185
-
3188
+
3186
3189
@ Test
3187
3190
public void testAndOperator () throws JSQLParserException {
3188
3191
String stmt = "SELECT name from customers where name = 'John' && lastname = 'Doh'" ;
3189
3192
Statement parsed = parserManager .parse (new StringReader (stmt ));
3190
3193
assertStatementCanBeDeparsedAs (parsed , "SELECT name FROM customers WHERE name = 'John' AND lastname = 'Doh'" );
3191
3194
}
3192
-
3193
- @ Test
3195
+
3196
+ @ Test
3194
3197
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" );
3196
3199
}
3197
-
3200
+
3198
3201
@ Test
3199
3202
public void testMissingOffsetIssue620 () throws JSQLParserException {
3200
3203
assertSqlCanBeParsedAndDeparsed ("SELECT a, b FROM test OFFSET 0" );
3201
3204
assertSqlCanBeParsedAndDeparsed ("SELECT a, b FROM test LIMIT 1 OFFSET 0" );
3202
3205
}
3203
-
3206
+
3204
3207
@ Test
3205
3208
public void testMultiPartNames1 () throws JSQLParserException {
3206
3209
assertSqlCanBeParsedAndDeparsed ("SELECT a.b" );
3207
3210
}
3208
-
3211
+
3209
3212
@ Test
3210
3213
public void testMultiPartNames2 () throws JSQLParserException {
3211
3214
assertSqlCanBeParsedAndDeparsed ("SELECT a.b.*" );
3212
3215
}
3213
-
3216
+
3214
3217
@ Test
3215
3218
public void testMultiPartNames3 () throws JSQLParserException {
3216
3219
assertSqlCanBeParsedAndDeparsed ("SELECT a.*" );
3217
3220
}
3218
-
3221
+
3219
3222
@ Test
3220
3223
public void testMultiPartNames4 () throws JSQLParserException {
3221
3224
assertSqlCanBeParsedAndDeparsed ("SELECT a.b.c.d.e.f.g.h" );
3222
3225
}
3223
-
3226
+
3224
3227
@ Test
3225
3228
public void testMultiPartNames5 () throws JSQLParserException {
3226
3229
assertSqlCanBeParsedAndDeparsed ("SELECT * FROM a.b.c.d.e.f.g.h" );
3227
3230
}
3228
-
3231
+
3229
3232
@ Test
3230
3233
public void testMultiPartNamesIssue163 () throws JSQLParserException {
3231
3234
assertSqlCanBeParsedAndDeparsed ("SELECT mymodel.name FROM com.myproject.MyModelClass AS mymodel" );
3232
3235
}
3233
-
3236
+
3234
3237
@ Test
3235
3238
public void testMultiPartNamesIssue608 () throws JSQLParserException {
3236
3239
assertSqlCanBeParsedAndDeparsed ("SELECT @@session.tx_read_only" );
3237
- }
3240
+ }
3238
3241
3239
3242
// Teradata allows SEL to be used in place of SELECT
3240
3243
// Deparse to the non-contracted form
@@ -3245,36 +3248,36 @@ public void testSelContraction() throws JSQLParserException {
3245
3248
Select select = (Select ) parserManager .parse (new StringReader (statementSrc ));
3246
3249
assertStatementCanBeDeparsedAs (select , statementTgt );
3247
3250
}
3248
-
3251
+
3249
3252
@ Test
3250
3253
public void testMultiPartNamesIssue643 () throws JSQLParserException {
3251
3254
assertSqlCanBeParsedAndDeparsed ("SELECT id, bid, pid, devnum, pointdesc, sysid, zone, sort FROM fault ORDER BY id DESC LIMIT ?, ?" );
3252
3255
}
3253
3256
3254
3257
@ Test
3255
3258
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
+ }
3275
3280
});
3276
- }
3277
- });
3278
- }
3281
+ }
3279
3282
}
3280
3283
}
0 commit comments