diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/hive/HiveMetadataConnector.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/hive/HiveMetadataConnector.java index 900de82b0..5fc19a9e5 100644 --- a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/hive/HiveMetadataConnector.java +++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/hive/HiveMetadataConnector.java @@ -20,6 +20,7 @@ import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.edwmigration.dumper.application.dumper.ConnectorArguments; import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentDatabasePredicate; import com.google.edwmigration.dumper.application.dumper.connector.Connector; @@ -45,6 +46,7 @@ import java.io.Writer; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.function.Predicate; import javax.annotation.Nonnull; import org.apache.commons.csv.CSVFormat; @@ -335,32 +337,25 @@ private void dumpTable( monitor.count(); Table table = thriftClient.getTable(databaseName, tableName); TBase rawTableThriftObject = table.getRawThriftObject(); - ImmutableList> primaryKeys = table.getRawPrimaryKeys(); - ImmutableList> foreignKeys = table.getRawForeignKeys(); - ImmutableList> uniqueConstraints = - table.getRawUniqueConstraints(); - ImmutableList> nonNullConstraints = - table.getRawNonNullConstraints(); - ImmutableList> defaultConstraints = - table.getRawDefaultConstraints(); - ImmutableList> checkConstraints = - table.getRawCheckConstraints(); + ImmutableMap>> additionalMetadata = + ImmutableMap.of( + "primaryKeys", table.getRawPrimaryKeys(), + "foreignKeys", table.getRawForeignKeys(), + "uniqueConstraints", table.getRawUniqueConstraints(), + "nonNullConstraints", table.getRawNonNullConstraints(), + "defaultConstraints", table.getRawDefaultConstraints(), + "checkConstraints", table.getRawCheckConstraints()); ThriftJsonSerializer jsonSerializer = new ThriftJsonSerializer(); synchronized (writer) { writer.write("{\"table\":"); writer.write(jsonSerializer.serialize(rawTableThriftObject)); - writer.write(",\"primaryKeys\":"); - jsonSerializer.serialize(primaryKeys, writer); - writer.write(",\"foreignKeys\":"); - jsonSerializer.serialize(foreignKeys, writer); - writer.write(",\"uniqueConstraints\":"); - jsonSerializer.serialize(uniqueConstraints, writer); - writer.write(",\"nonNullConstraints\":"); - jsonSerializer.serialize(nonNullConstraints, writer); - writer.write(",\"defaultConstraints\":"); - jsonSerializer.serialize(defaultConstraints, writer); - writer.write(",\"checkConstraints\":"); - jsonSerializer.serialize(checkConstraints, writer); + for (Map.Entry>> entry : + additionalMetadata.entrySet()) { + writer.write(",\""); + writer.write(entry.getKey()); + writer.write("\":"); + jsonSerializer.serialize(entry.getValue(), writer); + } writer.write("}"); writer.write('\n'); }