public final class Window extends GFLWOR.Clause
window
clause.Modifier and Type | Class and Description |
---|---|
static class |
Window.Condition
A window
start of end condition. |
Constructor and Description |
---|
Window(InputInfo info,
boolean sliding,
Var var,
Expr expr,
Window.Condition start,
boolean only,
Window.Condition end)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
accept(ASTVisitor visitor)
Traverses this expression, notifying the visitor of declared and used variables,
and checking the tree for other recursive properties.
|
void |
checkUp()
Checks if all updating expressions are correctly placed.
|
GFLWOR.Clause |
compile(QueryContext qc,
VarScope scp)
Compiles and optimizes the expression, assigns types and cardinalities.
|
Window |
copy(QueryContext qc,
VarScope scp,
IntObjMap<Var> vs)
Copies an expression.
|
VarUsage |
count(Var v)
Checks how often a variable is used in this expression.
|
int |
exprSize()
Counts the number of expressions in this expression's sub-tree.
|
boolean |
has(Expr.Flag flag)
Indicates if an expression has the specified compiler property.
|
GFLWOR.Clause |
inline(QueryContext qc,
VarScope scp,
Var v,
Expr ex)
Inlines an expression into this one, replacing all references to the given variable.
|
GFLWOR.Clause |
optimize(QueryContext qc,
VarScope sc)
Optimizes an already compiled expression without recompiling its sub-expressions.
|
void |
plan(FElem plan)
Creates an expression tree.
|
boolean |
removable(Var v)
Checks if the specified variable is replaceable by a context value.
|
String |
toString() |
declares, item, iter, value, vars
atomItem, atomValue, checkAtomic, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, compBln, copyType, ctxValue, ebv, 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
atomIter, data, hasFreeVars, indexAccessible, inlineAll, isEmpty, isFunction, isVacuous, isValue, iterable, markTailCalls, optimizeEbv, sameAs, typeCheck, uses, visitAll
addPlan, addPlan, description, planAttr, planElem, toErrorString
public Window(InputInfo info, boolean sliding, Var var, Expr expr, Window.Condition start, boolean only, Window.Condition end) throws QueryException
info
- input infosliding
- sliding window
flagvar
- window variableexpr
- sequencestart
- start conditiononly
- only
flagend
- end conditionQueryException
- query exceptionpublic GFLWOR.Clause compile(QueryContext qc, VarScope scp) throws QueryException
Expr
QueryContext.compile()
.compile
in class GFLWOR.Clause
qc
- query contextscp
- variable scopeQueryException
- query exceptionpublic GFLWOR.Clause optimize(QueryContext qc, VarScope sc) throws QueryException
Expr
optimize
in class GFLWOR.Clause
qc
- query contextsc
- variable scopeQueryException
- query exceptionpublic boolean has(Expr.Flag flag)
Expr
true
if at least one test is successful.public boolean removable(Var v)
Expr
Preds.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 v)
Expr
SwitchCase.countCases(org.basex.query.var.Var)
or (indirectly)
GFLWOR.inlineLets(org.basex.query.QueryContext, org.basex.query.var.VarScope)
.public GFLWOR.Clause inline(QueryContext qc, VarScope scp, Var v, Expr ex) throws QueryException
Expr
GFLWOR.inlineLets(org.basex.query.QueryContext, org.basex.query.var.VarScope)
and For.toPredicate(org.basex.query.QueryContext, org.basex.query.var.VarScope, org.basex.query.expr.Expr)
,
and the variable reference is replaced in VarRef.inline(org.basex.query.QueryContext, org.basex.query.var.VarScope, org.basex.query.var.Var, org.basex.query.expr.Expr)
.inline
in class GFLWOR.Clause
qc
- query context for reoptimizationscp
- variable scope for reoptimizationv
- variable to replaceex
- expression to inlinenull
otherwiseQueryException
- query exceptionpublic Window copy(QueryContext qc, VarScope scp, IntObjMap<Var> vs)
Expr
copy
in class GFLWOR.Clause
qc
- query contextscp
- variable scope for creating new variablesvs
- mapping from old variable IDs to new variable copiespublic boolean accept(ASTVisitor visitor)
Expr
public void plan(FElem plan)
ExprInfo
public void checkUp() throws QueryException
Expr
checkUp
in class Expr
QueryException
- query exceptionpublic int exprSize()
Expr
StaticFunc.inline(org.basex.query.QueryContext, org.basex.query.util.list.AnnList, org.basex.query.expr.Expr)
to check if an expression
is small enough to be inlined.Copyright © 2005–2015 BaseX Team. All rights reserved.