public double computeMapJoinCPUCost( ImmutableList<Double> cardinalities, ImmutableBitSet streaming) { // Hash-join double cpuCost = 0.0; for (int i=0; i<cardinalities.size(); i++) { double cardinality = cardinalities.get(i); if (!streaming.get(i)) { cpuCost += cardinality; } cpuCost += cardinality * cpuUnitCost; } return cpuCost; }
public double computeBucketMapJoinCPUCost( ImmutableList<Double> cardinalities, ImmutableBitSet streaming) { // Hash-join double cpuCost = 0.0; for (int i=0; i<cardinalities.size(); i++) { double cardinality = cardinalities.get(i); if (!streaming.get(i)) { cpuCost += cardinality * cpuUnitCost; } cpuCost += cardinality * cpuUnitCost; } return cpuCost; }
public double computeMapJoinIOCost( ImmutableList<Pair<Double, Double>> relationInfos, ImmutableBitSet streaming, int parallelism) { // Hash-join double ioCost = 0.0; for (int i=0; i<relationInfos.size(); i++) { double cardinality = relationInfos.get(i).left; double averageTupleSize = relationInfos.get(i).right; if (!streaming.get(i)) { ioCost += cardinality * averageTupleSize * netCost * parallelism; } } return ioCost; }
public double computeBucketMapJoinIOCost( ImmutableList<Pair<Double, Double>> relationInfos, ImmutableBitSet streaming, int parallelism) { // Hash-join double ioCost = 0.0; for (int i=0; i<relationInfos.size(); i++) { double cardinality = relationInfos.get(i).left; double averageTupleSize = relationInfos.get(i).right; if (!streaming.get(i)) { ioCost += cardinality * averageTupleSize * netCost * parallelism; } } return ioCost; }
public double computeSMBMapJoinIOCost( ImmutableList<Pair<Double, Double>> relationInfos, ImmutableBitSet streaming, int parallelism) { // Hash-join double ioCost = 0.0; for (int i=0; i<relationInfos.size(); i++) { double cardinality = relationInfos.get(i).left; double averageTupleSize = relationInfos.get(i).right; if (!streaming.get(i)) { ioCost += cardinality * averageTupleSize * netCost * parallelism; } } return ioCost; }
public static List<Integer> translateBitSetToProjIndx(ImmutableBitSet projBitSet) { List<Integer> projIndxLst = new ArrayList<Integer>(); for (int i = 0; i < projBitSet.length(); i++) { if (projBitSet.get(i)) { projIndxLst.add(i); } } return projIndxLst; }
public static List<Integer> translateBitSetToProjIndx(ImmutableBitSet projBitSet) { List<Integer> projIndxLst = new ArrayList<Integer>(); for (int i = 0; i < projBitSet.length(); i++) { if (projBitSet.get(i)) { projIndxLst.add(i); } } return projIndxLst; }
public double computeSortMergeCPUCost( ImmutableList<Double> cardinalities, ImmutableBitSet sorted) { // Sort-merge join double cpuCost = 0.0; for (int i=0; i<cardinalities.size(); i++) { double cardinality = cardinalities.get(i); if (!sorted.get(i)) { // Sort cost cpuCost += computeSortCPUCost(cardinality); } // Merge cost cpuCost += cardinality * cpuUnitCost; } return cpuCost; }
public double computeBucketMapJoinCPUCost( ImmutableList<Double> cardinalities, ImmutableBitSet streaming) { // Hash-join double cpuCost = 0.0; for (int i=0; i<cardinalities.size(); i++) { double cardinality = cardinalities.get(i); if (!streaming.get(i)) { cpuCost += cardinality * cpuCost; } cpuCost += cardinality * cpuCost; } return cpuCost; }
public static double computeMapJoinCPUCost( ImmutableList<Double> cardinalities, ImmutableBitSet streaming) { // Hash-join double cpuCost = 0.0; for (int i=0; i<cardinalities.size(); i++) { double cardinality = cardinalities.get(i); if (!streaming.get(i)) { cpuCost += cardinality; } cpuCost += cardinality * cpuCost; } return cpuCost; }
public double computeSMBMapJoinIOCost( ImmutableList<Pair<Double, Double>> relationInfos, ImmutableBitSet streaming, int parallelism) { // Hash-join double ioCost = 0.0; for (int i=0; i<relationInfos.size(); i++) { double cardinality = relationInfos.get(i).left; double averageTupleSize = relationInfos.get(i).right; if (!streaming.get(i)) { ioCost += cardinality * averageTupleSize * netCost * parallelism; } } return ioCost; }
public double computeMapJoinIOCost( ImmutableList<Pair<Double, Double>> relationInfos, ImmutableBitSet streaming, int parallelism) { // Hash-join double ioCost = 0.0; for (int i=0; i<relationInfos.size(); i++) { double cardinality = relationInfos.get(i).left; double averageTupleSize = relationInfos.get(i).right; if (!streaming.get(i)) { ioCost += cardinality * averageTupleSize * netCost * parallelism; } } return ioCost; }
public double computeBucketMapJoinIOCost( ImmutableList<Pair<Double, Double>> relationInfos, ImmutableBitSet streaming, int parallelism) { // Hash-join double ioCost = 0.0; for (int i=0; i<relationInfos.size(); i++) { double cardinality = relationInfos.get(i).left; double averageTupleSize = relationInfos.get(i).right; if (!streaming.get(i)) { ioCost += cardinality * averageTupleSize * netCost * parallelism; } } return ioCost; }
public double computeSortMergeCPUCost( ImmutableList<Double> cardinalities, ImmutableBitSet sorted) { // Sort-merge join double cpuCost = 0.0; for (int i=0; i<cardinalities.size(); i++) { double cardinality = cardinalities.get(i); if (!sorted.get(i)) { // Sort cost cpuCost += computeSortCPUCost(cardinality); } // Merge cost cpuCost += cardinality * cpuCost; } return cpuCost; }
/** * Variant of {@link #trimFields(RelNode, ImmutableBitSet, Set)} for * {@link org.apache.calcite.rel.logical.LogicalProject}. */ public TrimResult trimFields(Project project, ImmutableBitSet fieldsUsed, Set<RelDataTypeField> extraFields) { // set columnAccessInfo for ViewColumnAuthorization for (Ord<RexNode> ord : Ord.zip(project.getProjects())) { if (fieldsUsed.get(ord.i)) { if (this.columnAccessInfo != null && this.viewProjectToTableSchema != null && this.viewProjectToTableSchema.containsKey(project)) { Table tab = this.viewProjectToTableSchema.get(project); this.columnAccessInfo.add(tab.getCompleteName(), tab.getAllCols().get(ord.i).getName()); } } } return super.trimFields(project, fieldsUsed, extraFields); }
/** * Variant of {@link #trimFields(RelNode, ImmutableBitSet, Set)} for * {@link org.apache.calcite.rel.logical.LogicalProject}. */ public TrimResult trimFields(Project project, ImmutableBitSet fieldsUsed, Set<RelDataTypeField> extraFields) { // set columnAccessInfo for ViewColumnAuthorization for (Ord<RexNode> ord : Ord.zip(project.getProjects())) { if (fieldsUsed.get(ord.i)) { if (this.columnAccessInfo != null && this.viewProjectToTableSchema != null && this.viewProjectToTableSchema.containsKey(project)) { Table tab = this.viewProjectToTableSchema.get(project); this.columnAccessInfo.add(tab.getCompleteName(), tab.getCols().get(ord.i).getName()); } } } return super.trimFields(project, fieldsUsed, extraFields); }
final DimensionExpression dimension = dimensions.get(i); if (Parser.parse(dimension.getDruidExpression().getExpression(), plannerContext.getExprMacroTable()) .isLiteral() && !aggregateProjectBits.get(i)) { dimensions.remove(i);
orderFound = join.getSortedInputs().get(i); } catch (CalciteSemanticException e) { LOG.trace("Not possible to do SMB Join ",e);
if (callsToKeep.get(i)) { fixUpProjects.add(rexBuilder.makeInputRef(newAggregate, j++)); } else {