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 )


Reply via email to