You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2020/05/06 09:02:23 UTC
[lucene-solr] branch jira/solr-14423 updated: SOLR-14423: Move the
wrapper class to top-level. Fix precommit issues.
This is an automated email from the ASF dual-hosted git repository.
ab pushed a commit to branch jira/solr-14423
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/jira/solr-14423 by this push:
new 1bc6a9a SOLR-14423: Move the wrapper class to top-level. Fix precommit issues.
1bc6a9a is described below
commit 1bc6a9ad26f0b0145a1d416596969f63b9cad222
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Wed May 6 11:01:20 2020 +0200
SOLR-14423: Move the wrapper class to top-level. Fix precommit issues.
---
.../org/apache/solr/handler/StreamHandler.java | 1 -
.../solr/handler/sql/CalciteConnectionWrapper.java | 378 +++++++++++++++++++++
.../apache/solr/handler/sql/CalciteSolrDriver.java | 365 +-------------------
.../org/apache/solr/handler/sql/SolrTable.java | 1 -
4 files changed, 386 insertions(+), 359 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
index 2507692..8c6af43 100644
--- a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
@@ -53,7 +53,6 @@ import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.core.CloseHook;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.PluginInfo;
import org.apache.solr.core.SolrConfig;
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/CalciteConnectionWrapper.java b/solr/core/src/java/org/apache/solr/handler/sql/CalciteConnectionWrapper.java
new file mode 100644
index 0000000..cd102b6
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/handler/sql/CalciteConnectionWrapper.java
@@ -0,0 +1,378 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.handler.sql;
+
+import java.lang.reflect.Type;
+import java.sql.Array;
+import java.sql.Blob;
+import java.sql.CallableStatement;
+import java.sql.Clob;
+import java.sql.DatabaseMetaData;
+import java.sql.NClob;
+import java.sql.PreparedStatement;
+import java.sql.SQLClientInfoException;
+import java.sql.SQLException;
+import java.sql.SQLWarning;
+import java.sql.SQLXML;
+import java.sql.Savepoint;
+import java.sql.Statement;
+import java.sql.Struct;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.Executor;
+
+import org.apache.calcite.adapter.java.JavaTypeFactory;
+import org.apache.calcite.config.CalciteConnectionConfig;
+import org.apache.calcite.jdbc.CalciteConnection;
+import org.apache.calcite.jdbc.CalcitePrepare;
+import org.apache.calcite.linq4j.Enumerator;
+import org.apache.calcite.linq4j.Queryable;
+import org.apache.calcite.linq4j.tree.Expression;
+import org.apache.calcite.schema.SchemaPlus;
+
+/**
+ * A wrapper that allows adding pre- post-method behaviors to
+ * {@link CalciteConnection}.
+ */
+class CalciteConnectionWrapper implements CalciteConnection {
+
+ protected final CalciteConnection delegate;
+
+ CalciteConnectionWrapper(CalciteConnection delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public SchemaPlus getRootSchema() {
+ return delegate.getRootSchema();
+ }
+
+ @Override
+ public JavaTypeFactory getTypeFactory() {
+ return delegate.getTypeFactory();
+ }
+
+ @Override
+ public Properties getProperties() {
+ return delegate.getProperties();
+ }
+
+ @Override
+ public Statement createStatement() throws SQLException {
+ return delegate.createStatement();
+ }
+
+ @Override
+ public PreparedStatement prepareStatement(String sql) throws SQLException {
+ return delegate.prepareStatement(sql);
+ }
+
+ @Override
+ public CallableStatement prepareCall(String sql) throws SQLException {
+ return delegate.prepareCall(sql);
+ }
+
+ @Override
+ public String nativeSQL(String sql) throws SQLException {
+ return delegate.nativeSQL(sql);
+ }
+
+ @Override
+ public void setAutoCommit(boolean autoCommit) throws SQLException {
+ delegate.setAutoCommit(autoCommit);
+ }
+
+ @Override
+ public boolean getAutoCommit() throws SQLException {
+ return delegate.getAutoCommit();
+ }
+
+ @Override
+ public void commit() throws SQLException {
+ delegate.commit();
+ }
+
+ @Override
+ public void rollback() throws SQLException {
+ delegate.rollback();
+ }
+
+ @Override
+ public void close() throws SQLException {
+ delegate.close();
+ }
+
+ @Override
+ public boolean isClosed() throws SQLException {
+ return delegate.isClosed();
+ }
+
+ @Override
+ public DatabaseMetaData getMetaData() throws SQLException {
+ return delegate.getMetaData();
+ }
+
+ @Override
+ public void setReadOnly(boolean readOnly) throws SQLException {
+ delegate.setReadOnly(readOnly);
+ }
+
+ @Override
+ public boolean isReadOnly() throws SQLException {
+ return delegate.isReadOnly();
+ }
+
+ @Override
+ public void setCatalog(String catalog) throws SQLException {
+ delegate.setCatalog(catalog);
+ }
+
+ @Override
+ public String getCatalog() throws SQLException {
+ return delegate.getCatalog();
+ }
+
+ @Override
+ public void setTransactionIsolation(int level) throws SQLException {
+ delegate.setTransactionIsolation(level);
+ }
+
+ @Override
+ public int getTransactionIsolation() throws SQLException {
+ return delegate.getTransactionIsolation();
+ }
+
+ @Override
+ public SQLWarning getWarnings() throws SQLException {
+ return delegate.getWarnings();
+ }
+
+ @Override
+ public void clearWarnings() throws SQLException {
+ delegate.clearWarnings();
+ }
+
+ @Override
+ public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
+ return delegate.createStatement(resultSetType, resultSetConcurrency);
+ }
+
+ @Override
+ public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
+ return delegate.prepareStatement(sql, resultSetType, resultSetConcurrency);
+ }
+
+ @Override
+ public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
+ return delegate.prepareCall(sql, resultSetType, resultSetConcurrency);
+ }
+
+ @Override
+ public Map<String, Class<?>> getTypeMap() throws SQLException {
+ return delegate.getTypeMap();
+ }
+
+ @Override
+ public void setTypeMap(Map<String, Class<?>> map) throws SQLException {
+ delegate.setTypeMap(map);
+ }
+
+ @Override
+ public void setHoldability(int holdability) throws SQLException {
+ delegate.setHoldability(holdability);
+ }
+
+ @Override
+ public int getHoldability() throws SQLException {
+ return delegate.getHoldability();
+ }
+
+ @Override
+ public Savepoint setSavepoint() throws SQLException {
+ return delegate.setSavepoint();
+ }
+
+ @Override
+ public Savepoint setSavepoint(String name) throws SQLException {
+ return delegate.setSavepoint(name);
+ }
+
+ @Override
+ public void rollback(Savepoint savepoint) throws SQLException {
+ delegate.rollback(savepoint);
+ }
+
+ @Override
+ public void releaseSavepoint(Savepoint savepoint) throws SQLException {
+ delegate.releaseSavepoint(savepoint);
+ }
+
+ @Override
+ public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
+ return delegate.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
+ }
+
+ @Override
+ public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
+ return delegate.prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
+ }
+
+ @Override
+ public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
+ return delegate.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
+ }
+
+ @Override
+ public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
+ return delegate.prepareStatement(sql, autoGeneratedKeys);
+ }
+
+ @Override
+ public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
+ return delegate.prepareStatement(sql, columnIndexes);
+ }
+
+ @Override
+ public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
+ return delegate.prepareStatement(sql, columnNames);
+ }
+
+ @Override
+ public Clob createClob() throws SQLException {
+ return delegate.createClob();
+ }
+
+ @Override
+ public Blob createBlob() throws SQLException {
+ return delegate.createBlob();
+ }
+
+ @Override
+ public NClob createNClob() throws SQLException {
+ return delegate.createNClob();
+ }
+
+ @Override
+ public SQLXML createSQLXML() throws SQLException {
+ return delegate.createSQLXML();
+ }
+
+ @Override
+ public boolean isValid(int timeout) throws SQLException {
+ return delegate.isValid(timeout);
+ }
+
+ @Override
+ public void setClientInfo(String name, String value) throws SQLClientInfoException {
+ delegate.setClientInfo(name, value);
+ }
+
+ @Override
+ public void setClientInfo(Properties properties) throws SQLClientInfoException {
+ delegate.setClientInfo(properties);
+ }
+
+ @Override
+ public String getClientInfo(String name) throws SQLException {
+ return delegate.getClientInfo(name);
+ }
+
+ @Override
+ public Properties getClientInfo() throws SQLException {
+ return delegate.getClientInfo();
+ }
+
+ @Override
+ public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
+ return delegate.createArrayOf(typeName, elements);
+ }
+
+ @Override
+ public Struct createStruct(String typeName, Object[] attributes) throws SQLException {
+ return delegate.createStruct(typeName, attributes);
+ }
+
+ @Override
+ public void setSchema(String schema) throws SQLException {
+ delegate.setSchema(schema);
+ }
+
+ @Override
+ public String getSchema() throws SQLException {
+ return delegate.getSchema();
+ }
+
+ @Override
+ public void abort(Executor executor) throws SQLException {
+ delegate.abort(executor);
+ }
+
+ @Override
+ public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException {
+ delegate.setNetworkTimeout(executor, milliseconds);
+ }
+
+ @Override
+ public int getNetworkTimeout() throws SQLException {
+ return delegate.getNetworkTimeout();
+ }
+
+ @Override
+ public CalciteConnectionConfig config() {
+ return delegate.config();
+ }
+
+ @Override
+ public CalcitePrepare.Context createPrepareContext() {
+ return delegate.createPrepareContext();
+ }
+
+ @Override
+ public <T> T unwrap(Class<T> iface) throws SQLException {
+ return delegate.unwrap(iface);
+ }
+
+ @Override
+ public boolean isWrapperFor(Class<?> iface) throws SQLException {
+ return delegate.isWrapperFor(iface);
+ }
+
+ @Override
+ public <T> Queryable<T> createQuery(Expression expression, Class<T> aClass) {
+ return delegate.createQuery(expression, aClass);
+ }
+
+ @Override
+ public <T> Queryable<T> createQuery(Expression expression, Type type) {
+ return delegate.createQuery(expression, type);
+ }
+
+ @Override
+ public <T> T execute(Expression expression, Class<T> aClass) {
+ return delegate.execute(expression, aClass);
+ }
+
+ @Override
+ public <T> T execute(Expression expression, Type type) {
+ return delegate.execute(expression, type);
+ }
+
+ @Override
+ public <T> Enumerator<T> executeQuery(Queryable<T> queryable) {
+ return delegate.executeQuery(queryable);
+ }
+}
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java b/solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
index 4ebe993..3a995f6 100644
--- a/solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
+++ b/solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
@@ -16,35 +16,13 @@
*/
package org.apache.solr.handler.sql;
-import org.apache.calcite.adapter.java.JavaTypeFactory;
-import org.apache.calcite.config.CalciteConnectionConfig;
import org.apache.calcite.jdbc.CalciteConnection;
-import org.apache.calcite.jdbc.CalcitePrepare;
import org.apache.calcite.jdbc.Driver;
-import org.apache.calcite.linq4j.Enumerator;
-import org.apache.calcite.linq4j.Queryable;
-import org.apache.calcite.linq4j.tree.Expression;
import org.apache.calcite.schema.SchemaPlus;
-import java.lang.reflect.Type;
-import java.sql.Array;
-import java.sql.Blob;
-import java.sql.CallableStatement;
-import java.sql.Clob;
import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.NClob;
-import java.sql.PreparedStatement;
-import java.sql.SQLClientInfoException;
import java.sql.SQLException;
-import java.sql.SQLWarning;
-import java.sql.SQLXML;
-import java.sql.Savepoint;
-import java.sql.Statement;
-import java.sql.Struct;
-import java.util.Map;
import java.util.Properties;
-import java.util.concurrent.Executor;
/**
* JDBC driver for Calcite Solr.
@@ -81,346 +59,19 @@ public class CalciteSolrDriver extends Driver {
if(schemaName == null) {
throw new SQLException("zk must be set");
}
- SolrSchema solrSchema = new SolrSchema(info);
+ final SolrSchema solrSchema = new SolrSchema(info);
rootSchema.add(schemaName, solrSchema);
// Set the default schema
calciteConnection.setSchema(schemaName);
- return new SolrCalciteConnectionWrapper(calciteConnection, solrSchema);
+ return new CalciteConnectionWrapper(calciteConnection) {
+ @Override
+ public void close() throws SQLException {
+ solrSchema.close();
+ super.close();
+ }
+ };
}
- // the sole purpose of this class is to be able to invoke SolrSchema.close()
- // when the connection is closed.
- private static final class SolrCalciteConnectionWrapper implements CalciteConnection {
-
- private final CalciteConnection delegate;
- private final SolrSchema schema;
-
- SolrCalciteConnectionWrapper(CalciteConnection delegate, SolrSchema schema) {
- this.delegate = delegate;
- this.schema = schema;
- }
-
- @Override
- public SchemaPlus getRootSchema() {
- return delegate.getRootSchema();
- }
-
- @Override
- public JavaTypeFactory getTypeFactory() {
- return delegate.getTypeFactory();
- }
-
- @Override
- public Properties getProperties() {
- return delegate.getProperties();
- }
-
- @Override
- public Statement createStatement() throws SQLException {
- return delegate.createStatement();
- }
-
- @Override
- public PreparedStatement prepareStatement(String sql) throws SQLException {
- return delegate.prepareStatement(sql);
- }
-
- @Override
- public CallableStatement prepareCall(String sql) throws SQLException {
- return delegate.prepareCall(sql);
- }
-
- @Override
- public String nativeSQL(String sql) throws SQLException {
- return delegate.nativeSQL(sql);
- }
-
- @Override
- public void setAutoCommit(boolean autoCommit) throws SQLException {
- delegate.setAutoCommit(autoCommit);
- }
-
- @Override
- public boolean getAutoCommit() throws SQLException {
- return delegate.getAutoCommit();
- }
-
- @Override
- public void commit() throws SQLException {
- delegate.commit();
- }
-
- @Override
- public void rollback() throws SQLException {
- delegate.rollback();
- }
-
- @Override
- public void close() throws SQLException {
- schema.close();
- delegate.close();
- }
-
- @Override
- public boolean isClosed() throws SQLException {
- return delegate.isClosed();
- }
-
- @Override
- public DatabaseMetaData getMetaData() throws SQLException {
- return delegate.getMetaData();
- }
-
- @Override
- public void setReadOnly(boolean readOnly) throws SQLException {
- delegate.setReadOnly(readOnly);
- }
-
- @Override
- public boolean isReadOnly() throws SQLException {
- return delegate.isReadOnly();
- }
-
- @Override
- public void setCatalog(String catalog) throws SQLException {
- delegate.setCatalog(catalog);
- }
-
- @Override
- public String getCatalog() throws SQLException {
- return delegate.getCatalog();
- }
-
- @Override
- public void setTransactionIsolation(int level) throws SQLException {
- delegate.setTransactionIsolation(level);
- }
-
- @Override
- public int getTransactionIsolation() throws SQLException {
- return delegate.getTransactionIsolation();
- }
-
- @Override
- public SQLWarning getWarnings() throws SQLException {
- return delegate.getWarnings();
- }
-
- @Override
- public void clearWarnings() throws SQLException {
- delegate.clearWarnings();
- }
-
- @Override
- public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
- return delegate.createStatement(resultSetType, resultSetConcurrency);
- }
-
- @Override
- public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
- return delegate.prepareStatement(sql, resultSetType, resultSetConcurrency);
- }
-
- @Override
- public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
- return delegate.prepareCall(sql, resultSetType, resultSetConcurrency);
- }
-
- @Override
- public Map<String, Class<?>> getTypeMap() throws SQLException {
- return delegate.getTypeMap();
- }
-
- @Override
- public void setTypeMap(Map<String, Class<?>> map) throws SQLException {
- delegate.setTypeMap(map);
- }
-
- @Override
- public void setHoldability(int holdability) throws SQLException {
- delegate.setHoldability(holdability);
- }
-
- @Override
- public int getHoldability() throws SQLException {
- return delegate.getHoldability();
- }
-
- @Override
- public Savepoint setSavepoint() throws SQLException {
- return delegate.setSavepoint();
- }
-
- @Override
- public Savepoint setSavepoint(String name) throws SQLException {
- return delegate.setSavepoint(name);
- }
-
- @Override
- public void rollback(Savepoint savepoint) throws SQLException {
- delegate.rollback(savepoint);
- }
-
- @Override
- public void releaseSavepoint(Savepoint savepoint) throws SQLException {
- delegate.releaseSavepoint(savepoint);
- }
-
- @Override
- public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- return delegate.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
- @Override
- public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- return delegate.prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
- @Override
- public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- return delegate.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
- @Override
- public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
- return delegate.prepareStatement(sql, autoGeneratedKeys);
- }
-
- @Override
- public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
- return delegate.prepareStatement(sql, columnIndexes);
- }
-
- @Override
- public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
- return delegate.prepareStatement(sql, columnNames);
- }
-
- @Override
- public Clob createClob() throws SQLException {
- return delegate.createClob();
- }
-
- @Override
- public Blob createBlob() throws SQLException {
- return delegate.createBlob();
- }
-
- @Override
- public NClob createNClob() throws SQLException {
- return delegate.createNClob();
- }
-
- @Override
- public SQLXML createSQLXML() throws SQLException {
- return delegate.createSQLXML();
- }
-
- @Override
- public boolean isValid(int timeout) throws SQLException {
- return delegate.isValid(timeout);
- }
-
- @Override
- public void setClientInfo(String name, String value) throws SQLClientInfoException {
- delegate.setClientInfo(name, value);
- }
-
- @Override
- public void setClientInfo(Properties properties) throws SQLClientInfoException {
- delegate.setClientInfo(properties);
- }
-
- @Override
- public String getClientInfo(String name) throws SQLException {
- return delegate.getClientInfo(name);
- }
-
- @Override
- public Properties getClientInfo() throws SQLException {
- return delegate.getClientInfo();
- }
-
- @Override
- public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
- return delegate.createArrayOf(typeName, elements);
- }
-
- @Override
- public Struct createStruct(String typeName, Object[] attributes) throws SQLException {
- return delegate.createStruct(typeName, attributes);
- }
-
- @Override
- public void setSchema(String schema) throws SQLException {
- delegate.setSchema(schema);
- }
-
- @Override
- public String getSchema() throws SQLException {
- return delegate.getSchema();
- }
-
- @Override
- public void abort(Executor executor) throws SQLException {
- delegate.abort(executor);
- }
-
- @Override
- public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException {
- delegate.setNetworkTimeout(executor, milliseconds);
- }
-
- @Override
- public int getNetworkTimeout() throws SQLException {
- return delegate.getNetworkTimeout();
- }
-
- @Override
- public CalciteConnectionConfig config() {
- return delegate.config();
- }
-
- @Override
- public CalcitePrepare.Context createPrepareContext() {
- return delegate.createPrepareContext();
- }
-
- @Override
- public <T> T unwrap(Class<T> iface) throws SQLException {
- return delegate.unwrap(iface);
- }
-
- @Override
- public boolean isWrapperFor(Class<?> iface) throws SQLException {
- return delegate.isWrapperFor(iface);
- }
-
- @Override
- public <T> Queryable<T> createQuery(Expression expression, Class<T> aClass) {
- return delegate.createQuery(expression, aClass);
- }
-
- @Override
- public <T> Queryable<T> createQuery(Expression expression, Type type) {
- return delegate.createQuery(expression, type);
- }
-
- @Override
- public <T> T execute(Expression expression, Class<T> aClass) {
- return delegate.execute(expression, aClass);
- }
-
- @Override
- public <T> T execute(Expression expression, Type type) {
- return delegate.execute(expression, type);
- }
-
- @Override
- public <T> Enumerator<T> executeQuery(Queryable<T> queryable) {
- return delegate.executeQuery(queryable);
- }
- }
}
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java b/solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java
index f610bb5..66ee312 100644
--- a/solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java
+++ b/solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java
@@ -51,7 +51,6 @@ import org.apache.solr.client.solrj.io.stream.expr.StreamFactory;
import org.apache.solr.client.solrj.io.stream.metrics.*;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.handler.StreamHandler;
import java.io.IOException;
import java.util.*;