diff --git a/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClient.java b/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClient.java index c800ff0ae07cb3b5e8a17011b5334ead46138b32..3cb157028c98506bf3d249dfda79f7ddf5f09eef 100644 --- a/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClient.java +++ b/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClient.java @@ -304,8 +304,10 @@ public class JdbcDBClient extends DB implements JdbcDBClientConstants { select.append(scanType.tableName); select.append(" WHERE "); select.append(PRIMARY_KEY); - select.append(" >= "); - select.append("?;"); + select.append(" >= ?"); + select.append(" ORDER BY "); + select.append(PRIMARY_KEY); + select.append(" LIMIT ?;"); PreparedStatement scanStatement = getShardConnectionByKey(key).prepareStatement(select.toString()); if (this.jdbcFetchSize != null) scanStatement.setFetchSize(this.jdbcFetchSize); PreparedStatement stmt = cachedStatements.putIfAbsent(scanType, scanStatement); @@ -364,6 +366,7 @@ public class JdbcDBClient extends DB implements JdbcDBClientConstants { scanStatement = createAndCacheScanStatement(type, startKey); } scanStatement.setString(1, startKey); + scanStatement.setInt(2, recordcount); ResultSet resultSet = scanStatement.executeQuery(); for (int i = 0; i < recordcount && resultSet.next(); i++) { if (result != null && fields != null) {