@@ -80,6 +80,7 @@ import java.util.*;
8080 * The parser generated by JavaCC
8181 */
8282public class CCJSqlParser {
83+ int jdbcParameterIndex = 0;
8384 boolean errorRecovery = false;
8485 List<ParseException> parseErrors = new ArrayList<ParseException>();
8586
@@ -1458,7 +1459,7 @@ Limit LimitWithOffset():
14581459 (
14591460 token=<S_LONG> { limit.setOffset(new LongValue(token.image)); }
14601461 |
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)); } ]
14621463 |
14631464 ":" { limit.setOffset(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)limit.getOffset()).setName(token.image); } ]
14641465
@@ -1468,7 +1469,7 @@ Limit LimitWithOffset():
14681469 (
14691470 token=<S_LONG> { limit.setRowCount(new LongValue(token.image)); }
14701471 |
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)); } ]
14721473 |
14731474 ":" { limit.setRowCount(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)limit.getRowCount()).setName(token.image); } ]
14741475 )
@@ -1491,7 +1492,7 @@ Limit PlainLimit():
14911492 (
14921493 token=<S_LONG> { limit.setRowCount(new LongValue(token.image)); }
14931494 |
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)); } ]
14951496 |
14961497 ":" { limit.setRowCount(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)limit.getRowCount()).setName(token.image); } ]
14971498 |
@@ -1557,7 +1558,7 @@ Top Top():
15571558 (
15581559 token=<S_LONG> { top.setExpression(new LongValue(token.image)); }
15591560 |
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)); } ]
15611562 |
15621563 ":" { top.setExpression(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)top.getExpression()).setName(token.image); } ]
15631564 |
@@ -1582,7 +1583,7 @@ Skip Skip():
15821583 (
15831584 token=<S_LONG> { skip.setRowCount(Long.parseLong(token.image)); }
15841585 | 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)); } ]
15861587 )
15871588 {
15881589 return skip;
@@ -1618,7 +1619,7 @@ First First():
16181619 (
16191620 token=<S_LONG> { first.setRowCount(Long.parseLong(token.image)); }
16201621 | 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)); } ]
16221623 )
16231624 {
16241625 return first;
@@ -2131,7 +2132,7 @@ Expression PrimaryExpression():
21312132
21322133 | retval=CaseWhenExpression()
21332134
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)); } ]
21352136
21362137 | LOOKAHEAD(3) [sign="+" | sign="-"] retval=JdbcNamedParameter()
21372138
0 commit comments