@Override public void substituteVar(LogicalVariable v1, LogicalVariable v2) { for (Mutable<ILogicalExpression> arg : arguments) { arg.getValue().substituteVar(v1, v2); } }
private void substAssignVariables(List<LogicalVariable> variables, List<Mutable<ILogicalExpression>> expressions, Pair<LogicalVariable, LogicalVariable> pair) { int n = variables.size(); for (int i = 0; i < n; i++) { if (variables.get(i).equals(pair.first)) { variables.set(i, pair.second); } else { expressions.get(i).getValue().substituteVar(pair.first, pair.second); } } }
private void subst(LogicalVariable v1, LogicalVariable v2, List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> varExprPairList) { for (Pair<LogicalVariable, Mutable<ILogicalExpression>> ve : varExprPairList) { if (ve.first != null && ve.first.equals(v1)) { ve.first = v2; return; } ve.second.getValue().substituteVar(v1, v2); } }
private void substituteVarsForAbstractUnnestMapOp(AbstractUnnestMapOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { List<LogicalVariable> variables = op.getVariables(); for (int i = 0; i < variables.size(); i++) { if (variables.get(i) == pair.first) { variables.set(i, pair.second); return; } } op.getExpressionRef().getValue().substituteVar(pair.first, pair.second); substVarTypes(op, pair); }
@Override public Void visitSelectOperator(SelectOperator op, Pair<LogicalVariable, LogicalVariable> pair) { op.getCondition().getValue().substituteVar(pair.first, pair.second); return null; }
@Override public void substituteVar(LogicalVariable v1, LogicalVariable v2) { getBranchingExpression().getValue().substituteVar(v1, v2); }
private Void visitUnnestNonMapOperator(AbstractUnnestNonMapOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { List<LogicalVariable> variables = op.getVariables(); for (int i = 0; i < variables.size(); i++) { if (variables.get(i) == pair.first) { variables.set(i, pair.second); return null; } } op.getExpressionRef().getValue().substituteVar(pair.first, pair.second); substVarTypes(op, pair); return null; }
@Override public Void visitWriteResultOperator(WriteResultOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { op.getPayloadExpression().getValue().substituteVar(pair.first, pair.second); for (Mutable<ILogicalExpression> e : op.getKeyExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitIndexInsertDeleteUpsertOperator(IndexInsertDeleteUpsertOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { for (Mutable<ILogicalExpression> e : op.getPrimaryKeyExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } for (Mutable<ILogicalExpression> e : op.getSecondaryKeyExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitLimitOperator(LimitOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { op.getMaxObjects().getValue().substituteVar(pair.first, pair.second); ILogicalExpression offset = op.getOffset().getValue(); if (offset != null) { offset.substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { op.getPayloadExpression().getValue().substituteVar(pair.first, pair.second); for (Mutable<ILogicalExpression> e : op.getPrimaryKeyExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitTokenizeOperator(TokenizeOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { for (Mutable<ILogicalExpression> e : op.getPrimaryKeyExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } for (Mutable<ILogicalExpression> e : op.getSecondaryKeyExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitDistinctOperator(DistinctOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { for (Mutable<ILogicalExpression> eRef : op.getExpressions()) { eRef.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitLeftOuterJoinOperator(LeftOuterJoinOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { op.getCondition().getValue().substituteVar(pair.first, pair.second); substVarTypes(op, pair); return null; }
@Override public Void visitInnerJoinOperator(InnerJoinOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { op.getCondition().getValue().substituteVar(pair.first, pair.second); substVarTypes(op, pair); return null; }
@Override public Void visitOrderOperator(OrderOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { for (Pair<IOrder, Mutable<ILogicalExpression>> oe : op.getOrderExpressions()) { oe.second.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitWriteOperator(WriteOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { for (Mutable<ILogicalExpression> e : op.getExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitDistributeResultOperator(DistributeResultOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { for (Mutable<ILogicalExpression> e : op.getExpressions()) { e.getValue().substituteVar(pair.first, pair.second); } substVarTypes(op, pair); return null; }
@Override public Void visitForwardOperator(ForwardOperator op, Pair<LogicalVariable, LogicalVariable> arg) throws AlgebricksException { op.getRangeMapExpression().getValue().substituteVar(arg.first, arg.second); substVarTypes(op, arg); return null; }
@Override public Void visitUnnestMapOperator(UnnestMapOperator op, Pair<LogicalVariable, LogicalVariable> pair) throws AlgebricksException { substituteVarsForAbstractUnnestMapOp(op, pair); if (op.getSelectCondition() != null) { op.getSelectCondition().getValue().substituteVar(pair.first, pair.second); } return null; }