@Override public ColumnProto apply(@Nullable Column column) { return column.getProto(); } }));
@Override public EvalNode visitField(EvalTreeProtoBuilderContext context, FieldEval field, Stack<EvalNode> stack) { PlanProto.EvalNode.Builder builder = createEvalBuilder(context, field); builder.setField(field.getColumnRef().getProto()); context.treeBuilder.addNodes(builder); return field; }
@Override public EvalNode visitField(EvalTreeProtoBuilderContext context, FieldEval field, Stack<EvalNode> stack) { PlanProto.EvalNode.Builder builder = createEvalBuilder(context, field); builder.setField(field.getColumnRef().getProto()); context.treeBuilder.addNodes(builder); return field; }
@Override public SortSpecProto getProto() { SortSpecProto.Builder builder = SortSpecProto.newBuilder(); builder.setColumn(sortKey.getProto()); builder.setAscending(ascending); builder.setNullFirst(nullsFirst); return builder.build(); } }
@Override public SortSpecProto getProto() { SortSpecProto.Builder builder = SortSpecProto.newBuilder(); builder.setColumn(sortKey.getProto()); builder.setAscending(ascending); builder.setNullFirst(nullsFirst); return builder.build(); } }
@Override public void visit(int depth, List<String> path, Column column) { if (column.getDataType().getType() == Type.RECORD) { DataType.Builder updatedType = DataType.newBuilder(column.getDataType()); updatedType.setNumNestedFields(column.typeDesc.nestedRecordSchema.size()); ColumnProto.Builder updatedColumn = ColumnProto.newBuilder(column.getProto()); updatedColumn.setDataType(updatedType); builder.addFields(updatedColumn.build()); } else { builder.addFields(column.getProto()); } } }
@Override public CatalogProtos.ColumnStatsProto getProto() { CatalogProtos.ColumnStatsProto.Builder builder = CatalogProtos.ColumnStatsProto.newBuilder(); if (this.column != null) { builder.setColumn(this.column.getProto()); } if (this.numDistVals != null) { builder.setNumDistVal(this.numDistVals); } if (this.numNulls != null) { builder.setNumNulls(this.numNulls); } if (this.minValue != null) { builder.setMinValue(ByteString.copyFrom(this.minValue.asByteArray())); } if (this.maxValue != null) { builder.setMaxValue(ByteString.copyFrom(this.maxValue.asByteArray())); } return builder.build(); } }
@Override public CatalogProtos.ColumnStatsProto getProto() { CatalogProtos.ColumnStatsProto.Builder builder = CatalogProtos.ColumnStatsProto.newBuilder(); if (this.column != null) { builder.setColumn(this.column.getProto()); } if (this.numDistVals != null) { builder.setNumDistVal(this.numDistVals); } if (this.numNulls != null) { builder.setNumNulls(this.numNulls); } if (this.minValue != null) { builder.setMinValue(ByteString.copyFrom(this.minValue.asByteArray())); } if (this.maxValue != null) { builder.setMaxValue(ByteString.copyFrom(this.maxValue.asByteArray())); } return builder.build(); } }
private void setDistinctAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(secondStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
private void setDistinctAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<SortSpecArray>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<SortSpecProto>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(secondStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
private void setMultiStageAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode, ExecutionBlock thirdStageBlock, DistinctGroupbyNode thirdStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), true, MultipleAggregationStage.FIRST_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), true, MultipleAggregationStage.SECOND_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<SortSpecArray>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<SortSpecProto>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(thirdStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } thirdStageBlock.getEnforcer().enforceDistinctAggregation(thirdStageDistinctNode.getPID(), true, MultipleAggregationStage.THRID_STAGE, DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
private void setMultiStageAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode, ExecutionBlock thirdStageBlock, DistinctGroupbyNode thirdStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), true, MultipleAggregationStage.FIRST_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), true, MultipleAggregationStage.SECOND_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(thirdStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } thirdStageBlock.getEnforcer().enforceDistinctAggregation(thirdStageDistinctNode.getPID(), true, MultipleAggregationStage.THRID_STAGE, DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
public DataChannelProto getProto() { DataChannelProto.Builder builder = DataChannelProto.newBuilder(); builder.setSrcId(srcId.getProto()); builder.setTargetId(targetId.getProto()); if (transmitType != null) { builder.setTransmitType(transmitType); } builder.setShuffleType(shuffleType); if (schema != null) { builder.setSchema(schema.getProto()); } if (shuffleKeys != null) { for (Column column : shuffleKeys) { builder.addShuffleKeys(column.getProto()); } } if (numOutputs != null) { builder.setNumOutputs(numOutputs); } if(dataFormat != null){ builder.setDataFormat(dataFormat); } return builder.build(); }
public DataChannelProto getProto() { DataChannelProto.Builder builder = DataChannelProto.newBuilder(); builder.setSrcId(srcId.getProto()); builder.setTargetId(targetId.getProto()); if (transmitType != null) { builder.setTransmitType(transmitType); } builder.setShuffleType(shuffleType); if (schema != null) { builder.setSchema(schema.getProto()); } if (shuffleKeys != null) { for (Column column : shuffleKeys) { builder.addShuffleKeys(column.getProto()); } } if (numOutputs != null) { builder.setNumOutputs(numOutputs); } if(dataFormat != null){ builder.setDataFormat(dataFormat); } return builder.build(); }
builder.setAddColumn(addColumn.getProto());
builder.setAddColumn(addColumn.getProto());
case ADD_COLUMN: alterTableBuilder.setSetType(PlanProto.AlterTableNode.Type.ADD_COLUMN); alterTableBuilder.setAddColumn(AddColumn.newBuilder().setAddColumn(node.getAddNewColumn().getProto())); break; case RENAME_COLUMN:
case ADD_COLUMN: alterTableBuilder.setSetType(PlanProto.AlterTableNode.Type.ADD_COLUMN); alterTableBuilder.setAddColumn(AddColumn.newBuilder().setAddColumn(node.getAddNewColumn().getProto())); break; case RENAME_COLUMN: