@Override public Void visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { op.getDelegate().getProducedVariables(producedVariables); return null; }
@Override public Void visitDelegateOperator(DelegateOperator op, Void arg) throws AlgebricksException { op.getDelegate().getUsedVariables(usedVariables); return null; }
private GroupByOperator getGroupByOperator(LogicalVariable outputVariable, ILogicalExpression variableRef) { GroupByOperator op = new GroupByOperator(); op.addGbyExpression(outputVariable, variableRef); return op; }
@Override public Boolean visitOrderOperator(OrderOperator op, ILogicalOperator arg) throws AlgebricksException { AbstractLogicalOperator aop = (AbstractLogicalOperator) arg; if (aop.getOperatorTag() != LogicalOperatorTag.ORDER) { return Boolean.FALSE; } OrderOperator orderOpArg = (OrderOperator) copyAndSubstituteVar(op, arg); boolean isomorphic = compareIOrderAndExpressions(op.getOrderExpressions(), orderOpArg.getOrderExpressions()); return isomorphic; }
@Override public ILogicalOperator visitEmptyTupleSourceOperator(EmptyTupleSourceOperator op, Void arg) throws AlgebricksException { return new EmptyTupleSourceOperator(); }
/** * Checks whether the given operator is INNERJOIN. */ private boolean isInnerJoin(AbstractLogicalOperator op1) { return op1.getOperatorTag() == LogicalOperatorTag.INNERJOIN; }
private static Pair<LogicalVariable, Mutable<ILogicalExpression>> getGbyPairByRhsVar(GroupByOperator gby, LogicalVariable var) { for (Pair<LogicalVariable, Mutable<ILogicalExpression>> ve : gby.getGroupByList()) { if (ve.first == var) { return ve; } } return null; }
public AbstractUnnestNonMapOperator(LogicalVariable variable, Mutable<ILogicalExpression> expression, LogicalVariable positionalVariable, Object positionalVariableType, IUnnestingPositionWriter positionWriter) { this(variable, expression); this.setPositionalVariable(positionalVariable); this.setPositionalVariableType(positionalVariableType); this.setPositionWriter(positionWriter); }
@Override public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources) throws AlgebricksException { if (sources.length > 0) { target.addAllVariables(sources[0]); } for (LogicalVariable v : variables) { target.addVariable(v); } } };
@Override public Boolean visitWindowOperator(WindowOperator op, ILogicalExpressionReferenceTransform arg) throws AlgebricksException { return op.acceptExpressionTransform(arg, false); }
TranslationContext popContext() { SubplanOperator sOp = (SubplanOperator) parent.op; sOp.setRootOp(mutable(op)); return parent; }
@Override public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources) throws AlgebricksException { // propagate the variables of the data source at idx 0 if (sources.length > 0) { target.addAllVariables(sources[0]); } } };
@Override public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources) throws AlgebricksException { for (LogicalVariable v : outputVariables) { target.addVariable(v); } } };
@Override public Void visitReplicateOperator(ReplicateOperator op, Pair<LogicalVariable, LogicalVariable> arg) throws AlgebricksException { op.substituteVar(arg.first, arg.second); return null; }
@Override public IVariableTypeEnvironment computeOutputTypeEnvironment(ITypingContext ctx) throws AlgebricksException { return createNestedPlansPropagatingTypeEnvironment(ctx, true); } }
@Override public IVariableTypeEnvironment computeOutputTypeEnvironment(ITypingContext ctx) throws AlgebricksException { return createPropagatingAllInputsTypeEnvironment(ctx); } }
@Override public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources) { int n = sources.length; for (int i = 0; i < n; i++) { target.addAllNewVariables(sources[i]); } } };
public GroupByOperator(List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByList, List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> decorList, List<ILogicalPlan> nestedPlans, boolean groupAll) { super(nestedPlans); this.decorList = decorList; this.gByList = groupByList; this.groupAll = groupAll; checkGroupAll(groupAll); }
@Override public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources) { if (propagateInputVars) { target.addAllVariables(sources[0]); } for (LogicalVariable v : variables) { target.addVariable(v); } } };
@Override public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources) throws AlgebricksException { target.addAllVariables(sources[0]); for (LogicalVariable v : tokenizeVars) { target.addVariable(v); } } };