public Partition toPartition(String databaseName, String tableName, List<String> values, String location) { return new Partition( databaseName, tableName, values, Storage.builder() .setLocation(externalLocation.orElse(location)) .setStorageFormat(storageFormat.map(StorageFormat::fromHiveStorageFormat).orElse(VIEW_STORAGE_FORMAT)) .setBucketProperty(bucketProperty) .setSerdeParameters(serdeParameters) .build(), columns, parameters); } }
public Table toTable(String databaseName, String tableName, String location) { return new Table( databaseName, tableName, owner, tableType, Storage.builder() .setLocation(externalLocation.orElse(location)) .setStorageFormat(storageFormat.map(StorageFormat::fromHiveStorageFormat).orElse(VIEW_STORAGE_FORMAT)) .setBucketProperty(bucketProperty) .setSerdeParameters(serdeParameters) .build(), dataColumns, partitionColumns, parameters, viewOriginalText, viewExpandedText); } }
private static void setStorageBuilder(StorageDescriptor sd, Storage.Builder storageBuilder) { requireNonNull(sd.getSerdeInfo(), "StorageDescriptor SerDeInfo is null"); SerDeInfo serdeInfo = sd.getSerdeInfo(); Optional<HiveBucketProperty> bucketProperty = Optional.empty(); if (sd.getNumberOfBuckets() > 0) { if (isNullOrEmpty(sd.getBucketColumns())) { throw new PrestoException(HIVE_INVALID_METADATA, "Table/partition metadata has 'numBuckets' set, but 'bucketCols' is not set"); } List<SortingColumn> sortedBy = ImmutableList.of(); if (!isNullOrEmpty(sd.getSortColumns())) { sortedBy = sd.getSortColumns().stream() .map(column -> new SortingColumn( column.getColumn(), Order.fromMetastoreApiOrder(column.getSortOrder(), "unknown"))) .collect(toImmutableList()); } bucketProperty = Optional.of(new HiveBucketProperty(sd.getBucketColumns(), sd.getNumberOfBuckets(), sortedBy)); } storageBuilder.setStorageFormat(StorageFormat.createNullable(serdeInfo.getSerializationLibrary(), sd.getInputFormat(), sd.getOutputFormat())) .setLocation(nullToEmpty(sd.getLocation())) .setBucketProperty(bucketProperty) .setSkewed(sd.getSkewedInfo() != null && !isNullOrEmpty(sd.getSkewedInfo().getSkewedColumnNames())) .setSerdeParameters(firstNonNull(serdeInfo.getParameters(), ImmutableMap.of())) .build(); }
@Test public void testRoundTrip() { Storage storage = Storage.builder() .setStorageFormat(StorageFormat.create("abc", "in", "out")) .setLocation("/test") .build(); assertEquals(CODEC.fromJson(CODEC.toJson(storage)), storage); } }
public Table build() { return new Table( databaseName, tableName, owner, tableType, storageBuilder.build(), dataColumns, partitionColumns, parameters, viewOriginalText, viewExpandedText); } }
public Partition build() { return new Partition(databaseName, tableName, values, storageBuilder.build(), columns, parameters); } }
@Test public void testRoundTrip() { Storage storage = Storage.builder() .setStorageFormat(StorageFormat.create("abc", "in", "out")) .setLocation("/test") .build(); assertEquals(CODEC.fromJson(CODEC.toJson(storage)), storage); } }