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/01/19 22:25:36 UTC

svn commit: r1725616 - in /lucene/dev/trunk/solr/solrj/src: java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java java/org/apache/solr/client/solrj/io/sql/StatementImpl.java test/org/apache/solr/client/solrj/io/sql/JdbcTest.java

Author: jbernste
Date: Tue Jan 19 21:25:36 2016
New Revision: 1725616

URL: http://svn.apache.org/viewvc?rev=1725616&view=rev
Log:
SOLR-8516, SOLR-8502: Implement ResultSetImpl.getStatement

Modified:
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java?rev=1725616&r1=1725615&r2=1725616&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java Tue Jan 19 21:25:36 2016
@@ -39,29 +39,29 @@ import java.sql.Timestamp;
 import java.util.Calendar;
 import java.util.Map;
 
-import org.apache.solr.client.solrj.io.stream.SolrStream;
 import org.apache.solr.client.solrj.io.Tuple;
+import org.apache.solr.client.solrj.io.stream.SolrStream;
 
 class ResultSetImpl implements ResultSet {
-
-  private SolrStream solrStream;
+  private final StatementImpl statement;
+  private final SolrStream solrStream;
   private Tuple tuple;
   private boolean done;
   private boolean closed;
 
-  ResultSetImpl(SolrStream solrStream) {
-    this.solrStream = solrStream;
+  ResultSetImpl(StatementImpl statement) {
+    this.statement = statement;
+    this.solrStream = statement.getSolrStream();
   }
 
   @Override
   public boolean next() throws SQLException {
     try {
-
       if(done) {
         return false;
       }
 
-      tuple = solrStream.read();
+      tuple = this.solrStream.read();
       if(tuple.EOF) {
         done = true;
         return false;
@@ -640,7 +640,7 @@ class ResultSetImpl implements ResultSet
 
   @Override
   public Statement getStatement() throws SQLException {
-    throw new UnsupportedOperationException();
+    return this.statement;
   }
 
   @Override

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java?rev=1725616&r1=1725615&r2=1725616&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java Tue Jan 19 21:25:36 2016
@@ -50,6 +50,10 @@ class StatementImpl implements Statement
     this.connection = connection;
   }
 
+  public SolrStream getSolrStream() {
+    return this.solrStream;
+  }
+
   @Override
   public ResultSet executeQuery(String sql) throws SQLException {
     try {
@@ -59,7 +63,7 @@ class StatementImpl implements Statement
       context.setSolrClientCache(this.connection.getSolrClientCache());
       this.solrStream.setStreamContext(context);
       this.solrStream.open();
-      return new ResultSetImpl(this.solrStream);
+      return new ResultSetImpl(this);
     } catch(Exception e) {
       throw new SQLException(e);
     }

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java?rev=1725616&r1=1725615&r2=1725616&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java Tue Jan 19 21:25:36 2016
@@ -309,6 +309,7 @@ public class JdbcTest extends AbstractFu
     String collection = DEFAULT_COLLECTION;
     String connectionString = "jdbc:solr://" + zkServer.getZkAddress() + "?collection=" + collection +
         "&username=&password=&testKey1=testValue&testKey2";
+    String sql = "select id, a_i, a_s, a_f from " + collection + " order by a_i desc limit 2";
 
     try (Connection con = DriverManager.getConnection(connectionString)) {
       assertEquals(collection, con.getCatalog());
@@ -320,6 +321,10 @@ public class JdbcTest extends AbstractFu
 
       try (Statement statement = con.createStatement()) {
         assertEquals(con, statement.getConnection());
+
+        try (ResultSet rs = statement.executeQuery(sql)) {
+          assertEquals(statement, rs.getStatement());
+        }
       }
     }
   }