sb.append(", "); sb.append(sortSpec.getColumn().getName()); sb.append(" (").append(sortSpec.getAscending() ? "asc":"desc").append(")"); String delim = ""; for (CatalogProtos.SortSpecProto sortSpec: sortSpecArray.getSortSpecsList()) { sb.append(delim).append(sortSpec.getColumn().getName()); delim = ",";
private void resultToIndexDescProtoBuilder(final String qualifier, final IndexDescProto.Builder builder, final ResultSet res) throws SQLException { builder.setIndexName(res.getString("index_name")); builder.setIndexMethod(getIndexMethod(res.getString("index_type").trim())); builder.setIndexPath(res.getString("path")); String[] columnNames, dataTypes, orders, nullOrders; columnNames = res.getString("column_names").trim().split(","); dataTypes = res.getString("data_types").trim().split("\\|"); orders = res.getString("orders").trim().split(","); nullOrders = res.getString("null_orders").trim().split(","); int columnNum = columnNames.length; for (int i = 0; i < columnNum; i++) { SortSpecProto.Builder colSpecBuilder = SortSpecProto.newBuilder(); colSpecBuilder.setColumn(ColumnProto.newBuilder().setName(IdentifierUtil.buildFQName(qualifier, columnNames[i])) .setType(TypeStringEncoder.decode(dataTypes[i]).getProto()).build()); colSpecBuilder.setAscending(orders[i].equals("true")); colSpecBuilder.setNullFirst(nullOrders[i].equals("true")); builder.addKeySortSpecs(colSpecBuilder.build()); } builder.setIsUnique(res.getBoolean("is_unique")); builder.setIsClustered(res.getBoolean("is_clustered")); }
/** * <code>repeated .SortSpecProto sort_specs = 2;</code> */ public org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto.Builder addSortSpecsBuilder( int index) { return getSortSpecsFieldBuilder().addBuilder( index, org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto.getDefaultInstance()); } /**
sb.append(", "); sb.append(sortSpec.getColumn().getName()); sb.append(" (").append(sortSpec.getAscending() ? "asc":"desc").append(")"); String delim = ""; for (CatalogProtos.SortSpecProto sortSpec: sortSpecArray.getSortSpecsList()) { sb.append(delim).append(sortSpec.getColumn().getName()); delim = ",";
if (!getKeySortSpecs(i).isInitialized()) { memoizedIsInitialized = 0; return false;
sb.append(index.getIndexMethod()).append(" ("); for (SortSpecProto key : index.getKeySortSpecsList()) { sb.append(CatalogUtil.extractSimpleName(key.getColumn().getName())); sb.append(key.getAscending() ? " ASC" : " DESC"); sb.append(key.getNullFirst() ? " NULLS FIRST, " : " NULLS LAST, ");
sb.append(index.getIndexMethod()).append(" ("); for (SortSpecProto key : index.getKeySortSpecsList()) { sb.append(IdentifierUtil.extractSimpleName(key.getColumn().getName())); sb.append(key.getAscending() ? " ASC" : " DESC"); sb.append(key.getNullFirst() ? " NULLS FIRST, " : " NULLS LAST, ");
if (!getKeySortSpecs(i).isInitialized()) {
public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; if (!hasSchema()) { memoizedIsInitialized = 0; return false; } if (!getSchema().isInitialized()) { memoizedIsInitialized = 0; return false; } for (int i = 0; i < getSortSpecsCount(); i++) { if (!getSortSpecs(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } for (int i = 0; i < getCompSpecsCount(); i++) { if (!getCompSpecs(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } memoizedIsInitialized = 1; return true; }
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); }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto)) { return super.equals(obj); } org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto other = (org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto) obj; boolean result = true; result = result && (hasColumn() == other.hasColumn()); if (hasColumn()) { result = result && getColumn() .equals(other.getColumn()); } result = result && (hasAscending() == other.hasAscending()); if (hasAscending()) { result = result && (getAscending() == other.getAscending()); } result = result && (hasNullFirst() == other.hasNullFirst()); if (hasNullFirst()) { result = result && (getNullFirst() == other.getNullFirst()); } result = result && getUnknownFields().equals(other.getUnknownFields()); return result; }
public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; if (!hasSchema()) { memoizedIsInitialized = 0; return false; } if (!getSchema().isInitialized()) { memoizedIsInitialized = 0; return false; } for (int i = 0; i < getSortSpecsCount(); i++) { if (!getSortSpecs(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } for (int i = 0; i < getCompSpecsCount(); i++) { if (!getCompSpecs(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } memoizedIsInitialized = 1; return true; }
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); }
public org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto buildPartial() { org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto result = new org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } if (columnBuilder_ == null) { result.column_ = column_; } else { result.column_ = columnBuilder_.build(); } if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } result.ascending_ = ascending_; if (((from_bitField0_ & 0x00000004) == 0x00000004)) { to_bitField0_ |= 0x00000004; } result.nullFirst_ = nullFirst_; result.bitField0_ = to_bitField0_; onBuilt(); return result; }
@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptorForType().hashCode(); if (hasColumn()) { hash = (37 * hash) + COLUMN_FIELD_NUMBER; hash = (53 * hash) + getColumn().hashCode(); } if (hasAscending()) { hash = (37 * hash) + ASCENDING_FIELD_NUMBER; hash = (53 * hash) + hashBoolean(getAscending()); } if (hasNullFirst()) { hash = (37 * hash) + NULLFIRST_FIELD_NUMBER; hash = (53 * hash) + hashBoolean(getNullFirst()); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; }
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 resultToIndexDescProtoBuilder(final String qualifier, final IndexDescProto.Builder builder, final ResultSet res) throws SQLException { builder.setIndexName(res.getString("index_name")); builder.setIndexMethod(getIndexMethod(res.getString("index_type").trim())); builder.setIndexPath(res.getString("path")); String[] columnNames, dataTypes, orders, nullOrders; columnNames = res.getString("column_names").trim().split(","); dataTypes = res.getString("data_types").trim().split(","); orders = res.getString("orders").trim().split(","); nullOrders = res.getString("null_orders").trim().split(","); int columnNum = columnNames.length; for (int i = 0; i < columnNum; i++) { SortSpecProto.Builder colSpecBuilder = SortSpecProto.newBuilder(); colSpecBuilder.setColumn(ColumnProto.newBuilder().setName(CatalogUtil.buildFQName(qualifier, columnNames[i])) .setDataType(CatalogUtil.newSimpleDataType(getDataType(dataTypes[i]))).build()); colSpecBuilder.setAscending(orders[i].equals("true")); colSpecBuilder.setNullFirst(nullOrders[i].equals("true")); builder.addKeySortSpecs(colSpecBuilder.build()); } builder.setIsUnique(res.getBoolean("is_unique")); builder.setIsClustered(res.getBoolean("is_clustered")); }
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); }
public final boolean isInitialized() { if (!hasSchema()) { return false; } if (!getSchema().isInitialized()) { return false; } for (int i = 0; i < getSortSpecsCount(); i++) { if (!getSortSpecs(i).isInitialized()) { return false; } } for (int i = 0; i < getCompSpecsCount(); i++) { if (!getCompSpecs(i).isInitialized()) { return false; } } return true; }
public final boolean isInitialized() { if (!hasSchema()) { return false; } if (!getSchema().isInitialized()) { return false; } for (int i = 0; i < getSortSpecsCount(); i++) { if (!getSortSpecs(i).isInitialized()) { return false; } } for (int i = 0; i < getCompSpecsCount(); i++) { if (!getCompSpecs(i).isInitialized()) { return false; } } return true; }