This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 91010d6 SOLR-15904: Move SQL support into new sql module
91010d6 is described below
commit 91010d658b228163c2131247be1858ae5f7b5331
Author: Kevin Risden <[email protected]>
AuthorDate: Mon Feb 14 20:24:45 2022 -0500
SOLR-15904: Move SQL support into new sql module
---
gradle/validation/spotless.gradle | 1 +
settings.gradle | 1 +
solr/CHANGES.txt | 2 +
solr/core/build.gradle | 15 -----
.../java/org/apache/solr/core/CoreContainer.java | 4 --
.../org/apache/solr/core/SolrResourceLoader.java | 2 +-
solr/core/src/resources/ImplicitPlugins.json | 1 +
solr/core/src/test-files/log4j2.xml | 1 -
.../org/apache/solr/search/TestTaskManagement.java | 2 +-
solr/modules/sql/README.md | 29 +++++++++
solr/modules/sql/build.gradle | 69 ++++++++++++++++++++++
.../solr/handler/sql}/CalciteJDBCStream.java | 2 +-
.../apache/solr/handler/sql/CalciteSolrDriver.java | 0
.../org/apache/solr/handler/sql/LimitStream.java | 0
.../org/apache/solr/handler/sql}/SQLHandler.java | 9 ++-
.../org/apache/solr/handler/sql/SolrAggregate.java | 0
.../apache/solr/handler/sql/SolrEnumerator.java | 0
.../org/apache/solr/handler/sql/SolrFilter.java | 0
.../org/apache/solr/handler/sql/SolrMethod.java | 0
.../org/apache/solr/handler/sql/SolrProject.java | 0
.../java/org/apache/solr/handler/sql/SolrRel.java | 0
.../org/apache/solr/handler/sql/SolrRules.java | 0
.../org/apache/solr/handler/sql/SolrSchema.java | 0
.../java/org/apache/solr/handler/sql/SolrSort.java | 0
.../org/apache/solr/handler/sql/SolrTable.java | 0
.../org/apache/solr/handler/sql/SolrTableScan.java | 0
.../handler/sql/SolrToEnumerableConverter.java | 0
.../handler/sql/SolrToEnumerableConverterRule.java | 0
.../org/apache/solr/handler/sql/package-info.java | 4 +-
.../sql}/src/test-files/log4j2.xml | 0
.../test-files/solr/configsets/sql/conf/schema.xml | 0
.../solr/configsets/sql/conf/solrconfig.xml | 0
.../solr/handler/sql/SQLWithAuthzEnabledTest.java | 0
.../apache/solr/handler/sql}/TestSQLHandler.java | 2 +-
.../solr/handler/sql}/TestSQLHandlerNonCloud.java | 2 +-
solr/packaging/build.gradle | 3 +-
.../pages/implicit-requesthandlers.adoc | 2 +-
.../modules/query-guide/pages/sql-query.adoc | 2 +-
solr/solrj/build.gradle | 1 +
solr/test-framework/build.gradle | 2 +-
.../apache/solr/schema/SortableBinaryField.java | 0
versions.lock | 2 +-
42 files changed, 123 insertions(+), 35 deletions(-)
diff --git a/gradle/validation/spotless.gradle
b/gradle/validation/spotless.gradle
index a6c1472..1f2d151 100644
--- a/gradle/validation/spotless.gradle
+++ b/gradle/validation/spotless.gradle
@@ -53,6 +53,7 @@ configure(project(":solr").subprojects) { prj ->
case ":solr:modules:hdfs":
case ":solr:modules:langid":
case ":solr:modules:scripting":
+ case ":solr:modules:sql":
case ":solr:core":
case ":solr:solrj":
case ":solr:solr-ref-guide":
diff --git a/settings.gradle b/settings.gradle
index 02b4b27..a93e882 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -42,6 +42,7 @@ include "solr:modules:langid"
include "solr:modules:ltr"
include "solr:modules:s3-repository"
include "solr:modules:scripting"
+include "solr:modules:sql"
include "solr:webapp"
include "solr:benchmark"
include "solr:test-framework"
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 678a993..aa914cd 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -88,6 +88,8 @@ New Features
* SOLR-13989: Move Hadoop Authentication support to a new hadoop-auth module
(Kevin Risden)
+* SOLR-15904: Move SQL support to new sql module (Kevin Risden)
+
Improvements
----------------------
* LUCENE-8984: MoreLikeThis MLT is biased for uncommon fields (Andy Hind via
Anshum Gupta)
diff --git a/solr/core/build.gradle b/solr/core/build.gradle
index aa6b05e..be801e3 100644
--- a/solr/core/build.gradle
+++ b/solr/core/build.gradle
@@ -150,21 +150,6 @@ dependencies {
implementation 'org.codehaus.woodstox:stax2-api'
implementation 'com.fasterxml.woodstox:woodstox-core'
- // SQL Parser via Calcite
- implementation ('org.apache.calcite:calcite-core', {
- exclude group: 'org.apache.calcite.avatica', module: 'avatica-metrics'
- exclude group: 'com.fasterxml.jackson.dataformat', module:
'jackson-dataformat-yaml'
- exclude group: 'com.google.uzaygezen', module: 'uzaygezen-core'
- exclude group: 'com.yahoo.datasketches', module: 'sketches-core'
- exclude group: 'org.apache.commons', module: 'commons-dbcp2'
- exclude group: 'net.minidev', module: 'json-smart'
- exclude group: 'net.hydromatic', module: 'aggdesigner-algorithm'
- })
- // sub-deps of calcite-core that we reference directly
- implementation ('org.apache.calcite:calcite-linq4j') { transitive = false }
- implementation ('org.apache.calcite.avatica:avatica-core') { transitive =
false }
- permitUnusedDeclared 'org.apache.calcite.avatica:avatica-core'
-
testRuntimeOnly 'org.slf4j:jcl-over-slf4j'
testRuntimeOnly "org.apache.lucene:lucene-analysis-icu"
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index 152ce1f..2ea57ee 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -87,7 +87,6 @@ import org.apache.solr.handler.admin.ZookeeperStatusHandler;
import org.apache.solr.handler.api.ApiRegistrar;
import org.apache.solr.handler.component.ShardHandlerFactory;
import org.apache.solr.handler.designer.SchemaDesignerAPI;
-import org.apache.solr.handler.sql.CalciteSolrDriver;
import org.apache.solr.logging.LogWatcher;
import org.apache.solr.logging.MDCLoggingContext;
import org.apache.solr.metrics.SolrCoreMetricManager;
@@ -703,9 +702,6 @@ public class CoreContainer {
solrClientCache = new
SolrClientCache(updateShardHandler.getDefaultHttpClient());
- // initialize CalciteSolrDriver instance to use this solrClientCache
- CalciteSolrDriver.INSTANCE.setSolrClientCache(solrClientCache);
-
solrCores.load(loader);
diff --git a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
index 655e80d..5693307 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
@@ -88,7 +88,7 @@ public class SolrResourceLoader implements ResourceLoader,
Closeable, SolrClassL
"", "analysis.", "schema.", "handler.", "handler.tagger.", "search.",
"update.", "core.", "response.", "request.",
"update.processor.", "util.", "spelling.", "handler.component.",
"spelling.suggest.", "spelling.suggest.fst.", "rest.schema.analysis.",
"security.", "handler.admin.",
- "security.jwt.", "security.hadoop."
+ "security.jwt.", "security.hadoop.", "handler.sql."
};
private static final Charset UTF_8 = StandardCharsets.UTF_8;
public static final String SOLR_ALLOW_UNSAFE_RESOURCELOADING_PARAM =
"solr.allow.unsafe.resourceloading";
diff --git a/solr/core/src/resources/ImplicitPlugins.json
b/solr/core/src/resources/ImplicitPlugins.json
index 14b51cb..8e8bd6d 100644
--- a/solr/core/src/resources/ImplicitPlugins.json
+++ b/solr/core/src/resources/ImplicitPlugins.json
@@ -109,6 +109,7 @@
},
"/sql": {
"class": "solr.SQLHandler",
+ "startup": "lazy",
"useParams":"_SQL",
"invariants": {
"distrib": false
diff --git a/solr/core/src/test-files/log4j2.xml
b/solr/core/src/test-files/log4j2.xml
index 689aa96..9078571 100644
--- a/solr/core/src/test-files/log4j2.xml
+++ b/solr/core/src/test-files/log4j2.xml
@@ -32,7 +32,6 @@
<Logger name="org.apache.zookeeper" level="WARN"/>
<Logger name="org.apache.directory" level="WARN"/>
<Logger name="org.eclipse.jetty" level="INFO"/>
- <Logger name="org.apache.calcite" level="INFO"/>
<Root level="INFO">
<AppenderRef ref="STDERR"/>
diff --git a/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
b/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
index 7f54385..7330bc3 100644
--- a/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
+++ b/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
@@ -61,7 +61,7 @@ public class TestTaskManagement extends SolrCloudTestCase {
@BeforeClass
public static void setupCluster() throws Exception {
configureCluster(4)
- .addConfig("conf", configset("sql"))
+ .addConfig("conf", configset("cloud-minimal"))
.configure();
}
diff --git a/solr/modules/sql/README.md b/solr/modules/sql/README.md
new file mode 100644
index 0000000..eeb72dd
--- /dev/null
+++ b/solr/modules/sql/README.md
@@ -0,0 +1,29 @@
+Apache Solr SQL Module
+===============================
+
+Introduction
+------------
+This module implements the support for SQL in Apache Solr.
+
+Building
+--------
+The SQL module uses the same Gradle build as the core Solr components.
+
+To build the module, you can use
+
+```
+./gradlew :solr:modules:sql:assemble
+```
+
+The resulting module will be placed to the libs directory, for example:
+`solr/modules/hdfs/build/libs/solr-sql-9.0.0-SNAPSHOT.jar`
+
+To execute the module tests:
+
+```
+./gradlew :solr:modules:sql:test
+```
+
+Usage
+-----
+Please refer to the 'SQL Query Language' section of the reference guide:
https://solr.apache.org/guide/solr/latest/query-guide/sql-query.html
diff --git a/solr/modules/sql/build.gradle b/solr/modules/sql/build.gradle
new file mode 100644
index 0000000..fe23ccc
--- /dev/null
+++ b/solr/modules/sql/build.gradle
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+
+apply plugin: 'java-library'
+
+description = 'SQL Module'
+
+dependencies {
+ implementation project(':solr:core')
+ implementation project(':solr:solrj')
+
+ implementation 'org.slf4j:slf4j-api'
+
+ implementation 'com.google.guava:guava'
+
+ // SQL Parser via Calcite
+ implementation ('org.apache.calcite:calcite-core', {
+ exclude group: 'org.apache.calcite.avatica', module: 'avatica-metrics'
+ exclude group: 'com.google.guava', module: 'guava' // TODO remove this to
keep versions in sync
+ exclude group: 'com.fasterxml.jackson.dataformat', module:
'jackson-dataformat-yaml'
+ exclude group: 'com.google.uzaygezen', module: 'uzaygezen-core'
+ exclude group: 'com.yahoo.datasketches', module: 'sketches-core'
+ exclude group: 'org.apache.commons', module: 'commons-dbcp2'
+ exclude group: 'net.minidev', module: 'json-smart'
+ exclude group: 'net.hydromatic', module: 'aggdesigner-algorithm'
+ })
+ // sub-deps of calcite-core that we reference directly
+ implementation ('org.apache.calcite:calcite-linq4j') { transitive = false }
+ implementation ('org.apache.calcite.avatica:avatica-core') { transitive =
false }
+ permitUnusedDeclared 'org.apache.calcite.avatica:avatica-core'
+
+ testImplementation project(':solr:test-framework')
+ testImplementation 'org.apache.lucene:lucene-test-framework'
+ testImplementation 'junit:junit'
+
+ testRuntimeOnly project(':solr:modules:analysis-extras')
+
+ testImplementation 'org.apache.commons:commons-lang3'
+}
+
+
+// Copy all the test resource files from core to the build/resources/test
directory
+// of the SQL module so we can avoid duplication of the test resource files
like
+// schemas and SolrConfigs. This can be improved later by making the test
classes
+// load the resources from core directories directly.
+task copySolrCoreTestResources(type: Copy) {
+ from(project(':solr:core').sourceSets.test.resources.srcDirs) {
+ exclude '**/*.java'
+ }
+ into sourceSets.test.output.resourcesDir
+}
+
+tasks.processTestResources.configure {
+ dependsOn copySolrCoreTestResources
+}
diff --git a/solr/core/src/java/org/apache/solr/handler/CalciteJDBCStream.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteJDBCStream.java
similarity index 98%
rename from solr/core/src/java/org/apache/solr/handler/CalciteJDBCStream.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteJDBCStream.java
index fd76cbf..4fa6db8 100644
--- a/solr/core/src/java/org/apache/solr/handler/CalciteJDBCStream.java
+++
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteJDBCStream.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
import java.io.IOException;
import java.sql.Array;
diff --git
a/solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
similarity index 100%
rename from
solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/LimitStream.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/LimitStream.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java
diff --git a/solr/core/src/java/org/apache/solr/handler/SQLHandler.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
similarity index 96%
rename from solr/core/src/java/org/apache/solr/handler/SQLHandler.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
index 82a8bf9..1cd785b 100644
--- a/solr/core/src/java/org/apache/solr/handler/SQLHandler.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
@@ -38,7 +38,8 @@ import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
-import org.apache.solr.handler.sql.CalciteSolrDriver;
+import org.apache.solr.handler.RequestHandlerBase;
+import org.apache.solr.handler.StreamHandler;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.security.AuthorizationContext;
@@ -62,10 +63,12 @@ public class SQLHandler extends RequestHandlerBase
implements SolrCoreAware, Per
CoreContainer coreContainer = core.getCoreContainer();
if(coreContainer.isZooKeeperAware()) {
- defaultZkhost =
core.getCoreContainer().getZkController().getZkServerAddress();
+ defaultZkhost = coreContainer.getZkController().getZkServerAddress();
defaultWorkerCollection = core.getCoreDescriptor().getCollectionName();
isCloud = true;
}
+
+
CalciteSolrDriver.INSTANCE.setSolrClientCache(coreContainer.getSolrClientCache());
}
@Override
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrAggregate.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrAggregate.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrMethod.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrMethod.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrProject.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrProject.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrRel.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRel.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrRel.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRel.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrSchema.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSchema.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrSchema.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSchema.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrSort.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrSort.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java
diff --git
a/solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
similarity index 100%
rename from
solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
diff --git
a/solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
similarity index 100%
rename from
solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/package-info.java
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/package-info.java
similarity index 92%
rename from solr/core/src/java/org/apache/solr/handler/sql/package-info.java
rename to
solr/modules/sql/src/java/org/apache/solr/handler/sql/package-info.java
index 5aef90d..e4ce787 100644
--- a/solr/core/src/java/org/apache/solr/handler/sql/package-info.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Classes related to Apache Calcite implementation in {@link
org.apache.solr.handler.SQLHandler}
+ * Classes related to Apache Calcite implementation in {@link
org.apache.solr.handler.sql.SQLHandler}
*/
-package org.apache.solr.handler.sql;
\ No newline at end of file
+package org.apache.solr.handler.sql;
diff --git a/solr/core/src/test-files/log4j2.xml
b/solr/modules/sql/src/test-files/log4j2.xml
similarity index 100%
copy from solr/core/src/test-files/log4j2.xml
copy to solr/modules/sql/src/test-files/log4j2.xml
diff --git a/solr/core/src/test-files/solr/configsets/sql/conf/schema.xml
b/solr/modules/sql/src/test-files/solr/configsets/sql/conf/schema.xml
similarity index 100%
rename from solr/core/src/test-files/solr/configsets/sql/conf/schema.xml
rename to solr/modules/sql/src/test-files/solr/configsets/sql/conf/schema.xml
diff --git a/solr/core/src/test-files/solr/configsets/sql/conf/solrconfig.xml
b/solr/modules/sql/src/test-files/solr/configsets/sql/conf/solrconfig.xml
similarity index 100%
rename from solr/core/src/test-files/solr/configsets/sql/conf/solrconfig.xml
rename to
solr/modules/sql/src/test-files/solr/configsets/sql/conf/solrconfig.xml
diff --git
a/solr/core/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java
similarity index 100%
rename from
solr/core/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java
rename to
solr/modules/sql/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java
diff --git a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandler.java
similarity index 99%
rename from solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
rename to
solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandler.java
index 453f3f4..4fcd6d6 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
+++ b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandler.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
import java.io.IOException;
import java.time.Instant;
diff --git
a/solr/core/src/test/org/apache/solr/handler/TestSQLHandlerNonCloud.java
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandlerNonCloud.java
similarity index 98%
rename from
solr/core/src/test/org/apache/solr/handler/TestSQLHandlerNonCloud.java
rename to
solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandlerNonCloud.java
index 4043e4c..b0e5b3f 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSQLHandlerNonCloud.java
+++
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandlerNonCloud.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
import java.io.File;
import java.io.IOException;
diff --git a/solr/packaging/build.gradle b/solr/packaging/build.gradle
index dc8eb4b..dd25017 100644
--- a/solr/packaging/build.gradle
+++ b/solr/packaging/build.gradle
@@ -58,7 +58,8 @@ dependencies {
":solr:modules:langid",
":solr:modules:ltr",
":solr:modules:s3-repository",
- ":solr:modules:scripting"
+ ":solr:modules:scripting",
+ ":solr:modules:sql"
].each { moduleName ->
modules project(path: moduleName, configuration: "packaging")
}
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
index d291270..fb8adfc 100644
---
a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
+++
b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
@@ -249,7 +249,7 @@ SQL:: SQL query support.
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
-|`solr/<collection>/sql`
|{solr-javadocs}/core/org/apache/solr/handler/SQLHandler.html[SQLHandler]
|`_SQL`
+|`solr/<collection>/sql`
|{solr-javadocs}/modules/sql/org/apache/solr/handler/sql/SQLHandler.html[SQLHandler]
|`_SQL`
|===
Streaming Expressions:: Distributed stream processing.
diff --git a/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc
b/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc
index 7c234e3..d5fe9db 100644
--- a/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc
@@ -21,7 +21,7 @@
// specific language governing permissions and limitations
// under the License.
-Solr's SQL Query support brings the power of SQL to SolrCloud.
+The Solr SQL module brings the power of SQL querying to Solr. The SQL module
needs to be xref:configuration-guide:solr-modules.adoc[installed] to use.
The SQL interface seamlessly combines SQL with Solr's full-text search
capabilities.
Both MapReduce style and JSON Facet API aggregations are supported, which
means that SQL querying can be used to support both *high query volume* and
*high cardinality* use cases.
diff --git a/solr/solrj/build.gradle b/solr/solrj/build.gradle
index 71f102d..1621fa6 100644
--- a/solr/solrj/build.gradle
+++ b/solr/solrj/build.gradle
@@ -62,6 +62,7 @@ dependencies {
testImplementation project(':solr:test-framework')
testImplementation project(':solr:core')
testImplementation project(':solr:solrj')
+ testRuntimeOnly project(':solr:modules:sql')
testImplementation 'org.apache.lucene:lucene-analysis-common'
testImplementation 'org.apache.lucene:lucene-core'
diff --git a/solr/test-framework/build.gradle b/solr/test-framework/build.gradle
index 90e77a0..569f0e2 100644
--- a/solr/test-framework/build.gradle
+++ b/solr/test-framework/build.gradle
@@ -36,7 +36,7 @@ dependencies {
api 'org.apache.lucene:lucene-test-framework'
implementation 'org.apache.lucene:lucene-core'
implementation 'org.apache.lucene:lucene-queries'
- implementation "org.apache.lucene:lucene-suggest"
+ implementation 'org.apache.lucene:lucene-suggest'
implementation('org.apache.zookeeper:zookeeper', {
exclude group: "org.apache.yetus", module: "audience-annotations"
diff --git a/solr/core/src/test/org/apache/solr/schema/SortableBinaryField.java
b/solr/test-framework/src/java/org/apache/solr/schema/SortableBinaryField.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/schema/SortableBinaryField.java
rename to
solr/test-framework/src/java/org/apache/solr/schema/SortableBinaryField.java
diff --git a/versions.lock b/versions.lock
index 616ee17..1821637 100644
--- a/versions.lock
+++ b/versions.lock
@@ -35,7 +35,7 @@ com.google.cloud:google-cloud-storage:2.2.3 (2 constraints:
6e1c99f3)
com.google.code.gson:gson:2.8.9 (6 constraints: f25833c8)
com.google.errorprone:error_prone_annotations:2.10.0 (4 constraints: 3038d4ba)
com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37)
-com.google.guava:guava:31.0.1-jre (19 constraints: 722c2e36)
+com.google.guava:guava:31.0.1-jre (17 constraints: 850e5ccb)
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2
constraints: 4b35b0a0)
com.google.http-client:google-http-client:1.41.0 (11 constraints: 17bf6b7e)
com.google.http-client:google-http-client-apache-v2:1.41.0 (2 constraints:
af201c75)