@@ -80,6 +80,7 @@ import java.util.*;
80
80
* The parser generated by JavaCC
81
81
*/
82
82
public class CCJSqlParser {
83
+ int jdbcParameterIndex = 0;
83
84
boolean errorRecovery = false;
84
85
List<ParseException> parseErrors = new ArrayList<ParseException>();
85
86
@@ -1458,7 +1459,7 @@ Limit LimitWithOffset():
1458
1459
(
1459
1460
token=<S_LONG> { limit.setOffset(new LongValue(token.image)); }
1460
1461
|
1461
- "?" { limit.setOffset(new JdbcParameter()); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)limit.getOffset()).setIndex(Integer.valueOf(token.image)); } ]
1462
+ "?" { limit.setOffset(new JdbcParameter(++jdbcParameterIndex, false )); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)limit.getOffset()).setUseFixedIndex(true); ((JdbcParameter)limit.getOffset()).setIndex(Integer.valueOf(token.image)); } ]
1462
1463
|
1463
1464
":" { limit.setOffset(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)limit.getOffset()).setName(token.image); } ]
1464
1465
@@ -1468,7 +1469,7 @@ Limit LimitWithOffset():
1468
1469
(
1469
1470
token=<S_LONG> { limit.setRowCount(new LongValue(token.image)); }
1470
1471
|
1471
- "?" { limit.setRowCount(new JdbcParameter()); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)limit.getRowCount()).setIndex(Integer.valueOf(token.image)); } ]
1472
+ "?" { limit.setRowCount(new JdbcParameter(++jdbcParameterIndex, false )); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)limit.getRowCount()).setUseFixedIndex(true); ((JdbcParameter)limit.getRowCount()).setIndex(Integer.valueOf(token.image)); } ]
1472
1473
|
1473
1474
":" { limit.setRowCount(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)limit.getRowCount()).setName(token.image); } ]
1474
1475
)
@@ -1491,7 +1492,7 @@ Limit PlainLimit():
1491
1492
(
1492
1493
token=<S_LONG> { limit.setRowCount(new LongValue(token.image)); }
1493
1494
|
1494
- "?" { limit.setRowCount(new JdbcParameter()); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)limit.getRowCount()).setIndex(Integer.valueOf(token.image)); } ]
1495
+ "?" { limit.setRowCount(new JdbcParameter(++jdbcParameterIndex, false )); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)limit.getRowCount()).setUseFixedIndex(true); ((JdbcParameter)limit.getRowCount()).setIndex(Integer.valueOf(token.image)); } ]
1495
1496
|
1496
1497
":" { limit.setRowCount(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)limit.getRowCount()).setName(token.image); } ]
1497
1498
|
@@ -1557,7 +1558,7 @@ Top Top():
1557
1558
(
1558
1559
token=<S_LONG> { top.setExpression(new LongValue(token.image)); }
1559
1560
|
1560
- "?" { top.setExpression(new JdbcParameter()); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)(top.getExpression())).setIndex(Integer.valueOf(token.image)); } ]
1561
+ "?" { top.setExpression(new JdbcParameter(++jdbcParameterIndex, false )); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)(top.getExpression())).setUseFixedIndex(true); ((JdbcParameter)(top.getExpression())).setIndex(Integer.valueOf(token.image)); } ]
1561
1562
|
1562
1563
":" { top.setExpression(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)top.getExpression()).setName(token.image); } ]
1563
1564
|
@@ -1582,7 +1583,7 @@ Skip Skip():
1582
1583
(
1583
1584
token=<S_LONG> { skip.setRowCount(Long.parseLong(token.image)); }
1584
1585
| token=<S_IDENTIFIER> { skip.setVariable(token.image); }
1585
- | "?" { skip.setJdbcParameter(new JdbcParameter()); } [ LOOKAHEAD(2) token = <S_LONG> { skip.getJdbcParameter().setIndex(Integer.valueOf(token.image)); } ]
1586
+ | "?" { skip.setJdbcParameter(new JdbcParameter(++jdbcParameterIndex, false )); } [ LOOKAHEAD(2) token = <S_LONG> { skip.getJdbcParameter().setUseFixedIndex(true); skip.getJdbcParameter().setIndex(Integer.valueOf(token.image)); } ]
1586
1587
)
1587
1588
{
1588
1589
return skip;
@@ -1618,7 +1619,7 @@ First First():
1618
1619
(
1619
1620
token=<S_LONG> { first.setRowCount(Long.parseLong(token.image)); }
1620
1621
| token=<S_IDENTIFIER> { first.setVariable(token.image); }
1621
- | "?" { first.setJdbcParameter(new JdbcParameter()); } [ LOOKAHEAD(2) token = <S_LONG> { first.getJdbcParameter().setIndex(Integer.valueOf(token.image)); } ]
1622
+ | "?" { first.setJdbcParameter(new JdbcParameter(++jdbcParameterIndex, false )); } [ LOOKAHEAD(2) token = <S_LONG> { first.getJdbcParameter().setUseFixedIndex(true); first.getJdbcParameter().setIndex(Integer.valueOf(token.image)); } ]
1622
1623
)
1623
1624
{
1624
1625
return first;
@@ -2131,7 +2132,7 @@ Expression PrimaryExpression():
2131
2132
2132
2133
| retval=CaseWhenExpression()
2133
2134
2134
- | LOOKAHEAD(3) [sign="+" | sign="-"] "?" { retval = new JdbcParameter(); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)retval).setIndex(Integer.valueOf(token.image)); } ]
2135
+ | LOOKAHEAD(3) [sign="+" | sign="-"] "?" { retval = new JdbcParameter(++jdbcParameterIndex, false ); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)retval).setUseFixedIndex(true); ((JdbcParameter)retval).setIndex(Integer.valueOf(token.image)); } ]
2135
2136
2136
2137
| LOOKAHEAD(3) [sign="+" | sign="-"] retval=JdbcNamedParameter()
2137
2138
0 commit comments