From: <tho...@us...> - 2011-01-20 15:53:55
|
Revision: 4137 http://bigdata.svn.sourceforge.net/bigdata/?rev=4137&view=rev Author: thompsonbry Date: 2011-01-20 15:53:49 +0000 (Thu, 20 Jan 2011) Log Message: ----------- Making the CONSTRAINT on a join apply to the original binding set when the predicate is optional. Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java 2011-01-20 13:38:30 UTC (rev 4136) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java 2011-01-20 15:53:49 UTC (rev 4137) @@ -48,6 +48,7 @@ import com.bigdata.bop.BOp; import com.bigdata.bop.BOpContext; import com.bigdata.bop.BOpEvaluationContext; +import com.bigdata.bop.BOpUtility; import com.bigdata.bop.IBindingSet; import com.bigdata.bop.IConstraint; import com.bigdata.bop.IPredicate; @@ -1683,6 +1684,16 @@ final IBindingSet bs = bindingSets[bindex]; + if (constraints != null) { + + // verify constraint. + if(!BOpUtility.isConsistent(constraints, bs)) { + // skip solutions which fail the constraint. + continue; + } + + } + if (log.isTraceEnabled()) log .trace("Passing on solution which fails an optional join: " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |