/** * @return the physical properties that this operator delivers, based on * what its children deliver */ @Override public final IPhysicalPropertiesVector getDeliveredPhysicalProperties() { return physicalOperator.getDeliveredProperties(); }
@Override protected List<ILocalStructuralProperty> deliveredLocalProperties(ILogicalOperator op, IOptimizationContext context) { AbstractLogicalOperator op0 = (AbstractLogicalOperator) op.getInputs().get(0).getValue(); IPhysicalPropertiesVector pv0 = op0.getPhysicalOperator().getDeliveredProperties(); List<ILocalStructuralProperty> lp0 = pv0.getLocalProperties(); if (lp0 != null) { // maintains the local properties on the probe side return new LinkedList<ILocalStructuralProperty>(lp0); } return new LinkedList<ILocalStructuralProperty>(); }
stringBuilder.append(", Exec: ").append(op.getExecutionMode()); if (show) { IPhysicalPropertiesVector properties = physicalOp == null ? null : physicalOp.getDeliveredProperties(); List<ILocalStructuralProperty> localProp = properties == null ? null : properties.getLocalProperties(); IPartitioningProperty partitioningProp = properties == null ? null : properties.getPartitioningProperty();
@Override public void computeDeliveredProperties(ILogicalOperator op, IOptimizationContext context) { AbstractLogicalOperator op2; List<ILocalStructuralProperty> propsLocal = new ArrayList<ILocalStructuralProperty>(); IPhysicalPropertiesVector childsProperties = null; for (int i = 0; i < op.getInputs().size(); i++) { op2 = (AbstractLogicalOperator) op.getInputs().get(i).getValue(); childsProperties = op2.getPhysicalOperator().getDeliveredProperties(); if (childsProperties.getLocalProperties() != null) { propsLocal.addAll(childsProperties.getLocalProperties()); } } deliveredProperties = new StructuralPropertiesVector(childsProperties.getPartitioningProperty(), propsLocal); }
@Override public void computeDeliveredProperties(ILogicalOperator op, IOptimizationContext context) { AbstractLogicalOperator op2 = (AbstractLogicalOperator) op.getInputs().get(0).getValue(); IPhysicalPropertiesVector childsProperties = op2.getPhysicalOperator().getDeliveredProperties(); List<ILocalStructuralProperty> propsLocal = new ArrayList<>(); if (childsProperties.getLocalProperties() != null) { propsLocal.addAll(childsProperties.getLocalProperties()); } // ... get local properties for newly created variables... SubplanOperator subplan = (SubplanOperator) op; for (ILogicalPlan plan : subplan.getNestedPlans()) { for (Mutable<ILogicalOperator> r : plan.getRoots()) { AbstractLogicalOperator rOp = (AbstractLogicalOperator) r.getValue(); propsLocal.addAll(rOp.getPhysicalOperator().getDeliveredProperties().getLocalProperties()); } } deliveredProperties = new StructuralPropertiesVector(childsProperties.getPartitioningProperty(), propsLocal); }
@Override public void computeDeliveredProperties(ILogicalOperator iop, IOptimizationContext context) throws AlgebricksException { IPartitioningProperty pp; AbstractLogicalOperator op = (AbstractLogicalOperator) iop; if (op.getExecutionMode() == AbstractLogicalOperator.ExecutionMode.PARTITIONED) { AbstractLogicalOperator op0 = (AbstractLogicalOperator) op.getInputs().get(0).getValue(); IPhysicalPropertiesVector pv0 = op0.getPhysicalOperator().getDeliveredProperties(); AbstractLogicalOperator op1 = (AbstractLogicalOperator) op.getInputs().get(1).getValue(); IPhysicalPropertiesVector pv1 = op1.getPhysicalOperator().getDeliveredProperties(); if (pv0 == null || pv1 == null) { pp = null; } else { pp = pv0.getPartitioningProperty(); } } else { pp = IPartitioningProperty.UNPARTITIONED; } this.deliveredProperties = new StructuralPropertiesVector(pp, deliveredLocalProperties(iop, context)); }
IPhysicalPropertiesVector properties = op.getPhysicalOperator().getDeliveredProperties(); IPhysicalPropertiesVector propertiesArg = aop.getPhysicalOperator().getDeliveredProperties(); if (properties == null && propertiesArg == null) { return Boolean.TRUE;
IPhysicalPropertiesVector probeSideProperties = probeOp.getPhysicalOperator().getDeliveredProperties(); List<ILocalStructuralProperty> probeSideLocalProperties = probeSideProperties.getLocalProperties(); if (probeSideLocalProperties != null) {
@Override public void computeDeliveredProperties(ILogicalOperator iop, IOptimizationContext context) { if (partitioningType != JoinPartitioningType.BROADCAST) { throw new NotImplementedException(partitioningType + " nested loop joins are not implemented."); } IPartitioningProperty pp; AbstractLogicalOperator op = (AbstractLogicalOperator) iop; if (op.getExecutionMode() == AbstractLogicalOperator.ExecutionMode.PARTITIONED) { AbstractLogicalOperator op2 = (AbstractLogicalOperator) op.getInputs().get(1).getValue(); IPhysicalPropertiesVector pv1 = op2.getPhysicalOperator().getDeliveredProperties(); if (pv1 == null) { pp = null; } else { pp = pv1.getPartitioningProperty(); } } else { pp = IPartitioningProperty.UNPARTITIONED; } // Nested loop join cannot maintain the local structure property for the probe side // because of the I/O optimization for the build branch. this.deliveredProperties = new StructuralPropertiesVector(pp, null); }