/** Return a list of the variables requested (SELECT) */ public List<Var> getProjectVars() { // Ensure "SELECT *" processed setResultVars() ; return projectVars.getVars() ; }
private static boolean safeToTransform(Collection<Var> varsEquality, VarExprList varsExprList) { // If the named variable is used, unsafe to rewrite. return disjoint(varsExprList.getVars(), varsEquality); }
@Override public void visit(OpAssign opAssign) { acc.addAll(opAssign.getVarExprList().getVars()) ; //opAssign.getSubOp().visit(this) ; }
@Override public void visit(OpAssign opAssign) { // Unknown position unknownAcc.addAll(opAssign.getVarExprList().getVars()) ; }
@Override public void visit(OpExtend opExtend) { acc.addAll(opExtend.getVarExprList().getVars()) ; //opAssign.getSubOp().visit(this) ; }
/** Return a list of the variables requested (SELECT) */ public List<Var> getProjectVars() { // Ensure "SELECT *" processed setResultVars() ; return projectVars.getVars() ; }
@Override public void visit(OpExtend opExtend) { // Unknown position unknownAcc.addAll(opExtend.getVarExprList().getVars()) ; }
@Override public void visit(OpAssign opAssign) { acc.addAll(opAssign.getVarExprList().getVars()) ; }
@Override public void visit(OpExtend opExtend) { acc.addAll(opExtend.getVarExprList().getVars()) ; }
private static boolean safeToTransform(Collection<Var> varsEquality, VarExprList varsExprList) { // If the named variable is used, unsafe to rewrite. return disjoint(varsExprList.getVars(), varsEquality); }
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) ; } }
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) ; } }
/** Return a list of the variables requested (SELECT) */ public List<String> getResultVars() { // Ensure "SELECT *" processed setResultVars() ; return Var.varNames(projectVars.getVars()) ; }
/** 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(ElementSubQuery el) { el.getQuery().setResultVars() ; VarExprList x = el.getQuery().getProject() ; acc.addAll(x.getVars()) ; }
public static void check(Query query) { if ( query.getQueryPattern() == null ) // DESCRIBE may not have a pattern return ; // And now check down the element for subqueries. LinkedHashSet<Var> queryVars = new LinkedHashSet<Var>() ; PatternVarsVisitorChecker visitor = new PatternVarsVisitorChecker(queryVars) ; PatternVars.vars(query.getQueryPattern(), visitor) ; queryVars.addAll(query.getGroupBy().getVars()) ; check(query, queryVars) ; }
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 public Op extend(Op op, VarExprList exprs) { if ( !(op instanceof OpExtend) ) return createExtend(op, exprs) ; OpExtend opExtend = (OpExtend)op ; for (Var var : exprs.getVars()) { if ( opExtend.assignments.contains(var) ) return createExtend(op, exprs) ; } opExtend.assignments.addAll(exprs) ; return opExtend ; }
@Override public void visit(OpAssign opAssign) { VarExprList varExpr = opAssign.getVarExprList() ; List<Var> vars = varExpr.getVars() ; VarExprList varExpr2 = process(varExpr) ; OpAssign opAssign2 = opAssign ; if ( varExpr != varExpr2 ) opAssign2 = OpAssign.assignDirect(opAssign.getSubOp(), varExpr2) ; visit1(opAssign2) ; }