You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/10/25 16:55:24 UTC

[1/4] jena git commit: JENA-1619: Completely detach a binding by doing a copy.

Repository: jena
Updated Branches:
  refs/heads/master a7ba51f67 -> c3027d69a


JENA-1619: Completely detach a binding by doing a copy.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/cd75e6c1
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/cd75e6c1
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/cd75e6c1

Branch: refs/heads/master
Commit: cd75e6c1597db5da1adf2eb3decd5bd59877b266
Parents: a7ba51f
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Oct 24 14:31:36 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Oct 24 14:31:36 2018 +0100

----------------------------------------------------------------------
 .../jena/sparql/engine/binding/BindingFactory.java   |  2 +-
 .../jena/sparql/engine/binding/BindingUtils.java     | 15 ---------------
 .../apache/jena/sparql/resultset/ResultSetMem.java   | 11 +++++------
 3 files changed, 6 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/cd75e6c1/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
index cd22878..3b36809 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
@@ -64,7 +64,7 @@ public class BindingFactory {
      * Create a new Binding as a copy of an existing one. Additionally, it guarantees to
      * touch each element of the binding
      */
-    public static Binding materialize(Binding b) {
+    public static Binding copy(Binding b) {
         Iterator<Var> vIter = b.vars();
         BindingMap b2 = create();
         while (vIter.hasNext()) {

http://git-wip-us.apache.org/repos/asf/jena/blob/cd75e6c1/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
index 3bb7cd1..aa2d538 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
@@ -19,7 +19,6 @@
 package org.apache.jena.sparql.engine.binding ;
 
 import java.util.Iterator ;
-import java.util.List;
 
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Node ;
@@ -95,18 +94,4 @@ public class BindingUtils {
     public static boolean equals(Binding b1, Binding b2) {
         return BindingBase.equals(b1, b2) ;
     }
-    
-    /** Touch every var/value in case that makes the binding do retrieval work. */
-    public static void materialize(Binding binding) {
-        for ( Iterator<Var> iter = binding.vars() ; iter.hasNext() ; ) {
-            Var v = iter.next();
-            binding.get(v);
-        }
-    }
-    
-    /** Touch every var/value in case that makes the binding do retrieval work.
-     *  Use the given vars - does no matter if a variable is not present in the binding. */
-    public static void materialize(List<Var> vars, Binding binding) {
-        vars.forEach(binding::get);
-    }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/cd75e6c1/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetMem.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetMem.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetMem.java
index f3181d9..04b4096 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetMem.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetMem.java
@@ -30,7 +30,7 @@ import org.apache.jena.rdf.model.Model ;
 import org.apache.jena.sparql.core.ResultBinding ;
 import org.apache.jena.sparql.core.Var;
 import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.engine.binding.BindingUtils;
+import org.apache.jena.sparql.engine.binding.BindingFactory;
 
 /** A result set held in-memory. rewindable.  
  */
@@ -66,8 +66,8 @@ public class ResultSetMem implements ResultSetRewindable, ResultSetPeekable
         if ( takeCopy )
             rows.addAll(imrs2.rows);
         else
-                        // Share results (not the iterator).
-                        rows = imrs2.rows;
+            // Share results (not the iterator).
+            rows = imrs2.rows;
         reset();
     }
 
@@ -75,7 +75,7 @@ public class ResultSetMem implements ResultSetRewindable, ResultSetPeekable
      * Create an in-memory result set from any ResultSet object. If the
      * ResultSet is an in-memory one already, then no copying is done - the
      * necessary internal datastructures are shared. This operation destroys
-     * (uses up) a ResultSet object that is not an in memory one.
+     * (uses up) a ResultSet object that is not an in-memory one.
      */
 
     public ResultSetMem(ResultSet qr) {
@@ -88,8 +88,7 @@ public class ResultSetMem implements ResultSetRewindable, ResultSetPeekable
             varNames = qr.getResultVars();
             List<Var> vars = Var.varList(varNames);
             while (qr.hasNext()) {
-                Binding rb = qr.nextBinding();
-                BindingUtils.materialize(vars, rb);
+                Binding rb = BindingFactory.copy(qr.nextBinding());
                 rows.add(rb);
             }
         }


[3/4] jena git commit: Cleanup formatting.

Posted by an...@apache.org.
Cleanup formatting.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/4dc260ee
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/4dc260ee
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/4dc260ee

Branch: refs/heads/master
Commit: 4dc260eeb2f627f724f6a382f42819f3c9b51cd6
Parents: c89ed12
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Oct 24 14:34:26 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Oct 24 14:34:26 2018 +0100

----------------------------------------------------------------------
 .../jena/sparql/engine/binding/Binding.java     |  1 -
 .../sparql/engine/binding/BindingUtils.java     | 75 ++++++++++----------
 2 files changed, 37 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/4dc260ee/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/Binding.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/Binding.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/Binding.java
index 90f7e92..ddf4578 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/Binding.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/Binding.java
@@ -41,5 +41,4 @@ public interface Binding
 
     /** Is this an empty binding?  No variables. */
     public boolean isEmpty() ;
-
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/4dc260ee/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
index aa2d538..08ae260 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingUtils.java
@@ -16,82 +16,81 @@
  * limitations under the License.
  */
 
-package org.apache.jena.sparql.engine.binding ;
+package org.apache.jena.sparql.engine.binding;
 
-import java.util.Iterator ;
+import java.util.Iterator;
 
-import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.query.QuerySolution ;
-import org.apache.jena.rdf.model.RDFNode ;
-import org.apache.jena.sparql.ARQInternalErrorException ;
-import org.apache.jena.sparql.core.ResultBinding ;
-import org.apache.jena.sparql.core.Var ;
+import org.apache.jena.atlas.logging.Log;
+import org.apache.jena.graph.Node;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.sparql.ARQInternalErrorException;
+import org.apache.jena.sparql.core.ResultBinding;
+import org.apache.jena.sparql.core.Var;
 
 public class BindingUtils {
     /** Convert a query solution to a binding */
     public static Binding asBinding(QuerySolution qSolution) {
         if ( qSolution == null )
-            return null ;
+            return null;
         if ( qSolution instanceof ResultBinding )
             // Only named variables.
-            return new BindingProjectNamed(((ResultBinding)qSolution).getBinding()) ;
-        BindingMap binding = BindingFactory.create() ;
-        addToBinding(binding, qSolution) ;
-        return binding ;
+            return new BindingProjectNamed(((ResultBinding)qSolution).getBinding());
+        BindingMap binding = BindingFactory.create();
+        addToBinding(binding, qSolution);
+        return binding;
     }
 
     public static void addToBinding(BindingMap binding, QuerySolution qSolution) {
         if ( qSolution == null )
-            return ;
+            return;
 
         for ( Iterator<String> iter = qSolution.varNames() ; iter.hasNext() ; ) {
-            String n = iter.next() ;
+            String n = iter.next();
 
-            RDFNode x = qSolution.get(n) ;
+            RDFNode x = qSolution.get(n);
             if ( Var.isBlankNodeVarName(n) )
-                continue ;
+                continue;
             try {
-                binding.add(Var.alloc(n), x.asNode()) ;
-            }
-            catch (ARQInternalErrorException ex) {
+                binding.add(Var.alloc(n), x.asNode());
+            } catch (ARQInternalErrorException ex) {
                 // bad binding attempt.
-                Log.warn(BindingUtils.class, "Attempt to bind " + n + " when already bound") ;
+                Log.warn(BindingUtils.class, "Attempt to bind " + n + " when already bound");
             }
         }
     }
 
     public static void addAll(BindingMap dest, Binding src) {
-        Iterator<Var> iter = src.vars() ;
+        Iterator<Var> iter = src.vars();
         for ( ; iter.hasNext() ; ) {
-            Var v = iter.next() ;
-            Node n = src.get(v) ;
-            dest.add(v, n) ;
+            Var v = iter.next();
+            Node n = src.get(v);
+            dest.add(v, n);
         }
     }
 
     /** Merge two bindings, assuming they are compatible. */
     public static Binding merge(Binding bind1, Binding bind2) {
-        //Create binding from LHS
-        BindingMap b2 = BindingFactory.create(bind1) ;
-        Iterator<Var> vIter = bind2.vars() ;
+        // Create binding from LHS
+        BindingMap b2 = BindingFactory.create(bind1);
+        Iterator<Var> vIter = bind2.vars();
         // Add any variables from the RHS
         for ( ; vIter.hasNext() ; ) {
-            Var v = vIter.next() ;
-            if ( ! b2.contains(v) )
-                b2.add(v, bind2.get(v)) ;
+            Var v = vIter.next();
+            if ( !b2.contains(v) )
+                b2.add(v, bind2.get(v));
             else {
                 // Checking!
-                Node n1 = bind1.get(v) ;
-                Node n2 = bind2.get(v) ;
-                if ( ! n1.equals(n2) )
-                    Log.warn(BindingUtils.class,  "merge: Mismatch : "+n1+" != "+n2);
+                Node n1 = bind1.get(v);
+                Node n2 = bind2.get(v);
+                if ( !n1.equals(n2) )
+                    Log.warn(BindingUtils.class, "merge: Mismatch : " + n1 + " != " + n2);
             }
         }
-        return b2 ;
+        return b2;
     }
 
     public static boolean equals(Binding b1, Binding b2) {
-        return BindingBase.equals(b1, b2) ;
+        return BindingBase.equals(b1, b2);
     }
 }


[2/4] jena git commit: JENA-1619: Don't materialize bindings.

Posted by an...@apache.org.
JENA-1619: Don't materialize bindings.

No need to materialize.
Bindings aren't safe outside a transaction anyway.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c89ed123
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c89ed123
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c89ed123

Branch: refs/heads/master
Commit: c89ed1238bcee69918e7aeedaf52637c66ff315c
Parents: cd75e6c
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Oct 24 14:34:05 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Oct 24 14:34:05 2018 +0100

----------------------------------------------------------------------
 .../apache/jena/tdb2/solver/QueryEngineTDB.java | 25 --------------------
 .../apache/jena/tdb/solver/QueryEngineTDB.java  | 25 --------------------
 2 files changed, 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/c89ed123/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/QueryEngineTDB.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/QueryEngineTDB.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/QueryEngineTDB.java
index ee6b244..b73f36e 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/QueryEngineTDB.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/QueryEngineTDB.java
@@ -31,8 +31,6 @@ import org.apache.jena.sparql.engine.QueryEngineFactory ;
 import org.apache.jena.sparql.engine.QueryEngineRegistry ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.engine.binding.BindingFactory ;
-import org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper ;
 import org.apache.jena.sparql.engine.main.QueryEngineMain ;
 import org.apache.jena.sparql.mgt.Explain ;
 import org.apache.jena.sparql.util.Context ;
@@ -108,32 +106,9 @@ public class QueryEngineTDB extends QueryEngineMain
             Explain.explain("REWRITE(Union default graph)", op, context) ;
         }
         QueryIterator results = super.eval(op, dsg, input, context) ;
-        results = new QueryIteratorMaterializeBinding(results) ;
         return results ; 
     }
     
-    /** Copy from any TDB internal BindingTDB to a Binding that
-     *  does not have any connection to the database.   
-     */
-    static class QueryIteratorMaterializeBinding extends QueryIteratorWrapper
-    {
-        public QueryIteratorMaterializeBinding(QueryIterator qIter)
-        {
-            super(qIter) ;
-        }
-        
-        @Override
-        protected Binding moveToNextBinding()
-        { 
-            Binding b = super.moveToNextBinding() ;
-            b = BindingFactory.materialize(b) ;
-            return b ;
-        }
-    }
-    
-    // Execution time (needs wiring to ARQ).
-    public long getMillis() { return -1 ; }
-    
     // ---- Factory
     protected static QueryEngineFactory factory = new QueryEngineFactoryTDB() ;
         

http://git-wip-us.apache.org/repos/asf/jena/blob/c89ed123/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QueryEngineTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QueryEngineTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QueryEngineTDB.java
index 9a0b038..cf2aa7b 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QueryEngineTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QueryEngineTDB.java
@@ -31,8 +31,6 @@ import org.apache.jena.sparql.engine.QueryEngineFactory ;
 import org.apache.jena.sparql.engine.QueryEngineRegistry ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.engine.binding.BindingFactory ;
-import org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper ;
 import org.apache.jena.sparql.engine.main.QueryEngineMain ;
 import org.apache.jena.sparql.mgt.Explain ;
 import org.apache.jena.sparql.util.Context ;
@@ -102,32 +100,9 @@ public class QueryEngineTDB extends QueryEngineMain
             Explain.explain("REWRITE(Union default graph)", op, context) ;
         }
         QueryIterator results = super.eval(op, dsg, input, context) ;
-        results = new QueryIteratorMaterializeBinding(results) ;
         return results ; 
     }
     
-    /** Copy from any TDB internal BindingTDB to a Binding that
-     *  does not have any connection to the database.   
-     */
-    static class QueryIteratorMaterializeBinding extends QueryIteratorWrapper
-    {
-        public QueryIteratorMaterializeBinding(QueryIterator qIter)
-        {
-            super(qIter) ;
-        }
-        
-        @Override
-        protected Binding moveToNextBinding()
-        { 
-            Binding b = super.moveToNextBinding() ;
-            b = BindingFactory.materialize(b) ;
-            return b ;
-        }
-    }
-    
-    // Execution time (needs wiring to ARQ).
-    public long getMillis() { return -1 ; }
-    
     // ---- Factory
     protected static QueryEngineFactory factory = new QueryEngineFactoryTDB() ;
         


[4/4] jena git commit: JENA-1619: Merge commit 'refs/pull/482/head' of https://github.com/apache/jena

Posted by an...@apache.org.
JENA-1619: Merge commit 'refs/pull/482/head' of https://github.com/apache/jena

This closes #482.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c3027d69
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c3027d69
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c3027d69

Branch: refs/heads/master
Commit: c3027d69ac87763113322876816fb6292ef6cd6a
Parents: a7ba51f 4dc260e
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Oct 25 17:49:12 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Oct 25 17:49:12 2018 +0100

----------------------------------------------------------------------
 .../jena/sparql/engine/binding/Binding.java     |  1 -
 .../sparql/engine/binding/BindingFactory.java   |  2 +-
 .../sparql/engine/binding/BindingUtils.java     | 90 ++++++++------------
 .../jena/sparql/resultset/ResultSetMem.java     | 11 ++-
 .../apache/jena/tdb2/solver/QueryEngineTDB.java | 25 ------
 .../apache/jena/tdb/solver/QueryEngineTDB.java  | 25 ------
 6 files changed, 43 insertions(+), 111 deletions(-)
----------------------------------------------------------------------