Package org.basex.query.expr
Class CmpG
- Direct Known Subclasses:
CmpHashG,CmpSimpleG
General comparison.
- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Nested Class Summary
Nested Classes -
Field Summary
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncopy(CompileContext cc, IntObjMap<Var> vm) Copies an expression.Returns a string description of the expression.final booleanThis function is e.g.final booleanChecks if an expression can be rewritten to an index access.final CmpGinvert()If possible, returns an expression with inverted operands.item(QueryContext qc, InputInfo ii) Evaluates the expression and returns the resulting item, orEmpty.VALUEif the expression yields an empty sequence.mergeEbv(Expr expr, boolean or, CompileContext cc) Tries to merge two expressions that are part of an EBV test.final ExprOptimizes an already compiled expression without recompiling its sub-expressions.final CmpV.OpVopV()Returns the value operator of the expression.final voidCreates a query plan.final voidplan(QueryString qs) Creates a query string.Methods inherited from class org.basex.query.expr.Arr
accept, allAreValues, args, checkUp, compile, copyAll, count, exprSize, flatten, has, inline, inline, inlineable, mayBePositional, simplifyAllMethods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, ebv, iter, refineType, seqType, size, test, toArray, toArray, toAtomItem, toB64, toB64, toBin, toBin, toBoolean, toBoolean, toBytes, toBytes, toDouble, toDouble, toElem, toFloat, toFunc, toItem, toItem, toLong, toLong, toMap, toMap, toNode, toNode, toNodeOrNull, toNumber, toNumberOrNull, toQNm, toQNm, toToken, toToken, toTokenOrNull, toZeroToken, valueMethods inherited from class org.basex.query.expr.Expr
arg, atomItem, atomIter, data, data, ddo, funcType, hasFreeVars, isSimple, markTailCalls, simplifyFor, typeCheck, uses, vacuous, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
toErrorString, toString
-
Constructor Details
-
CmpG
Constructor.- Parameters:
expr1- first expressionexpr2- second expressionop- operatorcoll- collation (can benull)sc- static contextinfo- input info
-
-
Method Details
-
optimize
Description copied from class:ExprOptimizes an already compiled expression without recompiling its sub-expressions.- Overrides:
optimizein classExpr- Parameters:
cc- compilation context- Returns:
- optimized expression
- Throws:
QueryException- query exception
-
item
Description copied from class:ExprEvaluates the expression and returns the resulting item, orEmpty.VALUEif the expression yields an empty sequence. If this method is not implemented,Expr.value(QueryContext)must be implemented instead.- Overrides:
itemin classParseExpr- Parameters:
qc- query contextii- input info (only required bySeqinstances, which have no input info)- Returns:
- item or
Empty.VALUE - Throws:
QueryException- query exception
-
invert
Description copied from class:CmpIf possible, returns an expression with inverted operands. -
opV
Description copied from class:CmpReturns the value operator of the expression. -
mergeEbv
Description copied from class:ExprTries to merge two expressions that are part of an EBV test. Called byAnd,Or),StepandFilter. Overwritten byCmpG,CmpIR,CmpR,CmpSR,ItrPos,Posand others.- Overrides:
mergeEbvin classExpr- Parameters:
expr- second expressionor- union or intersectioncc- compilation context- Returns:
- optimized expression or
null - Throws:
QueryException- query exception
-
indexAccessible
Description copied from class:ExprChecks if an expression can be rewritten to an index access. If so, the index expression will be bound toIndexInfo.expr. This method will be called by thePathexpression.- Overrides:
indexAccessiblein classExpr- Parameters:
ii- index info- Returns:
- true if an index can be used
- Throws:
QueryException- query exception
-
copy
Description copied from class:ExprCopies an expression. Used for inlining functions, or for copying static queries. It is utilized byVarRef.inline(org.basex.query.InlineContext),FuncItem.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext),Closure.inline(org.basex.query.InlineContext)andStaticFunc.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext).- Specified by:
copyin classExpr- Parameters:
cc- compilation contextvm- mapping from old variable IDs to new variable copies. Required byClosure.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)andVarRef.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)- Returns:
- copied expression
-
equals
Description copied from class:ArrThis function is e.g. called by:Must be overwritten by implementing class.If.optimize(CompileContext),Switch.optimize(CompileContext),Typeswitch.optimize(CompileContext), in order to discard identical expressions.CmpR.mergeEbv(Expr, boolean, CompileContext)orCmpSR.mergeEbv(Expr, boolean, CompileContext), in order to merge expressions with identical input.optimize(CompileContext)orCmpV.optimize(CompileContext), in order to pre-evaluate equality tests.optimize(CompileContext)orPos.get(Expr, CmpV.OpV, InputInfo, CompileContext), in order to compare the start and end value.PathCache, in order to find identical root values at runtime.
-
description
Description copied from class:ExprInfoReturns a string description of the expression. This method is only called by error messages. Contrary to theExprInfo.toString()method, arguments are not included in the output.- Overrides:
descriptionin classExprInfo- Returns:
- result of check
-
plan
Description copied from class:ExprInfoCreates a query plan. -
plan
Description copied from class:ExprInfoCreates a query string.
-