Skip to content

Commit db6acef

Browse files
committed
fixes #1029
1 parent 57a7dcd commit db6acef

File tree

2 files changed

+43
-40
lines changed

2 files changed

+43
-40
lines changed

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,7 @@ String RelObjectNameWithoutValue() :
13251325
| tk=<K_ZONE> | tk=<K_COLUMNS> | tk=<K_DESCRIBE> | tk=<K_FN> | tk=<K_PATH>
13261326
| tk=<K_DATE_LITERAL> | tk=<K_NEXTVAL> | tk=<K_TRUE> | tk=<K_FALSE> | tk=<K_DUPLICATE>
13271327
| tk=<K_READ> | tk=<K_SCHEMA> | tk=<K_SIZE> | tk=<K_SESSION>
1328-
| tk=<K_VIEW> | tk=<K_NOLOCK> | tk=<K_VALIDATE> | tk=<K_CYCLE>
1328+
| tk=<K_VIEW> | tk=<K_NOLOCK> | tk=<K_VALIDATE> | tk=<K_CYCLE> | tk=<K_OF>
13291329
/*| tk=<K_PLACING> | tk=<K_BOTH> | tk=<K_LEADING> | tk=<K_TRAILING> */
13301330
)
13311331

src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,15 +1192,15 @@ public void testExists() throws JSQLParserException {
11921192
PlainSelect plainSelect = (PlainSelect) ((Select) parsed).getSelectBody();
11931193
assertExpressionCanBeDeparsedAs(plainSelect.getWhere(), where);
11941194
}
1195-
1195+
11961196
@Test
11971197
public void testNotExists() throws JSQLParserException {
1198-
assertSqlCanBeParsedAndDeparsed( "SELECT * FROM tab1 WHERE NOT EXISTS (SELECT * FROM tab2)");
1198+
assertSqlCanBeParsedAndDeparsed("SELECT * FROM tab1 WHERE NOT EXISTS (SELECT * FROM tab2)");
11991199
}
1200-
1200+
12011201
@Test
12021202
public void testNotExistsIssue() throws JSQLParserException {
1203-
assertSqlCanBeParsedAndDeparsed( "SELECT * FROM t001 t WHERE NOT EXISTS (SELECT * FROM t002 t1 WHERE t.c1 = t1.c1 AND t.c2 = t1.c2 AND ('241' IN (t1.c3 || t1.c4)))");
1203+
assertSqlCanBeParsedAndDeparsed("SELECT * FROM t001 t WHERE NOT EXISTS (SELECT * FROM t002 t1 WHERE t.c1 = t1.c1 AND t.c2 = t1.c2 AND ('241' IN (t1.c3 || t1.c4)))");
12041204
}
12051205

12061206
@Test
@@ -1332,7 +1332,7 @@ public void testIssue235SimplifiedCase4() throws JSQLParserException {
13321332
public void testIssue862CaseWhenConcat() throws JSQLParserException {
13331333
assertSqlCanBeParsedAndDeparsed("SELECT c1, CASE c1 || c2 WHEN '091' THEN '2' ELSE '1' END AS c11 FROM T2");
13341334
}
1335-
1335+
13361336
@Test
13371337
public void testExpressionsInCaseBeforeWhen() throws JSQLParserException {
13381338
assertSqlCanBeParsedAndDeparsed("SELECT a FROM tbl1 LEFT JOIN tbl2 ON CASE tbl1.col1 WHEN tbl1.col1 = 1 THEN tbl1.col2 = tbl2.col2 ELSE tbl1.col3 = tbl2.col3 END");
@@ -1911,12 +1911,12 @@ public void testAnalyticFunctionIssue670() throws JSQLParserException {
19111911
public void testAnalyticFunctionFilterIssue866() throws JSQLParserException {
19121912
assertSqlCanBeParsedAndDeparsed("SELECT COUNT(*) FILTER (WHERE name = 'Raj') OVER (PARTITION BY name ) FROM table");
19131913
}
1914-
1914+
19151915
@Test
19161916
public void testAnalyticPartitionBooleanExpressionIssue864() throws JSQLParserException {
19171917
assertSqlCanBeParsedAndDeparsed("SELECT COUNT(*) OVER (PARTITION BY (event = 'admit' OR event = 'family visit') ORDER BY day ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) family_visits FROM patients");
19181918
}
1919-
1919+
19201920
@Test
19211921
public void testAnalyticPartitionBooleanExpressionIssue864_2() throws JSQLParserException {
19221922
assertSqlCanBeParsedAndDeparsed("SELECT COUNT(*) OVER (PARTITION BY (event = 'admit' OR event = 'family visit') ) family_visits FROM patients");
@@ -2207,7 +2207,7 @@ public void testLateral1() throws JSQLParserException {
22072207
@Test
22082208
public void testLateralComplex1() throws IOException, JSQLParserException {
22092209
String stmt = IOUtils.toString(SelectTest.class.
2210-
getResourceAsStream("complex-lateral-select-request.txt"),
2210+
getResourceAsStream("complex-lateral-select-request.txt"),
22112211
Charset.forName("UTF-8"));
22122212
Select select = (Select) parserManager.parse(new StringReader(stmt));
22132213
assertEquals("SELECT O.ORDERID, O.CUSTNAME, OL.LINETOTAL, OC.ORDCHGTOTAL, OT.TAXTOTAL FROM ORDERS O, LATERAL(SELECT SUM(NETAMT) AS LINETOTAL FROM ORDERLINES LINES WHERE LINES.ORDERID = O.ORDERID) AS OL, LATERAL(SELECT SUM(CHGAMT) AS ORDCHGTOTAL FROM ORDERCHARGES CHARGES WHERE LINES.ORDERID = O.ORDERID) AS OC, LATERAL(SELECT SUM(TAXAMT) AS TAXTOTAL FROM ORDERTAXES TAXES WHERE TAXES.ORDERID = O.ORDERID) AS OT", select.
@@ -2637,7 +2637,7 @@ public void testJsonExpression() throws JSQLParserException {
26372637
assertStatementCanBeDeparsedAs(select, statement, true);
26382638
}
26392639
}
2640-
2640+
26412641
@Test
26422642
public void testJsonExpressionWithIntegerParameterIssue909() throws JSQLParserException {
26432643
assertSqlCanBeParsedAndDeparsed("select uc.\"id\", u.nickname, u.avatar, b.title, uc.images, uc.created_at as createdAt from library.ugc_comment uc INNER JOIN library.book b on (uc.books_id ->> 0)::INTEGER = b.\"id\" INNER JOIN library.users u ON uc.user_id = u.user_id where uc.id = 1", true);
@@ -3210,8 +3210,8 @@ public void testForUpdateWaitParseDeparse() throws JSQLParserException {
32103210
}
32113211

32123212
/**
3213-
* Validates that a SELECT with FOR UPDATE WAIT <TIMEOUT> correctly sets a {@link Wait} with the
3214-
* correct timeout value.
3213+
* Validates that a SELECT with FOR UPDATE WAIT <TIMEOUT> correctly sets a {@link Wait} with the correct timeout
3214+
* value.
32153215
*/
32163216
@Test
32173217
public void testForUpdateWaitWithTimeout() throws JSQLParserException {
@@ -3257,17 +3257,17 @@ public void testMysqlMultipleIndexHints() throws JSQLParserException {
32573257
assertSqlCanBeParsedAndDeparsed("SELECT column FROM testtable AS t0 IGNORE INDEX (index1,index2)");
32583258
assertSqlCanBeParsedAndDeparsed("SELECT column FROM testtable AS t0 FORCE INDEX (index1,index2)");
32593259
}
3260-
3260+
32613261
@Test
32623262
public void testSqlServerHints() throws JSQLParserException {
32633263
assertSqlCanBeParsedAndDeparsed("SELECT * FROM TB_Sys_Pedido WITH (NOLOCK) WHERE ID_Pedido = :ID_Pedido");
32643264
}
3265-
3265+
32663266
@Test
32673267
public void testSqlServerHintsWithIndexIssue915() throws JSQLParserException {
32683268
assertSqlCanBeParsedAndDeparsed("SELECT 1 FROM tableName1 WITH (INDEX (idx1), NOLOCK)");
32693269
}
3270-
3270+
32713271
@Test
32723272
public void testSqlServerHintsWithIndexIssue915_2() throws JSQLParserException {
32733273
assertSqlCanBeParsedAndDeparsed("SELECT 1 FROM tableName1 AS t1 WITH (INDEX (idx1)) JOIN tableName2 AS t2 WITH (INDEX (idx2)) ON t1.id = t2.id");
@@ -3360,7 +3360,7 @@ public void testIssue572TaskReplacement() throws JSQLParserException {
33603360

33613361
@Test
33623362
public void testIssue566LargeView() throws IOException, JSQLParserException {
3363-
String stmt = IOUtils.toString(SelectTest.class.getResourceAsStream("large-sql-issue-566.txt"),
3363+
String stmt = IOUtils.toString(SelectTest.class.getResourceAsStream("large-sql-issue-566.txt"),
33643364
Charset.forName("UTF-8"));
33653365
assertSqlCanBeParsedAndDeparsed(stmt, true);
33663366
}
@@ -3518,7 +3518,7 @@ public void testMultiPartNamesIssue163() throws JSQLParserException {
35183518
public void testMultiPartNamesIssue608() throws JSQLParserException {
35193519
assertSqlCanBeParsedAndDeparsed("SELECT @@sessions.tx_read_only");
35203520
}
3521-
3521+
35223522
@Test
35233523
public void testMultiPartNamesForFunctionsIssue944() throws JSQLParserException {
35243524
assertSqlCanBeParsedAndDeparsed("SELECT pg_catalog.now()");
@@ -4053,7 +4053,7 @@ public void testCrossApplyIssue344() throws JSQLParserException {
40534053
+ " else calc1.student_full_name end as summary\n"
40544054
+ ") calc2", true);
40554055
}
4056-
4056+
40574057
@Test
40584058
public void testOuterApplyIssue930() throws JSQLParserException {
40594059
assertSqlCanBeParsedAndDeparsed("SELECT * FROM mytable D OUTER APPLY (SELECT * FROM mytable2 E WHERE E.ColID = D.ColID) A");
@@ -4087,117 +4087,120 @@ public void testCaseWithComplexWhenExpression() throws JSQLParserException {
40874087
+ "ELSE 1 = 1\n"
40884088
+ "END\n", true);
40894089
}
4090-
4090+
40914091
@Test
40924092
public void testOrderKeywordIssue932() throws JSQLParserException {
40934093
assertSqlCanBeParsedAndDeparsed("SELECT order FROM tmp3");
40944094
assertSqlCanBeParsedAndDeparsed("SELECT tmp3.order FROM tmp3");
40954095
}
4096-
4096+
40974097
@Test
40984098
public void testOrderKeywordIssue932_2() throws JSQLParserException {
40994099
assertSqlCanBeParsedAndDeparsed("SELECT group FROM tmp3");
41004100
assertSqlCanBeParsedAndDeparsed("SELECT tmp3.group FROM tmp3");
41014101
}
4102-
4102+
41034103
@Test
41044104
public void testTableFunctionInExprIssue923() throws JSQLParserException {
41054105
assertSqlCanBeParsedAndDeparsed("SELECT * FROM mytable WHERE func(a) IN func(b)");
41064106
}
4107-
4107+
41084108
// @Test
41094109
// public void testTableFunctionInExprIssue923_2() throws JSQLParserException, IOException {
41104110
// String stmt = IOUtils.toString(
41114111
// SelectTest.class.getResourceAsStream("large-sql-issue-923.txt"), "UTF-8")
41124112
// .replace("@Prompt", "MyFunc");
41134113
// assertSqlCanBeParsedAndDeparsed(stmt, true);
41144114
// }
4115-
41164115
@Test
41174116
public void testTableFunctionInExprIssue923_3() throws JSQLParserException, IOException {
41184117
String stmt = IOUtils.toString(
41194118
SelectTest.class.getResourceAsStream("large-sql-issue-923-2.txt"), "UTF-8");
41204119
assertSqlCanBeParsedAndDeparsed(stmt, true);
41214120
}
4122-
4121+
41234122
@Test
41244123
public void testTableFunctionInExprIssue923_4() throws JSQLParserException {
41254124
assertSqlCanBeParsedAndDeparsed("SELECT MAX(CASE WHEN DUPLICATE_CLAIM_NUMBER IN '1' THEN COALESCE(CLAIM_STATUS2,CLAIM_STATUS1) ELSE NULL END) AS DUPE_1_KINAL_CLAIM_STATUS", true);
41264125
}
4127-
4126+
41284127
@Test
41294128
public void testTableFunctionInExprIssue923_5() throws JSQLParserException {
41304129
assertSqlCanBeParsedAndDeparsed("SELECT CASE WHEN DUPLICATE_CLAIM_NUMBER IN '1' THEN COALESCE(CLAIM_STATUS2,CLAIM_STATUS1) ELSE NULL END", true);
41314130
}
4132-
4131+
41334132
@Test
41344133
public void testTableFunctionInExprIssue923_6() throws JSQLParserException {
41354134
assertSqlCanBeParsedAndDeparsed("SELECT * FROM mytable WHERE func(a) IN '1'");
41364135
}
4137-
4136+
41384137
@Test
41394138
public void testKeyWordCreateIssue941() throws JSQLParserException {
41404139
assertSqlCanBeParsedAndDeparsed("SELECT b.create FROM table b WHERE b.id = 1");
41414140
}
4142-
4143-
4141+
41444142
@Test
41454143
public void testKeyWordCreateIssue941_2() throws JSQLParserException {
41464144
assertSqlCanBeParsedAndDeparsed("select f.select from `from` f", true);
41474145
}
4148-
4146+
41494147
@Test
41504148
public void testCurrentIssue940() throws JSQLParserException {
41514149
assertSqlCanBeParsedAndDeparsed("SELECT date(current) AS test_date FROM systables WHERE tabid = 1");
41524150
}
4153-
4151+
41544152
@Test
41554153
public void testKeyWordView() throws JSQLParserException {
41564154
assertSqlCanBeParsedAndDeparsed("SELECT ma.m_a_id, ma.anounsment, ma.max_view, ma.end_date, ma.view FROM member_anounsment as ma WHERE ( ( (ma.end_date > now() ) AND (ma.max_view >= ma.view) ) AND ( (ma.member_id='xxx') ) )", true);
41574155
}
4158-
4156+
41594157
@Test
41604158
public void testPreserveAndOperator() throws JSQLParserException {
41614159
assertSqlCanBeParsedAndDeparsed("SELECT * FROM mytable WHERE 1 = 2 && 2 = 3");
41624160
}
4163-
4161+
41644162
@Test
41654163
public void testPreserveAndOperator_2() throws JSQLParserException {
41664164
assertSqlCanBeParsedAndDeparsed("SELECT * FROM mytable WHERE (field_1 && ?)");
41674165
}
4168-
4166+
41694167
@Test
41704168
public void testCheckDateFunctionIssue() throws JSQLParserException {
41714169
assertSqlCanBeParsedAndDeparsed("SELECT DATEDIFF(NOW(), MIN(s.startTime))");
41724170
}
4173-
4171+
41744172
@Test
41754173
public void testCheckDateFunctionIssue_2() throws JSQLParserException {
41764174
assertSqlCanBeParsedAndDeparsed("SELECT DATE_SUB(NOW(), INTERVAL :days DAY)");
41774175
}
4178-
4176+
41794177
@Test
41804178
public void testCheckDateFunctionIssue_3() throws JSQLParserException {
41814179
assertSqlCanBeParsedAndDeparsed("SELECT DATE_SUB(NOW(), INTERVAL 1 DAY)");
41824180
}
4183-
4181+
41844182
@Test
41854183
public void testCheckColonVariable() throws JSQLParserException {
41864184
assertSqlCanBeParsedAndDeparsed("SELECT * FROM mytable WHERE (col1, col2) IN ((:qp0, :qp1), (:qp2, :qp3))");
41874185
}
4188-
4186+
41894187
@Test
41904188
public void testVariableAssignment() throws JSQLParserException {
41914189
assertSqlCanBeParsedAndDeparsed("SELECT @SELECTVariable = 2");
41924190
}
4193-
4191+
41944192
@Test
41954193
public void testVariableAssignment2() throws JSQLParserException {
41964194
assertSqlCanBeParsedAndDeparsed("SELECT @var = 1");
41974195
}
4198-
4196+
41994197
@Test
42004198
public void testVariableAssignment3() throws JSQLParserException {
42014199
assertSqlCanBeParsedAndDeparsed("SELECT @varname := @varname + 1 AS counter");
42024200
}
4201+
4202+
@Test
4203+
public void testKeyWordOfIssue1029() throws JSQLParserException {
4204+
assertSqlCanBeParsedAndDeparsed("SELECT of.Full_Name_c AS FullName FROM comdb.Offer_c AS of");
4205+
}
42034206
}

0 commit comments

Comments
 (0)