|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.basex.data.ExprInfo
org.basex.query.expr.Expr
org.basex.query.expr.ParseExpr
org.basex.query.gflwor.GFLWOR.Clause
org.basex.query.gflwor.GroupBy
public final class GroupBy
The GFLWOR group by
expression.
Nested Class Summary | |
---|---|
static class |
GroupBy.Spec
Grouping spec. |
Nested classes/interfaces inherited from class org.basex.query.expr.Expr |
---|
Expr.Flag |
Field Summary |
---|
Fields inherited from class org.basex.query.expr.ParseExpr |
---|
info, size, type |
Constructor Summary | |
---|---|
GroupBy(GroupBy.Spec[] gs,
VarRef[] pr,
Var[] pst,
InputInfo ii)
Constructor. |
Method Summary | |
---|---|
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. |
GroupBy |
compile(QueryContext cx,
VarScope sc)
Compiles and optimizes the expression, assigns data types and cardinalities. |
GroupBy |
copy(QueryContext ctx,
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 ctx,
VarScope scp,
Var v,
Expr e)
Inlines an expression into this one, replacing all references to the given variable. |
GroupBy |
optimize(QueryContext ctx,
VarScope scp)
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 item. |
java.lang.String |
toString()
|
Methods inherited from class org.basex.query.gflwor.GFLWOR.Clause |
---|
declares, item, iter, value, vars |
Methods inherited from class org.basex.query.expr.ParseExpr |
---|
checkAdmin, checkAllUp, checkBinary, checkBln, checkColl, checkCreate, checkCtx, checkDbl, checkDBNode, checkEStr, checkEStr, checkFunc, checkItem, checkItr, checkItr, checkMap, checkNode, checkNode, checkNode, checkNoEmpty, checkNoneUp, checkNoUp, checkQNm, checkStr, checkStr, checkStrBin, checkType, checkWrite, compBln, copyType, ebv, optPre, preEval, size, test, type |
Methods inherited from class org.basex.query.expr.Expr |
---|
addText, compEbv, copy, hasFreeVars, indexAccessible, indexEquivalent, inlineAll, isEmpty, isFunction, isItem, isVacuous, isValue, iterable, markTailCalls, sameAs, uses, visitAll |
Methods inherited from class org.basex.data.ExprInfo |
---|
addPlan, addPlan, description, info, planAttr, planElem |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public GroupBy(GroupBy.Spec[] gs, VarRef[] pr, Var[] pst, InputInfo ii)
gs
- grouping specspr
- references to pre-grouping variablespst
- post-grouping variablesii
- input infoMethod Detail |
---|
public void plan(FElem plan)
ExprInfo
plan
in class ExprInfo
plan
- root elementpublic java.lang.String toString()
toString
in class ExprInfo
public boolean has(Expr.Flag flag)
Expr
Expr.compile(org.basex.query.QueryContext, org.basex.query.var.VarScope)
methods to test properties of sub-expressions.
It returns true
if at least one test is successful.
has
in class Expr
flag
- flag to be found
public GroupBy compile(QueryContext cx, VarScope sc) throws QueryException
Expr
compile
in class GFLWOR.Clause
cx
- query contextsc
- variable scope
QueryException
- query exceptionpublic GroupBy optimize(QueryContext ctx, VarScope scp) throws QueryException
Expr
optimize
in class GFLWOR.Clause
ctx
- query contextscp
- variable scope
QueryException
- query exceptionpublic boolean removable(Var v)
Expr
Preds.removable(org.basex.query.var.Var)
, if one of the variables is used within a predicate.MixedPath.removable(org.basex.query.var.Var)
, if the variable occurs within the path.GFLWOR.compile(org.basex.query.QueryContext, org.basex.query.var.VarScope)
to rewrite where clauses
into predicates.
removable
in class Expr
v
- variable to be replaced
public VarUsage count(Var v)
Expr
count
in class Expr
v
- variable to look for
VarUsage
public GFLWOR.Clause inline(QueryContext ctx, VarScope scp, Var v, Expr e) throws QueryException
Expr
inline
in class GFLWOR.Clause
ctx
- query context for recompilationscp
- variable scope for recompilationv
- variable to replacee
- expression to inline
null
otherwise
QueryException
- query exceptionpublic GroupBy copy(QueryContext ctx, VarScope scp, IntObjMap<Var> vs)
Expr
copy
in class GFLWOR.Clause
ctx
- query contextscp
- variable scope for creating new variablesvs
- mapping from old variable IDs to new variable copies
public boolean accept(ASTVisitor visitor)
Expr
accept
in class Expr
visitor
- visitor
public void checkUp() throws QueryException
Expr
checkUp
in class Expr
QueryException
- query exceptionpublic int exprSize()
Expr
exprSize
in class Expr
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |