public Object clone() throws CloneNotSupportedException { PartitionDesc desc = (PartitionDesc) super.clone(); desc.builder = CatalogProtos.PartitionDescProto.newBuilder(); desc.partitionName = partitionName; desc.partitionKeys = partitionKeys; desc.path = path; return desc; }
public Object clone() throws CloneNotSupportedException { PartitionDesc desc = (PartitionDesc) super.clone(); desc.builder = CatalogProtos.PartitionDescProto.newBuilder(); desc.partitionName = partitionName; desc.partitionKeys = partitionKeys; desc.path = path; desc.numBytes = numBytes; return desc; }
private PartitionDescProto getPartitionDesc(Path tablePath, Path partitionPath, FileSystem fs) throws IOException { String partitionName = StringUtils.unescapePathName(partitionPath.toString()); int startIndex = partitionName.indexOf(tablePath.toString()) + tablePath.toString().length(); partitionName = partitionName.substring(startIndex + File.separator.length()); CatalogProtos.PartitionDescProto.Builder builder = CatalogProtos.PartitionDescProto.newBuilder(); builder.setPartitionName(partitionName); String[] partitionKeyPairs = partitionName.split("/"); for(int i = 0; i < partitionKeyPairs.length; i++) { String partitionKeyPair = partitionKeyPairs[i]; String[] split = partitionKeyPair.split("="); PartitionKeyProto.Builder keyBuilder = PartitionKeyProto.newBuilder(); keyBuilder.setColumnName(split[0]); keyBuilder.setPartitionValue(split[1]); builder.addPartitionKeys(keyBuilder.build()); } builder.setPath(partitionPath.toString()); return builder.build(); }
CatalogProtos.PartitionDescProto.Builder builder = CatalogProtos.PartitionDescProto.newBuilder(); builder.setPath(hivePartition.getSd().getLocation());
builder = PartitionDescProto.newBuilder(); builder.setId(res.getInt(COL_PARTITIONS_PK)); builder.setPath(res.getString("PATH"));
builder = CatalogProtos.PartitionDescProto.newBuilder(); builder.setPartitionName(partitionName); builder.setPath(partition.getSd().getLocation());
builder = PartitionDescProto.newBuilder(); builder.setId(res.getInt(COL_PARTITIONS_PK)); builder.setPath(res.getString("PATH"));
builder = PartitionDescProto.newBuilder(); builder.setPath(res.getString("PATH")); builder.setPartitionName(res.getString("PARTITION_NAME"));
builder = PartitionDescProto.newBuilder(); builder.setPath(res.getString("PATH")); builder.setPartitionName(res.getString("PARTITION_NAME"));
/** * Add partition information to TableStats for storing to CatalogStore. * * @param partition partition name * @throws IOException */ private void addPartition(String partition) throws IOException { PartitionDescProto.Builder builder = PartitionDescProto.newBuilder(); builder.setPartitionName(partition); String[] partitionKeyPairs = partition.split("/"); for(int i = 0; i < partitionKeyPairs.length; i++) { String partitionKeyPair = partitionKeyPairs[i]; String[] split = partitionKeyPair.split("="); PartitionKeyProto.Builder keyBuilder = PartitionKeyProto.newBuilder(); keyBuilder.setColumnName(split[0]); // Partition path have been escaped to avoid URISyntaxException. But partition value of partition keys table // need to contain unescaped value for comparing filter conditions in select statement. keyBuilder.setPartitionValue(StringUtils.unescapePathName(split[1])); builder.addPartitionKeys(keyBuilder.build()); } if (this.plan.getUri() == null) { // In CTAS, the uri would be null. So, it get the uri from staging directory. int endIndex = storeTablePath.toString().indexOf(FileTablespace.TMP_STAGING_DIR_PREFIX); String outputPath = storeTablePath.toString().substring(0, endIndex); builder.setPath(outputPath + partition); } else { builder.setPath(this.plan.getUri().toString() + "/" + partition); } context.addPartition(builder.build()); }
/** * Add partition information to TableStats for storing to CatalogStore. * * @param partition partition name * @throws IOException */ private void addPartition(String partition) throws IOException { PartitionDescProto.Builder builder = PartitionDescProto.newBuilder(); builder.setPartitionName(partition); String[] partitionKeyPairs = partition.split("/"); for (String partitionKeyPair : partitionKeyPairs) { String[] split = partitionKeyPair.split("="); PartitionKeyProto.Builder keyBuilder = PartitionKeyProto.newBuilder(); keyBuilder.setColumnName(split[0]); // Partition path have been escaped to avoid URISyntaxException. But partition value of partition keys table // need to contain unescaped value for comparing filter conditions in select statement. keyBuilder.setPartitionValue(StringUtils.unescapePathName(split[1])); builder.addPartitionKeys(keyBuilder.build()); } if (this.plan.getUri() == null) { // In CTAS, the uri would be null. So, it get the uri from staging directory. int endIndex = storeTablePath.toString().indexOf(FileTablespace.TMP_STAGING_DIR_PREFIX); String outputPath = storeTablePath.toString().substring(0, endIndex); builder.setPath(outputPath + partition); } else { builder.setPath(this.plan.getUri().toString() + "/" + partition); } context.addPartition(builder.build()); }
@Override public CatalogProtos.PartitionDescProto getProto() { if (builder == null) { builder = CatalogProtos.PartitionDescProto.newBuilder(); } if(this.partitionName != null) { builder.setPartitionName(this.partitionName); } builder.clearPartitionKeys(); if (this.partitionKeys != null) { for(PartitionKeyProto partitionKey : this.partitionKeys) { builder.addPartitionKeys(partitionKey); } } if(this.path != null) { builder.setPath(this.path); } if(this.numBytes != null) { builder.setNumBytes(this.numBytes); } return builder.build(); }
/** * <code>optional .PartitionDescProto partition = 2;</code> */ public Builder mergePartition(org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto value) { if (partitionBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && partition_ != org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto.getDefaultInstance()) { partition_ = org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto.newBuilder(partition_).mergeFrom(value).buildPartial(); } else { partition_ = value; } onChanged(); } else { partitionBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * <code>optional .PartitionDescProto partitionDesc = 6;</code> */ public Builder mergePartitionDesc(org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto value) { if (partitionDescBuilder_ == null) { if (((bitField0_ & 0x00000020) == 0x00000020) && partitionDesc_ != org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto.getDefaultInstance()) { partitionDesc_ = org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto.newBuilder(partitionDesc_).mergeFrom(value).buildPartial(); } else { partitionDesc_ = value; } onChanged(); } else { partitionDescBuilder_.mergeFrom(value); } bitField0_ |= 0x00000020; return this; } /**
/** * <code>optional .PartitionDescProto partition = 2;</code> */ public Builder mergePartition(org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto value) { if (partitionBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && partition_ != org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto.getDefaultInstance()) { partition_ = org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto.newBuilder(partition_).mergeFrom(value).buildPartial(); } else { partition_ = value; } onChanged(); } else { partitionBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
private PartitionDescProto getPartitionDesc(Path tablePath, Path partitionPath, FileSystem fs) throws IOException { String partitionName = StringUtils.unescapePathName(partitionPath.toString()); int startIndex = partitionName.indexOf(tablePath.toString()) + tablePath.toString().length(); partitionName = partitionName.substring(startIndex + File.separator.length()); CatalogProtos.PartitionDescProto.Builder builder = CatalogProtos.PartitionDescProto.newBuilder(); builder.setPartitionName(partitionName); String[] partitionKeyPairs = partitionName.split("/"); for (String partitionKeyPair : partitionKeyPairs) { String[] split = partitionKeyPair.split("="); PartitionKeyProto.Builder keyBuilder = PartitionKeyProto.newBuilder(); keyBuilder.setColumnName(split[0]); keyBuilder.setPartitionValue(split[1]); builder.addPartitionKeys(keyBuilder.build()); } builder.setPath(partitionPath.toString()); ContentSummary contentSummary = fs.getContentSummary(partitionPath); builder.setNumBytes(contentSummary.getLength()); return builder.build(); }
@Override public CatalogProtos.PartitionDescProto getProto() { if (builder == null) { builder = CatalogProtos.PartitionDescProto.newBuilder(); } if(this.partitionName != null) { builder.setPartitionName(this.partitionName); } builder.clearPartitionKeys(); if (this.partitionKeys != null) { for(PartitionKeyProto partitionKey : this.partitionKeys) { builder.addPartitionKeys(partitionKey); } } if(this.path != null) { builder.setPath(this.path); } return builder.build(); }
public Builder toBuilder() { return newBuilder(this); }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder(org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto prototype) {
public static Builder newBuilder(org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); }