This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new b46896f89e6 SOLR-18372: remove FunctionQParser.parseMultipleSources 
accessors (#4753)
b46896f89e6 is described below

commit b46896f89e6ce779b4e2d782e522cc12cac5668a
Author: Serhiy Bzhezytskyy <[email protected]>
AuthorDate: Wed Aug 19 17:59:41 2026 +0300

    SOLR-18372: remove FunctionQParser.parseMultipleSources accessors (#4753)
---
 ...18372-remove-parsemultiplesources-accessors.yml |  8 +++++
 .../org/apache/solr/search/FunctionQParser.java    | 34 +++++++---------------
 2 files changed, 18 insertions(+), 24 deletions(-)

diff --git 
a/changelog/unreleased/SOLR-18372-remove-parsemultiplesources-accessors.yml 
b/changelog/unreleased/SOLR-18372-remove-parsemultiplesources-accessors.yml
new file mode 100644
index 00000000000..f727939cfb1
--- /dev/null
+++ b/changelog/unreleased/SOLR-18372-remove-parsemultiplesources-accessors.yml
@@ -0,0 +1,8 @@
+# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc
+title: Remove the deprecated FunctionQParser.setParseMultipleSources and 
getParseMultipleSources accessors, and the undocumented multiple=true local 
param that used them. Multi-value parsing itself is unaffected for functions 
such as geodist and dist, which still work when a $param reference holds a 
comma separated point.
+type: removed
+authors:
+  - name: Serhiy Bzhezytskyy
+links:
+  - name: SOLR-18372
+    url: https://issues.apache.org/jira/browse/SOLR-18372
diff --git a/solr/core/src/java/org/apache/solr/search/FunctionQParser.java 
b/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
index 5f5bcf17b7a..46e36ca78f6 100644
--- a/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
@@ -59,7 +59,6 @@ public class FunctionQParser extends QParser {
    */
   public StrParser sp;
 
-  @Deprecated private boolean parseMultipleSources = false;
   private boolean parseToEnd = true;
 
   public FunctionQParser(
@@ -67,9 +66,6 @@ public class FunctionQParser extends QParser {
     super(qstr, localParams, params, req);
     setFlags(FLAG_DEFAULT);
     setString(qstr);
-    if (localParams != null && localParams.getPrimitiveBool("multiple")) {
-      setParseMultipleSources(true);
-    }
   }
 
   /**
@@ -90,22 +86,6 @@ public class FunctionQParser extends QParser {
     }
   }
 
-  @Deprecated
-  public void setParseMultipleSources(boolean parseMultipleSources) {
-    this.parseMultipleSources = parseMultipleSources;
-  }
-
-  /**
-   * Parse multiple comma separated value sources encapsulated into a {@link 
VectorValueSource} when
-   * {@link #getQuery()} or {@link #parseAsValueSource()} is called.
-   *
-   * @deprecated this is only needed for an unusual use-case and seems hard to 
support
-   */
-  @Deprecated
-  public boolean getParseMultipleSources() {
-    return parseMultipleSources;
-  }
-
   public void setParseToEnd(boolean parseToEnd) {
     this.parseToEnd = parseToEnd;
   }
@@ -125,17 +105,21 @@ public class FunctionQParser extends QParser {
    * ValueSourceParser#parse(FunctionQParser)}; it's intended for general code 
that has a {@link
    * QParser} but actually wants to parse a ValueSource.
    *
-   * @return A {@link VectorValueSource} for multiple VS, otherwise just the 
single VS.
+   * @return the parsed {@link ValueSource}.
    */
   @Override
   public ValueSource parseAsValueSource() throws SyntaxError {
+    return parseAsValueSource(false);
+  }
+
+  private ValueSource parseAsValueSource(boolean collectMultiple) throws 
SyntaxError {
     ValueSource vs = null;
     List<ValueSource> lst = null;
 
     for (; ; ) {
       ValueSource valsource = parseValueSource(getFlags() & 
~FLAG_CONSUME_DELIMITER);
       sp.eatws();
-      if (!parseMultipleSources) {
+      if (!collectMultiple) {
         vs = valsource;
         break;
       } else {
@@ -462,10 +446,12 @@ public class FunctionQParser extends QParser {
       } else {
         QParser subParser = subQuery(val, "func");
         if (subParser instanceof FunctionQParser subFunc) {
-          subFunc.setParseMultipleSources(true);
           subFunc.setFlags(flags);
+          // e.g. geodist($pt) with pt=lat,lon: collect the referenced comma 
separated values
+          valueSource = subFunc.parseAsValueSource(true);
+        } else {
+          valueSource = subParser.parseAsValueSource();
         }
-        valueSource = subParser.parseAsValueSource();
       }
 
       /*

Reply via email to