Modifier | Constructor and Description |
---|---|
protected |
Preds(InputInfo info,
Expr[] preds)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
checkUp()
Checks if all updating expressions are correctly placed.
|
Expr |
compile(QueryContext qc,
VarScope scp)
Compiles and optimizes the expression, assigns types and cardinalities.
|
VarUsage |
count(Var var)
Checks how often a variable is used in this expression.
|
boolean |
has(Expr.Flag flag)
Indicates if an expression has the specified compiler property.
|
Expr |
merge(Expr root,
QueryContext qc,
VarScope scp)
Merges a single predicate with the root expression and returns the resulting expression,
or returns a self reference if the expression cannot be merged.
|
protected static boolean |
num(Expr expr)
Checks if the specified expression returns a deterministic numeric value.
|
Expr |
optimize(QueryContext qc,
VarScope scp)
Optimizes an already compiled expression without recompiling its sub-expressions.
|
void |
plan(FElem plan)
Creates an expression tree.
|
protected boolean |
preds(Item item,
QueryContext qc)
Checks if the predicates are successful for the specified item.
|
boolean |
removable(Var var)
Checks if the specified variable is replaceable by a context value.
|
protected void |
seqType(SeqType st,
long s)
Assigns the sequence type and
ParseExpr.size value. |
String |
toString() |
atomItem, atomValue, checkAtomic, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, compBln, copyType, ctxValue, ebv, item, iter, optPre, optPre, preEval, seqType, seqType, size, test, toArray, toArray, toAtomItem, toB64, toB64, toBin, toBin, toBoolean, toBoolean, toBytes, toBytes, toDouble, toDouble, toElem, toEmptyNode, toEmptyToken, toFloat, toFunc, toItem, toLong, toLong, toMap, toMap, toNode, toNode, toNumber, toQNm, toQNm, toToken, toToken, value
accept, atomIter, copy, data, exprSize, hasFreeVars, indexAccessible, inline, inlineAll, isEmpty, isFunction, isVacuous, isValue, iterable, markTailCalls, optimizeEbv, sameAs, typeCheck, uses, visitAll
addPlan, addPlan, description, planAttr, planElem, toErrorString
public Expr[] preds
public void checkUp() throws QueryException
Expr
checkUp
in class Expr
QueryException
- query exceptionpublic Expr compile(QueryContext qc, VarScope scp) throws QueryException
Expr
QueryContext.compile()
.compile
in class Expr
qc
- query contextscp
- variable scopeQueryException
- query exceptionpublic Expr optimize(QueryContext qc, VarScope scp) throws QueryException
Expr
optimize
in class Expr
qc
- query contextscp
- variable scopeQueryException
- query exceptionprotected final void seqType(SeqType st, long s)
ParseExpr.size
value.st
- sequence type of inputs
- size of input (-1
if unknown)protected final boolean preds(Item item, QueryContext qc) throws QueryException
item
- item to be checkedqc
- query contextQueryException
- query exceptionpublic Expr merge(Expr root, QueryContext qc, VarScope scp) throws QueryException
Where.optimize(org.basex.query.QueryContext, org.basex.query.var.VarScope)
.qc
- query contextscp
- variable scoperoot
- root expressionQueryException
- query exceptionprotected static boolean num(Expr expr)
expr
- expressionpublic boolean has(Expr.Flag flag)
Expr
true
if at least one test is successful.public boolean removable(Var var)
Expr
removable(org.basex.query.var.Var)
if one of the variables is used within a predicate.Path.removable(org.basex.query.var.Var)
if the variable occurs within the path.GFLWOR.compile(QueryContext, VarScope)
to rewrite where
clauses into predicates.public VarUsage count(Var var)
Expr
SwitchCase.countCases(org.basex.query.var.Var)
or (indirectly)
GFLWOR.inlineLets(org.basex.query.QueryContext, org.basex.query.var.VarScope)
.public void plan(FElem plan)
ExprInfo
Copyright © 2005–2015 BaseX Team. All rights reserved.