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 2014/04/11 01:26:54 UTC

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

Author: rvesse
Date: Thu Apr 10 23:26:53 2014
New Revision: 1586503

URL: http://svn.apache.org/r1586503
Log:
Add documentation to TransformFilterInequality describing why it is off by default and how to enable it where desired (JENA-615)

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

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=1586503&r1=1586502&r2=1586503&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 Thu Apr 10 23:26:53 2014
@@ -224,6 +224,7 @@ public class Optimize implements Rewrite
                 
         // Replace suitable FILTER(?x != TERM) with (minus (original) (table)) where the table contains
         // the candidate rows to be eliminated
+        // Off by default due to minimal performance difference
         if ( context.isTrue(ARQ.optFilterInequality) )
             op = apply("Filter Inequality", new TransformFilterInequality(), op);
         

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterInequality.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterInequality.java?rev=1586503&r1=1586502&r2=1586503&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterInequality.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterInequality.java Thu Apr 10 23:26:53 2014
@@ -31,6 +31,7 @@ import java.util.Set;
 import org.apache.jena.atlas.lib.Pair;
 
 import com.hp.hpl.jena.query.ARQ;
+import com.hp.hpl.jena.sparql.ARQConstants;
 import com.hp.hpl.jena.sparql.algebra.Op;
 import com.hp.hpl.jena.sparql.algebra.OpVars;
 import com.hp.hpl.jena.sparql.algebra.Table;
@@ -42,10 +43,11 @@ import com.hp.hpl.jena.sparql.core.VarEx
 import com.hp.hpl.jena.sparql.engine.binding.BindingFactory;
 import com.hp.hpl.jena.sparql.engine.binding.BindingMap;
 import com.hp.hpl.jena.sparql.expr.*;
+import com.hp.hpl.jena.sparql.util.Context;
 
 /**
  * A transform that aims to optimize queries where there is an inequality
- * constraint on a variable to speed up evaluation e.g
+ * constraint on a variable in an attempt to speed up evaluation e.g
  * 
  * <pre>
  * PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
@@ -71,6 +73,15 @@ import com.hp.hpl.jena.sparql.expr.*;
  * }
  * </pre>
  * 
+ * <h3>Status</h3>
+ * <p>
+ * Performance testing has shown that often this gives minimal performance
+ * benefit so this optimization is not enabled by default. It may be explicitly
+ * enabled by setting the {@link ARQ#optFilterInequality} symbol in your
+ * {@link Context} or the ARQ global context ({@link ARQ#getContext()} to
+ * {@code true}
+ * </p>
+ * 
  * <h3>Applicability</h3>
  * <p>
  * This optimizer is conservative in that it only makes the optimization where