Skip to content

Commit 1a77106

Browse files
committed
1 parent 8037af6 commit 1a77106

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Also I would like to know about needed examples or documentation stuff.
4949

5050
## Extensions in the latest SNAPSHOT version 1.2
5151

52+
* support for **<<** and **>>** left and right shift operations
5253
* breaking **API** change: merge of *within group* and *over* (window expressions)
5354
* first support for *use* statements
5455
* first support for *call* statements

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2358,12 +2358,12 @@ Expression PrimaryExpression():
23582358

23592359
| retval=CaseWhenExpression()
23602360

2361-
| LOOKAHEAD(2) "?" { retval = new JdbcParameter(++jdbcParameterIndex, false); }
2362-
[ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)retval).setUseFixedIndex(true); ((JdbcParameter)retval).setIndex(Integer.valueOf(token.image)); } ]
2361+
| "?" { retval = new JdbcParameter(++jdbcParameterIndex, false); }
2362+
[ token = <S_LONG> { ((JdbcParameter)retval).setUseFixedIndex(true); ((JdbcParameter)retval).setIndex(Integer.valueOf(token.image)); } ]
23632363

23642364
| LOOKAHEAD(2) retval=JdbcNamedParameter()
23652365

2366-
| LOOKAHEAD(2) retval=UserVariable()
2366+
| retval=UserVariable()
23672367

23682368
| LOOKAHEAD(2) retval=NumericBind()
23692369

@@ -2394,7 +2394,7 @@ Expression PrimaryExpression():
23942394

23952395
| LOOKAHEAD("(" SimpleExpression() ")") "(" retval=SimpleExpression() ")" {retval = new Parenthesis(retval); }
23962396

2397-
| LOOKAHEAD(3) "(" retval=SubSelect() ")"
2397+
| LOOKAHEAD(3) "(" retval=SubSelect() ")"
23982398

23992399
| token=<S_CHAR_LITERAL> { retval = new StringValue(token.image); }
24002400

@@ -2699,8 +2699,6 @@ RowConstructor RowConstructor(): {
26992699
ExpressionList list = null;
27002700
RowConstructor rowConstructor = new RowConstructor();
27012701
} {
2702-
//("(" list =SimpleExpressionListAtLeastTwoItems() ")"
2703-
//|
27042702
[ <K_ROW> { rowConstructor.setName("ROW");} ]
27052703
"("
27062704
list = SimpleExpressionList()

src/test/java/net/sf/jsqlparser/test/update/UpdateTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,9 @@ public void testUpdateDoesNotAllowLimitOffset() throws JSQLParserException {
111111
public void testUpdateWithFunctions() throws JSQLParserException {
112112
assertSqlCanBeParsedAndDeparsed("UPDATE tablename SET col = SUBSTRING(col2, 1, 2)");
113113
}
114+
115+
@Test
116+
public void testUpdateIssue508LeftShift() throws JSQLParserException {
117+
assertSqlCanBeParsedAndDeparsed("UPDATE user SET num = 1 << 1 WHERE id = 1");
118+
}
114119
}

0 commit comments

Comments
 (0)