You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/07/16 20:09:14 UTC

svn commit: r1503813 - in /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena: query/ARQ.java sparql/algebra/optimize/Optimize.java

Author: rvesse
Date: Tue Jul 16 18:09:14 2013
New Revision: 1503813

URL: http://svn.apache.org/r1503813
Log:
Add context symbols to make previously always on optimizations configurable

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java?rev=1503813&r1=1503812&r2=1503813&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java Tue Jul 16 18:09:14 2013
@@ -346,6 +346,18 @@ public class ARQ
      */  
     public static final Symbol optFilterDisjunction = ARQConstants.allocSymbol("optFilterDisjunction") ;
     
+    /**
+     * Context key controlling whether the standard optimizer applies optimizations to the evaluation
+     * of joins to favour index joins wherever possible
+     */
+    public static final Symbol optIndexJoinStrategy = ARQConstants.allocSymbol("optIndexJoinStrategy");
+    
+    /**
+     * Context key controlling whether the standard optimizater applies optimizations to joined BGPs to
+     * merge them into single BGPs
+     */
+    public static final Symbol optMergeBGPs = ARQConstants.allocSymbol("optMergeBGPs");
+    
     /** 
      *  Context key controlling whether the main query engine 
      *  

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java?rev=1503813&r1=1503812&r2=1503813&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/Optimize.java Tue Jul 16 18:09:14 2013
@@ -210,9 +210,12 @@ public class Optimize implements Rewrite
         op = apply("Path flattening", new TransformPathFlattern(), op) ;
         
         // Find joins/leftJoin that can be done by index joins (generally preferred as fixed memory overhead).
-        op = apply("Join strategy", new TransformJoinStrategy(), op) ;
+        if ( context.isTrueOrUndef(ARQ.optIndexJoinStrategy) )
+            op = apply("Index Join strategy", new TransformJoinStrategy(), op) ;
         
-        op = apply("Merge BGPs", new TransformMergeBGPs(), op) ;
+        // Merge adjacent BGPs
+        if ( context.isTrueOrUndef(ARQ.optMergeBGPs) )
+            op = apply("Merge BGPs", new TransformMergeBGPs(), op) ;
         
         // Mark
         if ( false )