public final class And extends Arr
Constructor and Description |
---|
And(InputInfo info,
Expr... exprs)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
Expr |
compile(QueryContext qc,
VarScope scp)
Compiles and optimizes the expression, assigns types and cardinalities.
|
And |
copy(QueryContext qc,
VarScope scp,
IntObjMap<Var> vars)
Copies an expression.
|
boolean |
indexAccessible(IndexInfo ii)
Checks if an expression can be rewritten to an index access.
|
Item |
item(QueryContext qc,
InputInfo ii)
Evaluates the expression and returns the resulting item,
or a
null reference if the expression yields an empty sequence. |
void |
markTailCalls(QueryContext qc)
Finds and marks tail calls, enabling TCO.
|
Expr |
optimize(QueryContext qc,
VarScope scp)
Optimizes an already compiled expression without recompiling its sub-expressions.
|
void |
plan(FElem plan)
Creates an expression tree.
|
String |
toString() |
accept, allAreValues, checkUp, copyAll, count, exprSize, has, inline, oneIsEmpty, removable, toString
atomItem, atomValue, checkAtomic, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, compBln, copyType, ctxValue, ebv, 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
atomIter, data, hasFreeVars, inlineAll, isEmpty, isFunction, isVacuous, isValue, iterable, optimizeEbv, sameAs, typeCheck, uses, visitAll
addPlan, addPlan, description, planAttr, planElem, toErrorString
public Expr compile(QueryContext qc, VarScope scp) throws QueryException
Expr
QueryContext.compile()
.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 exceptionpublic Item item(QueryContext qc, InputInfo ii) throws QueryException
Expr
null
reference if the expression yields an empty sequence.
If this method is not overwritten, Expr.iter(QueryContext)
must be implemented by an
expression, as it may be called by this method.item
in class ParseExpr
qc
- query contextii
- input infonull
QueryException
- query exceptionpublic And copy(QueryContext qc, VarScope scp, IntObjMap<Var> vars)
Expr
public boolean indexAccessible(IndexInfo ii) throws QueryException
Expr
IndexInfo.expr
.
This method will be called by Path.index(org.basex.query.QueryContext, org.basex.query.value.Value)
.indexAccessible
in class Expr
ii
- index infoQueryException
- query exceptionpublic final void markTailCalls(QueryContext qc)
Expr
markTailCalls
in class Expr
qc
- query context, null
if the changes should not be reportedCopyright © 2005–2015 BaseX Team. All rights reserved.