You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2016/02/07 20:45:46 UTC

[09/21] lucene-solr git commit: SOLR-8652: Implement Statement.setMaxRows()

SOLR-8652: Implement Statement.setMaxRows()


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/ba20faa9
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/ba20faa9
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/ba20faa9

Branch: refs/heads/jira/lucene-5438-nrt-replication
Commit: ba20faa9557cdd56d6a696d702fb5a62d9d43f74
Parents: dc6b1a6
Author: jbernste <jb...@apache.org>
Authored: Sat Feb 6 21:03:45 2016 -0500
Committer: jbernste <jb...@apache.org>
Committed: Sat Feb 6 21:03:45 2016 -0500

----------------------------------------------------------------------
 .../org/apache/solr/client/solrj/io/sql/StatementImpl.java  | 9 +++++++--
 .../test/org/apache/solr/client/solrj/io/sql/JdbcTest.java  | 5 +++--
 2 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ba20faa9/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java
index 77cebfe..1927029 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java
@@ -45,6 +45,7 @@ class StatementImpl implements Statement {
   private String currentSQL;
   private ResultSetImpl currentResultSet;
   private SQLWarning currentWarning;
+  private int maxRows;
 
   StatementImpl(ConnectionImpl connection) {
     this.connection = connection;
@@ -58,6 +59,10 @@ class StatementImpl implements Statement {
         this.currentResultSet = null;
       }
 
+      if(maxRows > 0 && !(sql.toLowerCase()).contains("limit")) {
+        sql = sql + " limit "+Integer.toString(maxRows);
+      }
+
       closed = false;  // If closed reopen so Statement can be reused.
       this.currentResultSet = new ResultSetImpl(this, constructStream(sql));
       return this.currentResultSet;
@@ -132,12 +137,12 @@ class StatementImpl implements Statement {
 
   @Override
   public int getMaxRows() throws SQLException {
-    throw new UnsupportedOperationException();
+    return this.maxRows;
   }
 
   @Override
   public void setMaxRows(int max) throws SQLException {
-    throw new UnsupportedOperationException();
+    this.maxRows = max;
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ba20faa9/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
index ba21114..b3d7ae9 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
@@ -166,7 +166,8 @@ public class JdbcTest extends AbstractFullDistribZkTestBase {
     stmt.close();
 
     //Test statement reuse
-    rs = stmt.executeQuery("select id, a_i, a_s, a_f from collection1 order by a_i asc limit 2");
+    stmt.setMaxRows(2);
+    rs = stmt.executeQuery("select id, a_i, a_s, a_f from collection1 order by a_i asc");
     assert(rs.next());
     assert(rs.getLong("a_i") == 0);
     assert(rs.getLong(2) == 0);
@@ -176,7 +177,7 @@ public class JdbcTest extends AbstractFullDistribZkTestBase {
     assert(!rs.next());
     stmt.close();
 
-    //Test simple loop
+    //Test simple loop. Since limit is set it will override the statement maxRows
     rs = stmt.executeQuery("select id, a_i, a_s, a_f from collection1 order by a_i asc limit 100");
     int count = 0;
     while(rs.next()) {