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 )