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

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

Repository: lucene-solr
Updated Branches:
  refs/heads/master dc6b1a68d -> 3d47612b0


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/master
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()) {


[3/3] lucene-solr git commit: SOLR-8652: Lower case the limit clause

Posted by jb...@apache.org.
SOLR-8652: Lower case the limit clause


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

Branch: refs/heads/master
Commit: 3d47612b04dae27080a5960088aa5e7303f14874
Parents: 75a8179
Author: jbernste <jb...@apache.org>
Authored: Sat Feb 6 21:42:01 2016 -0500
Committer: jbernste <jb...@apache.org>
Committed: Sat Feb 6 21:42:01 2016 -0500

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


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3d47612b/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 e236c83..f859831 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
@@ -361,6 +361,6 @@ class StatementImpl implements Statement {
   private boolean containsLimit(String sql) {
     String[] tokens = sql.split("\\s+");
     String secondToLastToken = tokens[tokens.length-2];
-    return ("limit").equals(secondToLastToken);
+    return ("limit").equals(secondToLastToken.toLowerCase(Locale.getDefault()));
   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3d47612b/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 b3d7ae9..6d9c51a 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
@@ -177,8 +177,8 @@ public class JdbcTest extends AbstractFullDistribZkTestBase {
     assert(!rs.next());
     stmt.close();
 
-    //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");
+    //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()) {
       ++count;


[2/3] lucene-solr git commit: SOLR-8652: Check if second to last token is limit to test for limit clause

Posted by jb...@apache.org.
SOLR-8652: Check if second to last token is limit to test for limit clause


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

Branch: refs/heads/master
Commit: 75a81795b8c8370cc754b60801fc33cc020efb30
Parents: ba20faa
Author: jbernste <jb...@apache.org>
Authored: Sat Feb 6 21:25:05 2016 -0500
Committer: jbernste <jb...@apache.org>
Committed: Sat Feb 6 21:25:05 2016 -0500

----------------------------------------------------------------------
 .../org/apache/solr/client/solrj/io/sql/StatementImpl.java  | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/75a81795/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 1927029..e236c83 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
@@ -26,6 +26,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.HashMap;
 import java.util.Random;
@@ -59,7 +60,7 @@ class StatementImpl implements Statement {
         this.currentResultSet = null;
       }
 
-      if(maxRows > 0 && !(sql.toLowerCase()).contains("limit")) {
+      if(maxRows > 0 && !containsLimit(sql)) {
         sql = sql + " limit "+Integer.toString(maxRows);
       }
 
@@ -356,4 +357,10 @@ class StatementImpl implements Statement {
   public boolean isWrapperFor(Class<?> iface) throws SQLException {
     throw new UnsupportedOperationException();
   }
+
+  private boolean containsLimit(String sql) {
+    String[] tokens = sql.split("\\s+");
+    String secondToLastToken = tokens[tokens.length-2];
+    return ("limit").equals(secondToLastToken);
+  }
 }
\ No newline at end of file