final VarExprList lstExpr = query.getGroupBy(); String grpVar = ""; for (Var expr : lstExpr.getVars()) { grpVar = expr.getName();
private static boolean safeToTransform(Collection<Var> varsEquality, VarExprList varsExprList) { // If the named variable is used, unsafe to rewrite. return Collections.disjoint(varsExprList.getVars(), varsEquality); }
private static boolean safeToTransform(Collection<Var> varsEquality, VarExprList varsExprList) { // If the named variable is used, unsafe to rewrite. return Collections.disjoint(varsExprList.getVars(), varsEquality); }
private static boolean safeToTransform(Collection<Var> varsEquality, VarExprList varsExprList) { // If the named variable is used, unsafe to rewrite. return Collections.disjoint(varsExprList.getVars(), varsEquality); }
/** Call the action for each variable, in order. * The expression may be null. * Not called when there is no expression, just a variable. */ public void forEachVarExpr(BiConsumer<Var, Expr> action) { //* See {@link #forEach} getVars().forEach((v) -> { // Maybe null. Expr e = exprs.get(v) ; action.accept(v, e); }) ; }
/** Return a list of the variables requested (SELECT) */ public List<Var> getProjectVars() { // Ensure "SELECT *" processed setResultVars() ; return projectVars.getVars() ; }
@Override public void visit(OpAssign opAssign) { // Unknown position unknownAcc.addAll(opAssign.getVarExprList().getVars()) ; }
@Override public void visit(OpExtend opExtend) { // Unknown position unknownAcc.addAll(opExtend.getVarExprList().getVars()) ; }
public void putAssignments(VarExprList assignments) { for (Var var : assignments.getVars()) { int i = getUsageCount(var); if (i <= 2) { this.assignments.put(var, assignments.getExpr(var)); } else { this.assignments.remove(var); } } }
/** Return a list of the variables requested (SELECT) */ public List<String> getResultVars() { // Ensure "SELECT *" processed setResultVars() ; return Var.varNames(projectVars.getVars()) ; }
@Override public void visit(OpGroup opGroup) { Collection<Var> vars = new ArrayList<>(); for (Var var : opGroup.getGroupVars().getVars()) { vars.add(var); ExprVars.varsMentioned(vars, opGroup.getGroupVars().getExpr(var)); } }
@Override public void visit(OpExtend opExtend) { Collection<Var> vars = new ArrayList<>(); for (Var var : opExtend.getVarExprList().getVars()) { vars.add(var); ExprVars.varsMentioned(vars, opExtend.getVarExprList().getExpr(var)); } action(vars); }
@Override public void build() { if (query.getProject().getVars().isEmpty()) { query.setQueryResultStar(true); } aggHandler.build(); // handle the SELECT * case query.getProjectVars(); } }
@Override public void visit(OpAssign opAssign) { Collection<Var> vars = new ArrayList<>(); for (Var var : opAssign.getVarExprList().getVars()) { vars.add(var); ExprVars.varsMentioned(vars, opAssign.getVarExprList().getExpr(var)); } action(vars); }
@Override public void visit(ElementSubQuery el) { el.getQuery().setResultVars() ; VarExprList x = el.getQuery().getProject() ; acc.addAll(x.getVars()) ; }
static private Binding copyProject(VarExprList vars, Binding binding, ExecutionContext execCxt) { // No group vars (implicit or explicit) => working on whole result set. // Still need a BindingMap to assign to later. BindingMap x = BindingFactory.create(); for ( Var var : vars.getVars() ) { Node node = vars.get(var, binding, execCxt); // Null returned for unbound and error. if ( node != null ) { x.add(var, node); } } return x; } }
@Override public void build() { if (query.getProject().getVars().isEmpty()) { query.setQueryResultStar(true); } aggHandler.build(); // handle the SELECT * case query.getProjectVars(); } }
private VarExprList transformVarExprList(VarExprList varExprList) { VarExprList varExprList2 = new VarExprList(); for ( Var v : varExprList.getVars() ) { // if ( binding.contains(v)) // // Already bound. No need to do anything because the // // logical assignment will test value. // continue ; Expr expr = varExprList.getExpr(v); expr = expr.copySubstitute(binding); varExprList2.add(v, expr); } return varExprList2; }
private VarExprList processVarExprList(VarExprList exprs, ExprTransform transform) { VarExprList newExprs = new VarExprList(); for (Var v : exprs.getVars()) { Expr e = exprs.getExpr(v); Expr e2 = ExprTransformer.transform(transform, e); newExprs.add(v, e2); } return newExprs; }
@Override public void visitGroupBy(Query query) { if (query.hasGroupBy()) { VarExprList x = query.getGroupBy(); for (Var v : x.getVars()) { Expr expr = x.getExpr(v); if (expr == null) newQuery.addGroupBy(v); else newQuery.addGroupBy(v, expr); } } }