@Override public int getVarCounter() { return varCounter.get(); }
public LangExpressionToPlanTranslator(MetadataProvider metadataProvider, int currentVarCounterValue) throws AlgebricksException { this(metadataProvider, new Counter(currentVarCounterValue)); }
public LogicalVariable newVarFromExpression(Expression expr) { int varId; if (expr != null && expr.getKind() == Expression.Kind.VARIABLE_EXPRESSION) { VariableExpr v = (VariableExpr) expr; varId = v.getVar().getId(); if (varId > varCounter.get()) { varCounter.set(varId); } } else { varCounter.inc(); varId = varCounter.get(); } LogicalVariable var = expr != null && (expr.getKind() == Expression.Kind.VARIABLE_EXPRESSION || expr.getKind() == Expression.Kind.FIELD_ACCESSOR_EXPRESSION) ? new LogicalVariable(varId, expr.toString()) : new LogicalVariable(varId); currentVarMap.put(varId, var); return var; }
public final void incVarCounter() { varCounter.inc(); }
@Override public void setVarCounter(int count) { varCounter.set(count); }
public final int getVarCounter() { return varCounter.get(); }
public LangRewritingContext(int varCounter) { this.varCounter = new Counter(varCounter); }
/** * @return the variables produced by the top operator in a subplan. */ public LogicalVariable newSubplanOutputVar() { LogicalVariable newVar = newVar(); if (!stack.isEmpty()) { Map<Integer, LogicalVariable> varMap = stack.peek(); varMap.put(varCounter.get(), newVar); } return newVar; } }
@Override public void rewrite(List<FunctionDecl> declaredFunctions, IReturningStatement topStatement, MetadataProvider metadataProvider, LangRewritingContext context, boolean inlineUdfs, Collection<VarIdentifier> externalVars) throws CompilationException { setup(declaredFunctions, topStatement, metadataProvider, context); if (topStatement.isTopLevel()) { wrapInLets(); } inlineDeclaredUdfs(); rewriteFunctionName(); topStatement.setVarCounter(context.getVarCounter().get()); }
topStatement.setVarCounter(context.getVarCounter().get());