Index: modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java (revision e159fdee0152a6df1bbf4dafc3d18a284e86a57e) +++ modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java (revision ) @@ -34,6 +34,14 @@ } /** {@inheritDoc} */ + @Override public String loadCacheSelectRangeQuery(String fullTblName, Collection keyCols) { + String cols = mkString(keyCols, ","); + + return String.format("SELECT %1$s FROM (SELECT %1$s, ROW_NUMBER() OVER(ORDER BY %1$s) AS rn FROM %2$s) tbl WHERE rn %% ? = 0 ORDER BY %1$s", + cols, fullTblName); + } + + /** {@inheritDoc} */ @Override public boolean hasMerge() { return true; } Index: modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java (revision e159fdee0152a6df1bbf4dafc3d18a284e86a57e) +++ modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java (revision ) @@ -157,8 +157,8 @@ @Override public String loadCacheSelectRangeQuery(String fullTblName, Collection keyCols) { String cols = mkString(keyCols, ","); - return String.format("SELECT %s FROM (SELECT %s, ROWNUM() AS rn FROM %s ORDER BY %s) WHERE mod(rn, ?) = 0", - cols, cols, fullTblName, cols); + return String.format("SELECT %1$s FROM (SELECT %1$s, ROW_NUMBER() OVER() AS rn FROM (SELECT %1$s FROM %2$s ORDER BY %1$s) AS tbl) AS tbl WHERE mod(rn, ?) = 0", + cols, fullTblName); } /** {@inheritDoc} */ Index: modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java (revision e159fdee0152a6df1bbf4dafc3d18a284e86a57e) +++ modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java (revision ) @@ -29,6 +29,14 @@ private static final long serialVersionUID = 0L; /** {@inheritDoc} */ + @Override public String loadCacheSelectRangeQuery(String fullTblName, Collection keyCols) { + String cols = mkString(keyCols, ","); + + return String.format("SELECT %1$s FROM (SELECT %1$s, ROW_NUMBER() OVER(ORDER BY %1$s) AS rn FROM %2$s) WHERE mod(rn, ?) = 0 ORDER BY %1$s", + cols, fullTblName); + } + + /** {@inheritDoc} */ @Override public boolean hasMerge() { return true; } Index: modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java (revision e159fdee0152a6df1bbf4dafc3d18a284e86a57e) +++ modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java (revision ) @@ -34,6 +34,14 @@ } /** {@inheritDoc} */ + @Override public String loadCacheSelectRangeQuery(String fullTblName, Collection keyCols) { + String cols = mkString(keyCols, ","); + + return String.format("SELECT %1$s FROM (SELECT %1$s, ROWNUM AS rn FROM (SELECT %1$s FROM %2$s ORDER BY %1$s)) WHERE mod(rn, ?) = 0", + cols, fullTblName); + } + + /** {@inheritDoc} */ @Override public String mergeQuery(String fullTblName, Collection keyCols, Collection uniqCols) { Collection cols = F.concat(false, keyCols, uniqCols);