public final class CmpG extends Cmp
Modifier and Type | Class and Description |
---|---|
static class |
CmpG.OpG
Comparators.
|
Constructor and Description |
---|
CmpG(Expr expr1,
Expr expr2,
CmpG.OpG op,
Collation coll,
StaticContext sc,
InputInfo info)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
Expr |
compile(QueryContext qc,
VarScope scp)
Compiles and optimizes the expression, assigns types and cardinalities.
|
CmpG |
copy(QueryContext qc,
VarScope scp,
IntObjMap<Var> vs)
Copies an expression.
|
String |
description()
Returns a string description of the expression.
|
boolean |
indexAccessible(IndexInfo ii)
Checks if an expression can be rewritten to an index access.
|
CmpG |
invert()
If possible, inverts the operands of the expression.
|
Bln |
item(QueryContext qc,
InputInfo ii)
Evaluates the expression and returns the resulting item,
or a
null reference if the expression yields an empty sequence. |
Expr |
optimize(QueryContext qc,
VarScope scp)
Optimizes an already compiled expression without recompiling its sub-expressions.
|
Expr |
optimizeEbv(QueryContext qc,
VarScope scp)
|
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, markTailCalls, sameAs, typeCheck, uses, visitAll
public Expr compile(QueryContext qc, VarScope scp) throws QueryException
Expr
QueryContext.compile()
.compile
in class Arr
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 Expr optimizeEbv(QueryContext qc, VarScope scp)
Expr
This method is e.g. overwritten by expressions like CmpG
, CmpV
,
FnBoolean
, FnExists
, Path
or Filter
.
It is called at compile time by expressions that perform
effective boolean value tests (e.g. If
or Preds
).
If the arguments of the called expression return a boolean anyway,
the expression will be simplified.
Example in CmpV
:
if($x eq true())
is rewritten to if($x)
if $x
is known to return a single boolean.
optimizeEbv
in class Expr
qc
- query contextscp
- variable scopepublic Bln 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 CmpG invert()
Cmp
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 CmpG copy(QueryContext qc, VarScope scp, IntObjMap<Var> vs)
Expr
public void plan(FElem plan)
ExprInfo
public String description()
ExprInfo
ExprInfo.toString()
method,
arguments are not included in the output.description
in class ExprInfo
Copyright © 2005–2015 BaseX Team. All rights reserved.