public void addAll(VarExprList other) { for ( Var v : other.vars ) { Expr e = other.getExpr( v ); add( v, e ); } }
private static String fmtExprList(VarExprList exprList) { StringBuilder sb = new StringBuilder() ; boolean first = true ; for ( Var v : exprList.getVars() ) { Expr e = exprList.getExpr( v ); if ( !first ) { sb.append( " " ); } first = false; sb.append( "(" ).append( e ).append( " AS " ).append( v ).append( ")" ); } return sb.toString() ; }
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); } } }
@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 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); }
public static void copy(VarExprList dst, VarExprList src) { for(Var v : src.getVars()) { Expr e = src.getExpr(v); if(e == null) { dst.add(v); } else { dst.add(v, e); } } } }
/** Apply the NodeTransform to the variables of a VarExprList. */ public static VarExprList transformVars(NodeTransform transform, VarExprList varExprList) { VarExprList varExprList2 = new VarExprList() ; boolean changed = false ; // Just variables. for ( Var v : varExprList.getVars() ) { Expr expr = varExprList.getExpr(v) ; Var v2 = (Var)transform.apply(v) ; if ( ! Objects.equals(v, v2) ) changed = true ; varExprList2.add(v2, expr) ; } if ( ! changed ) return varExprList ; return varExprList2 ; }
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) ; }
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; }
private VarExprList processUnused(VarExprList assignments) { if (Collections.disjoint(assignments.getVars(), this.tracker.getAssignments().keySet())) return null; VarExprList singleUse = new VarExprList(); for (Var var : assignments.getVars()) { if (this.tracker.getUsageCount(var) == 1) singleUse.add(var, assignments.getExpr(var)); } // If nothing is single use if (singleUse.size() == 0) return null; return singleUse; }
@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); } } }
public VarExprList getVarExprList() { VarExprList result = new VarExprList(); for(Expr item : this.getVarBindings()) { // if(!(item instanceof E_Equals)) { // throw new RuntimeException("Expected E_Equals"); // } E_Equals e = (E_Equals)item; Expr left = e.getArg1(); if(!left.isVariable()) { throw new RuntimeException("Variable expected, instead got: " + left); } Var var = left.asVar(); Expr expr = e.getArg2(); Expr previousValue = result.getExpr(var); if(previousValue != null) { throw new RuntimeException("Redefinition of variable " + var + " in view '" + "no name" + "' with: " + expr + ", was: " + previousValue); //continue; } result.add(var, expr); } return result; }
@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) ; } } }
private VarExprList processAssignments(OpExtendAssign opAssign) { VarExprList orig = opAssign.getVarExprList(); if (!orig.contains(this.var)) return null; if (!orig.getExpr(this.var).equals(this.expr)) return null; VarExprList modified = new VarExprList(); for (Var v : orig.getVars()) { if (!v.equals(this.var)) { modified.add(v, orig.getExpr(v)); } } if (modified.size() > 0 && modified.size() == orig.size()) return null; return modified; }
@Override public void visitSelectResultForm(Query query) { newQuery.setQuerySelectType() ; newQuery.setDistinct(query.isDistinct()) ; VarExprList x = query.getProject() ; for (Var v : x.getVars()) { Expr expr = x.getExpr(v) ; if ( expr == null ) newQuery.addResultVar(v) ; else newQuery.addResultVar(v, expr) ; } }
@Override public void visitSelectResultForm(Query query) { newQuery.setQuerySelectType(); newQuery.setDistinct(query.isDistinct()); VarExprList x = query.getProject(); for (Var v : x.getVars()) { Expr expr = x.getExpr(v); if (expr == null) newQuery.addResultVar(v); else newQuery.addResultVar(v, expr); } }
/** * Add all the variables from the select handler variable. * * @param selectHandler * The select handler to copy the variables from. */ public void addAll(SelectHandler selectHandler) { setReduced(selectHandler.query.isReduced()); setDistinct(selectHandler.query.isDistinct()); query.setQueryResultStar(selectHandler.query.isQueryResultStar()); VarExprList shProjectVars = selectHandler.query.getProject(); VarExprList qProjectVars = query.getProject(); for (Var var : shProjectVars.getVars()) { // make sure there are no duplicates if (!qProjectVars.contains(var)) { qProjectVars.add(var, shProjectVars.getExpr(var)); } } aggHandler.addAll( selectHandler.aggHandler ); }
private void writeNamedExprList(VarExprList project) { start() ; boolean first = true ; for ( Var v : project.getVars() ) { if ( !first ) out.print(" ") ; first = false ; Expr expr = project.getExpr(v) ; if ( expr != null ) { start() ; out.print(v.toString()) ; out.print(" ") ; WriterExpr.output(out, expr, sContext) ; finish() ; } else out.print(v.toString()) ; } finish() ; }