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

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

commit 02b955204b70206f748de486c800ceaf320f636a
Author: Andy Seaborne <[email protected]>
AuthorDate: Sat Aug 24 17:12:54 2024 +0100

    Provide merge operation that reuses a BindingBuilder
---
 .../apache/jena/sparql/engine/binding/BindingLib.java    | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingLib.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingLib.java
index ea77786870..82b82febeb 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingLib.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingLib.java
@@ -54,8 +54,20 @@ public class BindingLib {
 
     /** Merge two bindings, assuming they are compatible. */
     public static Binding merge(Binding bind1, Binding bind2) {
-        // Create binding from LHS
-        BindingBuilder builder = Binding.builder(bind1);
+        BindingBuilder builder = Binding.builder();
+        Binding merge = merge(builder, bind1, bind2);
+        return merge;
+    }
+
+    /**
+     * Merge two bindings, assuming they are compatible.
+     *
+     * The {@link BindingBuilder} is reused and
+     * left in an indeterminate state.
+     */
+    public static Binding merge(BindingBuilder builder, Binding bind1, Binding 
bind2) {
+        builder.reset();
+        builder.addAll(bind1);
         Iterator<Var> vIter = bind2.vars();
         // Add any variables from the RHS
         for ( ; vIter.hasNext() ; ) {

Reply via email to