Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/limit/RowNumberDecoratorResultSetMerger.java +2 −2 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ public final class RowNumberDecoratorResultSetMerger extends AbstractDecoratorRe } private boolean skipOffset() throws SQLException { int end = limit.isIncludeOffset() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); int end = limit.getOffset().isBoundOpened() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); for (int i = 0; i < end; i++) { if (!getResultSetMerger().next()) { return true; Loading @@ -61,7 +61,7 @@ public final class RowNumberDecoratorResultSetMerger extends AbstractDecoratorRe if (limit.getRowCountValue() < 0) { return getResultSetMerger().next(); } if (limit.isIncludeRowCount()) { if (limit.getRowCount().isBoundOpened()) { return rowNumber++ <= limit.getRowCountValue() && getResultSetMerger().next(); } return rowNumber++ < limit.getRowCountValue() && getResultSetMerger().next(); Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/limit/TopAndRowNumberDecoratorResultSetMerger.java +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ public final class TopAndRowNumberDecoratorResultSetMerger extends AbstractDecor } private boolean skipOffset() throws SQLException { int end = limit.isIncludeOffset() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); int end = limit.getOffset().isBoundOpened() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); for (int i = 0; i < end; i++) { if (!getResultSetMerger().next()) { return true; Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/clause/WhereClauseParser.java +4 −6 Original line number Diff line number Diff line Loading @@ -182,13 +182,12 @@ public class WhereClauseParser implements SQLClauseParser { } if (sqlExpression instanceof SQLNumberExpression) { int rowCount = ((SQLNumberExpression) sqlExpression).getNumber().intValue(); selectStatement.getLimit().setRowCount(new LimitValue(rowCount, -1)); selectStatement.getLimit().setRowCount(new LimitValue(rowCount, -1, includeRowCount)); selectStatement.getSqlTokens().add(new RowCountToken( lexerEngine.getCurrentToken().getEndPosition() - String.valueOf(rowCount).length() - lexerEngine.getCurrentToken().getLiterals().length(), rowCount)); } else if (sqlExpression instanceof SQLPlaceholderExpression) { selectStatement.getLimit().setRowCount(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex())); selectStatement.getLimit().setRowCount(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex(), includeRowCount)); } selectStatement.getLimit().setIncludeRowCount(includeRowCount); } private void parseOffsetCondition(final SelectStatement selectStatement, final boolean includeOffset) { Loading @@ -198,13 +197,12 @@ public class WhereClauseParser implements SQLClauseParser { } if (sqlExpression instanceof SQLNumberExpression) { int offset = ((SQLNumberExpression) sqlExpression).getNumber().intValue(); selectStatement.getLimit().setOffset(new LimitValue(offset, -1)); selectStatement.getLimit().setOffset(new LimitValue(offset, -1, includeOffset)); selectStatement.getSqlTokens().add(new OffsetToken( lexerEngine.getCurrentToken().getEndPosition() - String.valueOf(offset).length() - lexerEngine.getCurrentToken().getLiterals().length(), offset)); } else if (sqlExpression instanceof SQLPlaceholderExpression) { selectStatement.getLimit().setOffset(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex())); selectStatement.getLimit().setOffset(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex(), includeOffset)); } selectStatement.getLimit().setIncludeOffset(includeOffset); } protected Keyword[] getCustomizedOtherConditionOperators() { Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/context/limit/Limit.java +0 −4 Original line number Diff line number Diff line Loading @@ -45,10 +45,6 @@ public final class Limit { private LimitValue rowCount; private boolean includeOffset; private boolean includeRowCount; /** * Get offset value. * Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/context/limit/LimitValue.java +2 −0 Original line number Diff line number Diff line Loading @@ -36,4 +36,6 @@ public final class LimitValue { private int value; private int index; private boolean boundOpened; } Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/limit/RowNumberDecoratorResultSetMerger.java +2 −2 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ public final class RowNumberDecoratorResultSetMerger extends AbstractDecoratorRe } private boolean skipOffset() throws SQLException { int end = limit.isIncludeOffset() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); int end = limit.getOffset().isBoundOpened() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); for (int i = 0; i < end; i++) { if (!getResultSetMerger().next()) { return true; Loading @@ -61,7 +61,7 @@ public final class RowNumberDecoratorResultSetMerger extends AbstractDecoratorRe if (limit.getRowCountValue() < 0) { return getResultSetMerger().next(); } if (limit.isIncludeRowCount()) { if (limit.getRowCount().isBoundOpened()) { return rowNumber++ <= limit.getRowCountValue() && getResultSetMerger().next(); } return rowNumber++ < limit.getRowCountValue() && getResultSetMerger().next(); Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/limit/TopAndRowNumberDecoratorResultSetMerger.java +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ public final class TopAndRowNumberDecoratorResultSetMerger extends AbstractDecor } private boolean skipOffset() throws SQLException { int end = limit.isIncludeOffset() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); int end = limit.getOffset().isBoundOpened() ? limit.getOffsetValue() - 1 : limit.getOffsetValue(); for (int i = 0; i < end; i++) { if (!getResultSetMerger().next()) { return true; Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/clause/WhereClauseParser.java +4 −6 Original line number Diff line number Diff line Loading @@ -182,13 +182,12 @@ public class WhereClauseParser implements SQLClauseParser { } if (sqlExpression instanceof SQLNumberExpression) { int rowCount = ((SQLNumberExpression) sqlExpression).getNumber().intValue(); selectStatement.getLimit().setRowCount(new LimitValue(rowCount, -1)); selectStatement.getLimit().setRowCount(new LimitValue(rowCount, -1, includeRowCount)); selectStatement.getSqlTokens().add(new RowCountToken( lexerEngine.getCurrentToken().getEndPosition() - String.valueOf(rowCount).length() - lexerEngine.getCurrentToken().getLiterals().length(), rowCount)); } else if (sqlExpression instanceof SQLPlaceholderExpression) { selectStatement.getLimit().setRowCount(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex())); selectStatement.getLimit().setRowCount(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex(), includeRowCount)); } selectStatement.getLimit().setIncludeRowCount(includeRowCount); } private void parseOffsetCondition(final SelectStatement selectStatement, final boolean includeOffset) { Loading @@ -198,13 +197,12 @@ public class WhereClauseParser implements SQLClauseParser { } if (sqlExpression instanceof SQLNumberExpression) { int offset = ((SQLNumberExpression) sqlExpression).getNumber().intValue(); selectStatement.getLimit().setOffset(new LimitValue(offset, -1)); selectStatement.getLimit().setOffset(new LimitValue(offset, -1, includeOffset)); selectStatement.getSqlTokens().add(new OffsetToken( lexerEngine.getCurrentToken().getEndPosition() - String.valueOf(offset).length() - lexerEngine.getCurrentToken().getLiterals().length(), offset)); } else if (sqlExpression instanceof SQLPlaceholderExpression) { selectStatement.getLimit().setOffset(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex())); selectStatement.getLimit().setOffset(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex(), includeOffset)); } selectStatement.getLimit().setIncludeOffset(includeOffset); } protected Keyword[] getCustomizedOtherConditionOperators() { Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/context/limit/Limit.java +0 −4 Original line number Diff line number Diff line Loading @@ -45,10 +45,6 @@ public final class Limit { private LimitValue rowCount; private boolean includeOffset; private boolean includeRowCount; /** * Get offset value. * Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/parsing/parser/context/limit/LimitValue.java +2 −0 Original line number Diff line number Diff line Loading @@ -36,4 +36,6 @@ public final class LimitValue { private int value; private int index; private boolean boundOpened; }