| Package | Description |
|---|---|
| lux | |
| lux.compiler | |
| lux.xpath | |
| lux.xquery |
| Modifier and Type | Method and Description |
|---|---|
List<AbstractExpression> |
Compiler.getFieldLeaves(AbstractExpression leafExpr) |
| Modifier and Type | Method and Description |
|---|---|
FieldDefinition |
Compiler.getFieldForExpr(AbstractExpression fieldExpr) |
List<AbstractExpression> |
Compiler.getFieldLeaves(AbstractExpression leafExpr) |
| Modifier and Type | Method and Description |
|---|---|
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.AtomicSequenceConverter atomizer) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.Atomizer atomizer) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.AxisExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.BinaryExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.Block expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.CastableExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.CastExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.Choose choose) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.Comment expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.CompareToIntegerConstant comp) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.ComputedAttribute expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.ComputedElement expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.ContextItemExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.DocumentInstr documentInstr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.Expression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.FilterExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.FirstItemExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.FixedAttribute attribute) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.FixedElement element) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.flwor.FLWORExpression flwor) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.ForExpression forExpr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.FunctionCall funcall) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.GlobalVariable var) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.IntegerRangeTest rangeTest) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.ItemChecker checker) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.LastItemExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.LetExpression let) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.Literal literal) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.NegateExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.ParentNodeExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(PathStep.Axis axis,
net.sf.saxon.pattern.NodeTest nodeTest) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.ProcessingInstruction pi) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.QuantifiedExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.RootExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.SlashExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.SubscriptExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.TailExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.UnaryExpression expr) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.instruct.ValueOf valueOf) |
AbstractExpression |
SaxonTranslator.exprFor(net.sf.saxon.expr.VariableReference var) |
AbstractExpression |
PathOptimizer.getBoundExpression(QName name) |
AbstractExpression |
VarBinding.getExpr() |
AbstractExpression |
PathOptimizer.optimize(AbstractExpression expr)
Prepares an XQuery expression for indexed execution against a Lux data
store.
|
AbstractExpression |
XPathQuery.toXmlNode(String defaultField,
IndexConfiguration config) |
AbstractExpression |
SlopCounter.visit(BinaryOperation exp) |
AbstractExpression |
PathOptimizer.visit(BinaryOperation op) |
AbstractExpression |
PathOptimizer.visit(Dot dot) |
AbstractExpression |
PathOptimizer.visit(FLWOR flwor)
Optimizing FLWOR expressions is more complicated than path expressions
and other simpler XPath expressions because the relationship among the
clauses is not a simple dependency, but is mediated by variables.
|
AbstractExpression |
SlopCounter.visit(FunCall f) |
AbstractExpression |
PathOptimizer.visit(FunCall funcall)
If a function F is emptiness-preserving, in other words F(a,b,c...) is
empty ( =()) if *any* of its arguments are empty, and is non-empty if
*all* of its arguments are non-empty, then its arguments' queries can be
combined with Occur.MUST.
|
AbstractExpression |
PathOptimizer.visit(LiteralExpression literal) |
AbstractExpression |
PathOptimizer.visit(PathExpression pathExpr)
Conjoin the queries for the two expressions joined by the path.
|
AbstractExpression |
SlopCounter.visit(PathStep step) |
AbstractExpression |
PathOptimizer.visit(PathStep step) |
AbstractExpression |
PathOptimizer.visit(Predicate predicate) |
AbstractExpression |
SlopCounter.visit(Root root) |
AbstractExpression |
PathOptimizer.visit(Root expr) |
AbstractExpression |
SlopCounter.visit(Sequence seq) |
AbstractExpression |
PathOptimizer.visit(Sequence sequence) |
AbstractExpression |
PathOptimizer.visit(Subsequence subsequence) |
AbstractExpression |
PathOptimizer.visit(Variable variable) |
AbstractExpression |
PathOptimizer.visitDefault(AbstractExpression expr) |
| Modifier and Type | Method and Description |
|---|---|
AbstractExpression |
PathOptimizer.optimize(AbstractExpression expr)
Prepares an XQuery expression for indexed execution against a Lux data
store.
|
AbstractExpression |
PathOptimizer.visitDefault(AbstractExpression expr) |
| Constructor and Description |
|---|
VarBinding(Variable var,
AbstractExpression expr,
XPathQuery query,
VariableContext context,
VarBinding currentBinding) |
| Modifier and Type | Class and Description |
|---|---|
class |
BinaryOperation |
class |
Dot |
class |
FunCall |
class |
LiteralExpression |
class |
PathExpression
A path expression represents two expressions joined with a "/"
|
class |
PathStep |
class |
Predicate |
class |
Root |
class |
SearchCall
A special search function call; this holds a query that is used to accumulate constraints
while optimizing.
|
class |
Sequence |
class |
Subsequence
represents numeric literal predicates like [1]; last-predicates like
[last()] and calls to the subsequence(expr,integer,integer) function.
|
class |
UnaryMinus |
| Modifier and Type | Field and Description |
|---|---|
protected AbstractExpression[] |
AbstractExpression.subs |
protected AbstractExpression |
AbstractExpression.sup |
| Modifier and Type | Method and Description |
|---|---|
AbstractExpression |
Predicate.accept(ExpressionVisitor visitor) |
AbstractExpression |
BinaryOperation.accept(ExpressionVisitor visitor) |
AbstractExpression |
Dot.accept(ExpressionVisitor visitor) |
AbstractExpression |
Root.accept(ExpressionVisitor visitor) |
AbstractExpression |
PathExpression.accept(ExpressionVisitor visitor) |
AbstractExpression |
LiteralExpression.accept(ExpressionVisitor visitor) |
AbstractExpression |
UnaryMinus.accept(ExpressionVisitor visitor) |
AbstractExpression |
FunCall.accept(ExpressionVisitor visitor) |
AbstractExpression |
Visitable.accept(ExpressionVisitor visitor) |
AbstractExpression |
PathStep.accept(ExpressionVisitor visitor) |
AbstractExpression |
Subsequence.accept(ExpressionVisitor visitor) |
AbstractExpression |
Sequence.accept(ExpressionVisitor visitor) |
AbstractExpression |
Predicate.getBase() |
AbstractExpression |
PropEquiv.getExpression() |
AbstractExpression |
Predicate.getFilter() |
AbstractExpression |
AbstractExpression.getHead() |
AbstractExpression |
PathExpression.getHead() |
AbstractExpression |
AbstractExpression.getLastContextStep()
This method is called by the optimizer in order to determine an element or attribute QName (or wildcard) against which
some expression is being compared, in order to generate an appropriate text query.
|
AbstractExpression |
PathExpression.getLastContextStep() |
AbstractExpression |
FunCall.getLastContextStep() |
AbstractExpression |
PathStep.getLastContextStep() |
AbstractExpression |
Subsequence.getLengthExpr() |
AbstractExpression |
PathExpression.getLHS() |
AbstractExpression |
UnaryMinus.getOperand() |
AbstractExpression |
BinaryOperation.getOperand1() |
AbstractExpression |
BinaryOperation.getOperand2() |
AbstractExpression |
PathExpression.getRHS() |
AbstractExpression |
Predicate.getRoot() |
AbstractExpression |
AbstractExpression.getRoot() |
AbstractExpression |
PathExpression.getRoot()
Whenever we see a new absolute context (/, collection(), search()), its dependent
expressions are a possible target for optimization.
|
AbstractExpression |
FunCall.getRoot() |
AbstractExpression |
Subsequence.getRoot() |
AbstractExpression |
Subsequence.getSequence() |
AbstractExpression |
Subsequence.getStartExpr() |
AbstractExpression[] |
AbstractExpression.getSubs() |
AbstractExpression |
AbstractExpression.getSuper() |
AbstractExpression |
AbstractExpression.getTail() |
AbstractExpression |
PathExpression.getTail() |
AbstractExpression |
AbstractExpression.replaceRoot(AbstractExpression replacement)
If this has absolute subexpressions, replace them with the replacement expression
(see
Root.replaceRoot(AbstractExpression) |
AbstractExpression |
Root.replaceRoot(AbstractExpression replacement)
replace this with the given expression
|
AbstractExpression |
ExpressionVisitorBase.visit(AttributeConstructor attributeConstructor) |
abstract AbstractExpression |
ExpressionVisitor.visit(AttributeConstructor attributeConstructor) |
AbstractExpression |
ExpressionVisitorBase.visit(BinaryOperation op) |
abstract AbstractExpression |
ExpressionVisitor.visit(BinaryOperation op) |
AbstractExpression |
ExpressionVisitorBase.visit(CastableExpression cast) |
abstract AbstractExpression |
ExpressionVisitor.visit(CastableExpression castable) |
AbstractExpression |
ExpressionVisitorBase.visit(CommentConstructor comment) |
abstract AbstractExpression |
ExpressionVisitor.visit(CommentConstructor commentConstructor) |
AbstractExpression |
ExpressionVisitorBase.visit(ComputedElementConstructor element) |
abstract AbstractExpression |
ExpressionVisitor.visit(ComputedElementConstructor computedElementConstructor) |
AbstractExpression |
ExpressionVisitorBase.visit(Conditional cond) |
abstract AbstractExpression |
ExpressionVisitor.visit(Conditional conditional) |
AbstractExpression |
ExpressionVisitorBase.visit(DocumentConstructor documentConstructor) |
abstract AbstractExpression |
ExpressionVisitor.visit(DocumentConstructor documentConstructor) |
AbstractExpression |
ExpressionVisitorBase.visit(Dot dot) |
abstract AbstractExpression |
ExpressionVisitor.visit(Dot dot) |
AbstractExpression |
ExpressionVisitorBase.visit(ElementConstructor elementConstructor) |
abstract AbstractExpression |
ExpressionVisitor.visit(ElementConstructor elementConstructor) |
AbstractExpression |
ExpressionVisitorBase.visit(FLWOR flwor) |
abstract AbstractExpression |
ExpressionVisitor.visit(FLWOR flwor) |
AbstractExpression |
ExpressionVisitorBase.visit(FunCall func) |
abstract AbstractExpression |
ExpressionVisitor.visit(FunCall func) |
AbstractExpression |
ExpressionVisitorBase.visit(FunctionDefinition func) |
abstract AbstractExpression |
ExpressionVisitor.visit(FunctionDefinition func) |
AbstractExpression |
ExpressionVisitorBase.visit(InstanceOf expr) |
abstract AbstractExpression |
ExpressionVisitor.visit(InstanceOf instanceOf) |
AbstractExpression |
ExpressionVisitorBase.visit(Let let) |
abstract AbstractExpression |
ExpressionVisitor.visit(Let let) |
AbstractExpression |
ExpressionVisitorBase.visit(LiteralExpression literal) |
abstract AbstractExpression |
ExpressionVisitor.visit(LiteralExpression literal) |
AbstractExpression |
ExpressionVisitorBase.visit(PathExpression path) |
abstract AbstractExpression |
ExpressionVisitor.visit(PathExpression path) |
AbstractExpression |
ExpressionVisitorBase.visit(PathStep step) |
abstract AbstractExpression |
ExpressionVisitor.visit(PathStep step) |
AbstractExpression |
ExpressionVisitorBase.visit(Predicate predicate) |
abstract AbstractExpression |
ExpressionVisitor.visit(Predicate predicate) |
AbstractExpression |
ExpressionVisitorBase.visit(ProcessingInstructionConstructor pi) |
abstract AbstractExpression |
ExpressionVisitor.visit(ProcessingInstructionConstructor processingInstructionConstructor) |
AbstractExpression |
ExpressionVisitorBase.visit(Root root) |
abstract AbstractExpression |
ExpressionVisitor.visit(Root root) |
AbstractExpression |
ExpressionVisitorBase.visit(Satisfies satisfies) |
abstract AbstractExpression |
ExpressionVisitor.visit(Satisfies satisfies) |
AbstractExpression |
ExpressionVisitorBase.visit(Sequence seq) |
abstract AbstractExpression |
ExpressionVisitor.visit(Sequence sequence) |
AbstractExpression |
ExpressionVisitorBase.visit(Subsequence subseq) |
abstract AbstractExpression |
ExpressionVisitor.visit(Subsequence subsequence) |
AbstractExpression |
ExpressionVisitorBase.visit(TextConstructor textConstructor) |
abstract AbstractExpression |
ExpressionVisitor.visit(TextConstructor textConstructor) |
AbstractExpression |
ExpressionVisitorBase.visit(TreatAs treat) |
abstract AbstractExpression |
ExpressionVisitor.visit(TreatAs treat) |
AbstractExpression |
ExpressionVisitorBase.visit(UnaryMinus unaryMinus) |
abstract AbstractExpression |
ExpressionVisitor.visit(UnaryMinus predicate) |
AbstractExpression |
ExpressionVisitorBase.visit(Variable var) |
abstract AbstractExpression |
ExpressionVisitor.visit(Variable variable) |
protected AbstractExpression |
ExpressionVisitorBase.visitDefault(AbstractExpression expr)
This method is called by every visit() method in this class.
|
protected AbstractExpression |
ExpressionVisitorBase.visitSubs(AbstractExpression expr) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
AbstractExpression.appendSub(StringBuilder buf,
AbstractExpression sub)
append the sub-expression to the buffer, wrapping it in parentheses if its precedence is
lower than or equal to this expression's.
|
boolean |
AbstractExpression.deepEquals(AbstractExpression oex) |
boolean |
AbstractExpression.equivalent(AbstractExpression other) |
boolean |
Predicate.geq(AbstractExpression other) |
boolean |
AbstractExpression.geq(AbstractExpression other) |
boolean |
Root.geq(AbstractExpression other) |
boolean |
PathExpression.geq(AbstractExpression other) |
boolean |
Predicate.matchDown(AbstractExpression fieldExpr,
AbstractExpression fromExpr) |
boolean |
AbstractExpression.matchDown(AbstractExpression fieldExpr,
AbstractExpression fromExpr)
Traverse downwards, comparing with fromExpr for equivalence until one bottoms out,
ignoring fromExpr (since it has already been checked).
|
boolean |
PathExpression.matchDown(AbstractExpression fieldExpr,
AbstractExpression fromExpr) |
protected boolean |
BinaryOperation.propEquals(AbstractExpression other) |
protected boolean |
AbstractExpression.propEquals(AbstractExpression oex) |
boolean |
LiteralExpression.propEquals(AbstractExpression other) |
boolean |
FunCall.propEquals(AbstractExpression other) |
boolean |
PathStep.propEquals(AbstractExpression other) |
boolean |
BinaryOperation.propGreaterEqual(AbstractExpression other) |
boolean |
AbstractExpression.propGreaterEqual(AbstractExpression oex) |
boolean |
PathStep.propGreaterEqual(AbstractExpression other) |
AbstractExpression |
AbstractExpression.replaceRoot(AbstractExpression replacement)
If this has absolute subexpressions, replace them with the replacement expression
(see
Root.replaceRoot(AbstractExpression) |
AbstractExpression |
Root.replaceRoot(AbstractExpression replacement)
replace this with the given expression
|
void |
FunCall.setArguments(AbstractExpression... args) |
void |
PropEquiv.setExpression(AbstractExpression expr) |
void |
Predicate.setFilter(AbstractExpression filter) |
void |
Subsequence.setLengthExpr(AbstractExpression ae) |
void |
Subsequence.setSequence(AbstractExpression ae) |
void |
Subsequence.setStartExpr(AbstractExpression ae) |
protected void |
AbstractExpression.setSubs(AbstractExpression... subExprs) |
protected AbstractExpression |
ExpressionVisitorBase.visitDefault(AbstractExpression expr)
This method is called by every visit() method in this class.
|
protected AbstractExpression |
ExpressionVisitorBase.visitSubs(AbstractExpression expr) |
| Constructor and Description |
|---|
BinaryOperation(AbstractExpression op1,
BinaryOperation.Operator operator,
AbstractExpression op2) |
FunCall(QName name,
ValueType returnType,
AbstractExpression... arguments) |
PathExpression(AbstractExpression lhs,
AbstractExpression rhs) |
Predicate(AbstractExpression base,
AbstractExpression filter) |
PropEquiv(AbstractExpression expr) |
SearchCall(AbstractExpression abstractExpression)
used to convert a generic lux:search FunCall into a SearchCall
|
Sequence(AbstractExpression... contents) |
Subsequence(AbstractExpression sequence,
AbstractExpression start) |
Subsequence(AbstractExpression sequence,
AbstractExpression start,
AbstractExpression length) |
UnaryMinus(AbstractExpression operand) |
| Modifier and Type | Class and Description |
|---|---|
class |
AtomizedSequence
This class exists purely as a marker for the optimizer.
|
class |
AttributeConstructor |
class |
CastableExpression |
class |
CommentConstructor |
class |
ComputedElementConstructor |
class |
Conditional
represents xquery conditionals (if, then, else)
|
class |
DocumentConstructor |
class |
ElementConstructor |
class |
FLWOR |
class |
FunctionDefinition |
class |
InstanceOf |
class |
Let |
class |
ProcessingInstructionConstructor |
class |
Satisfies |
class |
TextConstructor |
class |
TreatAs |
class |
Variable |
| Modifier and Type | Method and Description |
|---|---|
AbstractExpression |
FLWOR.replaceRoot(AbstractExpression replacement) |
void |
VariableBindingClause.setSequence(AbstractExpression seq) |
abstract void |
FLWORClause.setSequence(AbstractExpression seq) |
void |
OrderByClause.setSequence(AbstractExpression seq) |
void |
WhereClause.setSequence(AbstractExpression seq) |
void |
Variable.setValue(AbstractExpression value) |
Copyright © 2013. All Rights Reserved.