/** * Return the {@link QueryOptimizerEnum} that is in effect for this * {@link JoinGroupNode}. This will be the value specified through * {@link QueryHints#OPTIMIZER} and otherwise the default value given by * {@link QueryHints#DEFAULT_OPTIMIZER}. * * @return The effective query optimizer for this join group. */ final public QueryOptimizerEnum getQueryOptimizer() { return getProperty(Annotations.OPTIMIZER, QueryHints.DEFAULT_OPTIMIZER); }
/** * Returns the property {@link Annotations#IS_SUBGROUP_OF_ALP_NODE} of this * {@link JoinGroupNode}. */ final public boolean isSubgroupOfALPNode() { return getProperty(Annotations.IS_SUBGROUP_OF_ALP_NODE, Annotations.DEFAULT_IS_SUBGROUP_OF_ALP_NODE); }
/** * Returns the property {@link Annotations#IS_SUBGROUP_OF_ALP_NODE} of this * {@link JoinGroupNode}. */ final public boolean isSubgroupOfALPNode() { return getProperty(Annotations.IS_SUBGROUP_OF_ALP_NODE, Annotations.DEFAULT_IS_SUBGROUP_OF_ALP_NODE); }
/** * Return the {@link QueryOptimizerEnum} that is in effect for this * {@link JoinGroupNode}. This will be the value specified through * {@link QueryHints#OPTIMIZER} and otherwise the default value given by * {@link QueryHints#DEFAULT_OPTIMIZER}. * * @return The effective query optimizer for this join group. */ final public QueryOptimizerEnum getQueryOptimizer() { return getProperty(Annotations.OPTIMIZER, QueryHints.DEFAULT_OPTIMIZER); }
@Override final public boolean isMinus() { return getProperty(Annotations.MINUS, Annotations.DEFAULT_MINUS); }
@Override final public boolean isOptional() { return getProperty(Annotations.OPTIONAL, Annotations.DEFAULT_OPTIONAL); }
@Override final public boolean isMinus() { return getProperty(Annotations.MINUS, Annotations.DEFAULT_MINUS); }
@Override final public boolean isOptional() { return getProperty(Annotations.OPTIONAL, Annotations.DEFAULT_OPTIONAL); }
/** * {@inheritDoc} * <p> * Overridden to return the context associated with this * {@link JoinGroupNode} if it is defined and otherwise read up the parent * chain. */ @Override public TermNode getContext() { final TermNode context = (TermNode) getProperty(Annotations.CONTEXT); if (context != null) return context; // Note: the base class will test the parent. return super.getContext(); }
/** * {@inheritDoc} * <p> * Overridden to return the context associated with this * {@link JoinGroupNode} if it is defined and otherwise read up the parent * chain. */ @Override public TermNode getContext() { final TermNode context = (TermNode) getProperty(Annotations.CONTEXT); if (context != null) return context; // Note: the base class will test the parent. return super.getContext(); }
@Override protected void optimizeJoinGroup( AST2BOpContext ctx, StaticAnalysis sa, IBindingSet[] bSets, JoinGroupNode group) { /** * The FILTER decomposition optimizer can be disabled with a query hint. */ if (!group.getProperty( QueryHints.NORMALIZE_FILTER_EXPRESSIONS, QueryHints.DEFAULT_NORMALIZE_FILTER_EXPRESSIONS)) return; normalizeAndDecomposeFilters(ctx, sa, bSets, group); removeDuplicatesAndTautologies(ctx, sa, bSets, group); }
@Override protected void optimizeJoinGroup( AST2BOpContext ctx, StaticAnalysis sa, IBindingSet[] bSets, JoinGroupNode group) { /** * The FILTER decomposition optimizer can be disabled with a query hint. */ if (!group.getProperty( QueryHints.NORMALIZE_FILTER_EXPRESSIONS, QueryHints.DEFAULT_NORMALIZE_FILTER_EXPRESSIONS)) return; normalizeAndDecomposeFilters(ctx, sa, bSets, group); removeDuplicatesAndTautologies(ctx, sa, bSets, group); }
final double optimistic = joinGroup.getProperty( Annotations.OPTIMISTIC, Annotations.DEFAULT_OPTIMISTIC);
if (joinGroup.getProperty(JoinGroupNode.Annotations.OPTIMIZER) != null) {
if (joinGroup.getProperty(JoinGroupNode.Annotations.OPTIMIZER) != null) {
final double optimistic = joinGroup.getProperty( Annotations.OPTIMISTIC, Annotations.DEFAULT_OPTIMISTIC);
join.getProperty(Annotations.ESTIMATED_CARDINALITY) != null; join.getProperty(Annotations.ESTIMATED_CARDINALITY);
join.getProperty(Annotations.ESTIMATED_CARDINALITY) != null; join.getProperty(Annotations.ESTIMATED_CARDINALITY);
final long groupCard = group.getProperty( AST2BOpBase.Annotations.ESTIMATED_CARDINALITY, Long.MAX_VALUE);
final long groupCard = group.getProperty( AST2BOpBase.Annotations.ESTIMATED_CARDINALITY, Long.MAX_VALUE);