@Override public Void visitSubplanOperator(SubplanOperator op, Void arg) throws AlgebricksException { visitNestedPlans(op); return null; }
@Override public Void visitGroupByOperator(GroupByOperator op, Void arg) throws AlgebricksException { visitNestedPlans(op); for (Pair<LogicalVariable, Mutable<ILogicalExpression>> g : op.getGroupByList()) { g.second.getValue().getUsedVariables(usedVariables); } for (Pair<LogicalVariable, Mutable<ILogicalExpression>> g : op.getDecorList()) { g.second.getValue().getUsedVariables(usedVariables); } return null; }
@Override public Void visitWindowOperator(WindowOperator op, Void arg) throws AlgebricksException { visitNestedPlans(op); for (Mutable<ILogicalExpression> exprRef : op.getPartitionExpressions()) { exprRef.getValue().getUsedVariables(usedVariables); } for (Pair<IOrder, Mutable<ILogicalExpression>> p : op.getOrderExpressions()) { p.second.getValue().getUsedVariables(usedVariables); } for (Pair<IOrder, Mutable<ILogicalExpression>> p : op.getFrameValueExpressions()) { p.second.getValue().getUsedVariables(usedVariables); } for (Mutable<ILogicalExpression> exprRef : op.getFrameStartExpressions()) { exprRef.getValue().getUsedVariables(usedVariables); } for (Mutable<ILogicalExpression> exprRef : op.getFrameEndExpressions()) { exprRef.getValue().getUsedVariables(usedVariables); } for (Mutable<ILogicalExpression> exprRef : op.getFrameExcludeExpressions()) { exprRef.getValue().getUsedVariables(usedVariables); } ILogicalExpression frameOffset = op.getFrameOffset().getValue(); if (frameOffset != null) { frameOffset.getUsedVariables(usedVariables); } for (Mutable<ILogicalExpression> exprRef : op.getExpressions()) { exprRef.getValue().getUsedVariables(usedVariables); } return null; }