提交 c718276f 编写于 作者: T terrymanu

fix rewrite row count for literal

上级 e36b5748
......@@ -38,6 +38,7 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.expression.SQLPropertyEx
import com.dangdang.ddframe.rdb.sharding.parsing.parser.expression.SQLTextExpression;
import com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.SQLStatement;
import com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.select.SelectStatement;
import com.dangdang.ddframe.rdb.sharding.parsing.parser.token.OffsetToken;
import com.dangdang.ddframe.rdb.sharding.parsing.parser.token.TableToken;
import com.dangdang.ddframe.rdb.sharding.util.SQLUtil;
import com.google.common.base.Optional;
......@@ -355,7 +356,10 @@ public class SQLParser extends AbstractParser {
}
} else if (Symbol.GT == symbol || Symbol.GT_EQ == symbol) {
if (sqlExpression instanceof SQLNumberExpression) {
selectStatement.getLimit().setOffset(new LimitValue(((SQLNumberExpression) sqlExpression).getNumber().intValue(), -1));
int offset = ((SQLNumberExpression) sqlExpression).getNumber().intValue();
selectStatement.getLimit().setOffset(new LimitValue(offset, -1));
selectStatement.getSqlTokens().add(
new OffsetToken(getLexer().getCurrentToken().getEndPosition() - String.valueOf(offset).length() - getLexer().getCurrentToken().getLiterals().length(), offset));
} else if (sqlExpression instanceof SQLPlaceholderExpression) {
selectStatement.getLimit().setOffset(new LimitValue(-1, ((SQLPlaceholderExpression) sqlExpression).getIndex()));
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册