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/26 16:52:57 UTC
[1/2] lucene-solr git commit: SOLR-8518: Implement
ResultSetMetaDataImpl getColumnType and getColumnTypeName
Repository: lucene-solr
Updated Branches:
refs/heads/master 85ae19803 -> bc815b520
SOLR-8518: Implement ResultSetMetaDataImpl getColumnType and getColumnTypeName
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/3654fc33
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/3654fc33
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/3654fc33
Branch: refs/heads/master
Commit: 3654fc33b9e2ac0066d03ae864dea418d27f8841
Parents: 0ff8d11
Author: jbernste <jb...@apache.org>
Authored: Tue Jan 26 10:55:32 2016 -0500
Committer: jbernste <jb...@apache.org>
Committed: Tue Jan 26 10:55:32 2016 -0500
----------------------------------------------------------------------
.../solr/client/solrj/io/sql/ResultSetImpl.java | 18 ++++++++++--
.../solrj/io/sql/ResultSetMetaDataImpl.java | 29 ++++++++++++++++++--
.../solr/client/solrj/io/sql/StatementImpl.java | 1 -
.../solr/client/solrj/io/sql/JdbcTest.java | 11 ++++++++
4 files changed, 52 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3654fc33/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java
index d1edc0c..31fc39f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java
@@ -41,13 +41,14 @@ import java.util.Calendar;
import java.util.Map;
import org.apache.solr.client.solrj.io.Tuple;
-import org.apache.solr.client.solrj.io.stream.SolrStream;
+import org.apache.solr.client.solrj.io.stream.PushBackStream;
class ResultSetImpl implements ResultSet {
private final StatementImpl statement;
- private final SolrStream solrStream;
+ private final PushBackStream solrStream;
private final ResultSetMetaData resultSetMetaData;
private final Tuple metadataTuple;
+ private final Tuple firstTuple;
private Tuple tuple;
private boolean done;
private boolean closed;
@@ -55,7 +56,7 @@ class ResultSetImpl implements ResultSet {
ResultSetImpl(StatementImpl statement) {
this.statement = statement;
- this.solrStream = statement.getSolrStream();
+ this.solrStream = new PushBackStream(statement.getSolrStream());
// Read the first tuple so that metadata can be gathered
try {
@@ -69,6 +70,13 @@ class ResultSetImpl implements ResultSet {
throw new RuntimeException("Couldn't get metadata tuple");
}
+ try {
+ this.firstTuple = this.solrStream.read();
+ this.solrStream.pushBack(firstTuple);
+ } catch (IOException e) {
+ throw new RuntimeException("Couldn't get first tuple.");
+ }
+
this.resultSetMetaData = new ResultSetMetaDataImpl(this);
}
@@ -76,6 +84,10 @@ class ResultSetImpl implements ResultSet {
return this.metadataTuple;
}
+ Tuple getFirstTuple() {
+ return this.firstTuple;
+ }
+
private void checkClosed() throws SQLException {
if(isClosed()) {
throw new SQLException("ResultSet is closed.");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3654fc33/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetMetaDataImpl.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetMetaDataImpl.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetMetaDataImpl.java
index 8351140..d59db87 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetMetaDataImpl.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ResultSetMetaDataImpl.java
@@ -19,6 +19,7 @@ package org.apache.solr.client.solrj.io.sql;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
+import java.sql.Types;
import java.util.List;
import org.apache.solr.client.solrj.io.Tuple;
@@ -26,10 +27,21 @@ import org.apache.solr.client.solrj.io.Tuple;
class ResultSetMetaDataImpl implements ResultSetMetaData {
private final ResultSetImpl resultSet;
private final Tuple metadataTuple;
+ private final Tuple firstTuple;
ResultSetMetaDataImpl(ResultSetImpl resultSet) {
this.resultSet = resultSet;
this.metadataTuple = this.resultSet.getMetadataTuple();
+ this.firstTuple = this.resultSet.getFirstTuple();
+ }
+
+ private Class getColumnClass(int column) throws SQLException {
+ Object o = this.firstTuple.get(this.getColumnName(column));
+ if(o == null) {
+ return String.class; //Nulls will only be present with Strings.
+ } else {
+ return o.getClass();
+ }
}
@Override
@@ -117,12 +129,23 @@ class ResultSetMetaDataImpl implements ResultSetMetaData {
@Override
public int getColumnType(int column) throws SQLException {
- return 0;
+ switch (getColumnTypeName(column)) {
+ case "String":
+ return Types.VARCHAR;
+ case "Integer":
+ return Types.INTEGER;
+ case "Long":
+ return Types.DOUBLE;
+ case "Double":
+ return Types.DOUBLE;
+ default:
+ return Types.JAVA_OBJECT;
+ }
}
@Override
public String getColumnTypeName(int column) throws SQLException {
- return null;
+ return this.getColumnClass(column).getSimpleName();
}
@Override
@@ -142,7 +165,7 @@ class ResultSetMetaDataImpl implements ResultSetMetaData {
@Override
public String getColumnClassName(int column) throws SQLException {
- return null;
+ return this.getColumnClass(column).getTypeName();
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3654fc33/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 bea6488..1c1bc21 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
@@ -59,7 +59,6 @@ class StatementImpl implements Statement {
@Override
public ResultSet executeQuery(String sql) throws SQLException {
-
try {
if(this.currentResultSet != null) {
this.currentResultSet.close();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3654fc33/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 617399b..9fe7226 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
@@ -24,6 +24,7 @@ import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
+import java.sql.Types;
import java.util.Properties;
import org.apache.lucene.util.LuceneTestCase;
@@ -403,6 +404,16 @@ public class JdbcTest extends AbstractFullDistribZkTestBase {
assertNotNull(resultSetMetaData);
assertEquals(4, resultSetMetaData.getColumnCount());
+
+ assertEquals("Long", resultSetMetaData.getColumnTypeName(1));
+ assertEquals("Long", resultSetMetaData.getColumnTypeName(2));
+ assertEquals("String", resultSetMetaData.getColumnTypeName(3));
+ assertEquals("Double", resultSetMetaData.getColumnTypeName(4));
+
+ assertEquals(Types.DOUBLE, resultSetMetaData.getColumnType(1));
+ assertEquals(Types.DOUBLE, resultSetMetaData.getColumnType(2));
+ assertEquals(Types.VARCHAR, resultSetMetaData.getColumnType(3));
+ assertEquals(Types.DOUBLE, resultSetMetaData.getColumnType(4));
}
private void checkResultSet(ResultSet rs) throws Exception {
[2/2] lucene-solr git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/lucene-solr
Posted by jb...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/bc815b52
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/bc815b52
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/bc815b52
Branch: refs/heads/master
Commit: bc815b5207638c676810699bae592fc8f3d93abd
Parents: 3654fc3 85ae198
Author: jbernste <jb...@apache.org>
Authored: Tue Jan 26 10:57:07 2016 -0500
Committer: jbernste <jb...@apache.org>
Committed: Tue Jan 26 10:57:07 2016 -0500
----------------------------------------------------------------------
lucene/CHANGES.txt | 5 +
.../apache/lucene/index/PrefixCodedTerms.java | 21 ++--
.../apache/lucene/index/memory/MemoryIndex.java | 107 +++++++++++++------
.../lucene/index/memory/TestMemoryIndex.java | 27 +++++
.../org/apache/lucene/queries/TermsQuery.java | 52 +++++----
.../lucene/queries/CommonTermsQueryTest.java | 2 +-
.../apache/lucene/search/TestGeoPointQuery.java | 35 ++++++
.../lucene/search/TestLatLonPointQueries.java | 25 ++++-
.../lucene/util/BaseGeoPointTestCase.java | 1 -
.../org/apache/solr/cloud/SyncStrategy.java | 2 +-
.../apache/solr/search/facet/FacetRequest.java | 10 +-
.../solr/search/facet/TestJsonFacets.java | 22 +++-
12 files changed, 240 insertions(+), 69 deletions(-)
----------------------------------------------------------------------