ch.ethz.mxquery.query.optimizer
Class ExpressionSplitter
java.lang.Object
ch.ethz.mxquery.query.optimizer.ExpressionSplitter
public final class ExpressionSplitter
- extends java.lang.Object
This is an optimization class for the WindowIndexIterator. It helps to split a expression into disjunction terms
and finds max index patterns.
In the near future maybe this can replaced by a query rewriter.
Method Summary |
static ValueLiteral |
createValueTerm(XDMIterator iter,
java.util.List startVars,
java.util.List endVars)
Helper calls to create a new value term from an iterator and analyze the dependencies |
DTerm |
splitExpression(XDMIterator expr)
Splits an Iterator tree into disjunction terms and sorts them regarding to the variable
dependencies |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ExpressionSplitter
public ExpressionSplitter(java.util.List startVars,
java.util.List endVars)
- Parameters:
startVars
- List of variablesendVars
- List of variables
splitExpression
public DTerm splitExpression(XDMIterator expr)
- Splits an Iterator tree into disjunction terms and sorts them regarding to the variable
dependencies
- Parameters:
expr
-
- Returns:
- the DTerm containing the expression
createValueTerm
public static ValueLiteral createValueTerm(XDMIterator iter,
java.util.List startVars,
java.util.List endVars)
- Helper calls to create a new value term from an iterator and analyze the dependencies
- Parameters:
iter
- startVars
- endVars
-
- Returns:
- the value literal for the iterator
MXQuery 0.6.0 API Documentation - Copyright 2006-2009 ETH Zurich