private void processVarExprList(VarExprList varExprList) { Map<Var, Expr> map = varExprList.getExprs() ; for ( Entry<Var, Expr> e : map.entrySet() ) { defines.add(e.getKey()) ; e.getValue().varsMentioned(filterMentions); } }
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 ; }
@Override public boolean hasGroupBy() { return !getGroupBy().isEmpty(); }
private static void _addVar(VarExprList varExprList, Var v) { if ( varExprList.contains(v) ) { Expr expr = varExprList.getExpr(v) ; if ( expr != null ) // SELECT (?a+?b AS ?x) ?x throw new QueryBuildException("Duplicate variable (had an expression) in result projection '"+v+"'") ; // SELECT ?x ?x if ( ! ARQ.allowDuplicateSelectColumns ) return ; // else drop thorugh and have two variables of the same name. } varExprList.add(v) ; }
VarExprList exprs = new VarExprList() ; // Assignments to be done. List<Var> vars = new ArrayList<Var>() ; // projection variables if ( ! projectVars.isEmpty() && ! query.isQueryResultStar()) if ( projectVars.size() == 0 && query.isSelectType() ) Log.warn(this,"No project variables") ; for ( Var v : query.getProject().getVars() ) Expr e = query.getProject().getExpr(v) ; if ( e != null ) exprs.add(v, e2) ; if ( ! exprs.isEmpty() )
private static void checkExprListAssignment(Collection<Var> vars, VarExprList exprList) { Set<Var> vars2 = new LinkedHashSet<Var>(vars) ; for ( Iterator<Var> iter = exprList.getVars().iterator() ; iter.hasNext() ; ) { // In scope? Var v = iter.next(); Expr e = exprList.getExpr(v) ; checkAssignment(vars2, e, v) ; vars2.add(v) ; } }
static public Op assign(Op op, VarExprList exprs) { if ( !(op instanceof OpAssign) ) return createAssign(op, exprs) ; OpAssign opAssign = (OpAssign)op ; for (Var var : exprs.getVars()) { if ( opAssign.assignments.contains(var) ) return createAssign(op, exprs) ; } opAssign.assignments.addAll(exprs) ; return opAssign ; }
static private Op createExtend(Op op, Var var, Expr expr) { VarExprList x = new VarExprList() ; x.add(var, expr) ; return new OpExtend(op, x) ; }
/** Return a list of the variables requested (SELECT) */ public List<Var> getProjectVars() { // Ensure "SELECT *" processed setResultVars() ; return projectVars.getVars() ; }
VarExprList expr = new VarExprList(); for (Node n : s.getMap().keySet()) { String name = n.getName(); assert exp instanceof Var; expr.add(Var.alloc(name) ,new NodeValueNode(exp)); if (!expr.isEmpty()) { bind = OpExtend.extend(body, expr); } else {
static private Op createExtend(Op op, VarExprList exprs) { // Create, copying the var-expr list VarExprList x = new VarExprList() ; x.addAll(exprs) ; return new OpExtend(op, x) ; }
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. Binding x = new BindingMap() ; for ( Iterator<Var> iter = vars.getVars().iterator() ; iter.hasNext() ; ) { Var var = iter.next() ; Node node = vars.get(var, binding, execCxt) ; // Null returned for unbound and error. if ( node != null ) x.add(var, node) ; } return x ; } }
public QueryIterAssign(QueryIterator input, VarExprList exprs, ExecutionContext qCxt, boolean mustBeNewVar) { // mustBeNewVar : any variable introduced must not already exist. // true => BIND // false => LET // Syntax checking of BIND should have assured this. super(input, qCxt) ; this.exprs = exprs ; this.mustBeNewVar = mustBeNewVar ; }
public VarExprList(Var var, Expr expr) { this() ; add(var, expr) ; }
@Override public int hashCode() { int x = getSubOp().hashCode() ; if ( groupVars != null ) x ^= groupVars.hashCode() ; if ( aggregators != null ) x ^= aggregators.hashCode() ; return x ; }
static public Op assign(Op op, Var var, Expr expr) { if ( !(op instanceof OpAssign) ) return createAssign(op, var, expr) ; OpAssign opAssign = (OpAssign)op ; if ( opAssign.assignments.contains(var) ) // Same variable : // Layer one assignment over the top of another return createAssign(op, var, expr) ; opAssign.add(var, expr) ; return opAssign ; }
VarExprList exprs = new VarExprList() ; // Assignments to be done. List<Var> vars = new ArrayList<Var>() ; // projection variables if ( ! projectVars.isEmpty() && ! query.isQueryResultStar()) if ( projectVars.size() == 0 && query.isSelectType() ) Log.warn(this,"No project variables") ; for ( Var v : query.getProject().getVars() ) Expr e = query.getProject().getExpr(v) ; if ( e != null ) exprs.add(v, e2) ; if ( ! exprs.isEmpty() )