This is an automated email from the ASF dual-hosted git repository. abukor pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kudu.git
commit fad779cf7a73722fe670d4eee2f67b3691602bf0 Author: Attila Bukor <[email protected]> AuthorDate: Tue Jun 30 16:37:01 2020 +0200 KUDU-3090 Support backing up ownership info Change-Id: I963db0a36cd4b7f080944ed46fc4119b1e055143 Reviewed-on: http://gerrit.cloudera.org:8080/16126 Tested-by: Kudu Jenkins Reviewed-by: Grant Henke <[email protected]> --- java/kudu-backup-common/src/main/protobuf/backup.proto | 2 ++ .../src/main/scala/org/apache/kudu/backup/TableMetadata.scala | 6 ++++-- .../src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala | 2 ++ .../src/main/java/org/apache/kudu/util/SchemaGenerator.java | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/java/kudu-backup-common/src/main/protobuf/backup.proto b/java/kudu-backup-common/src/main/protobuf/backup.proto index ef8678a..94c07c4 100644 --- a/java/kudu-backup-common/src/main/protobuf/backup.proto +++ b/java/kudu-backup-common/src/main/protobuf/backup.proto @@ -136,4 +136,6 @@ message TableMetadataPB { // This is validation only and not used when creating the restored table. // This is useful for detecting dropped and added partitions. map<string, PartitionMetadataPB> tablets = 11; + // The owner of the table. + string table_owner = 12; } \ No newline at end of file diff --git a/java/kudu-backup-common/src/main/scala/org/apache/kudu/backup/TableMetadata.scala b/java/kudu-backup-common/src/main/scala/org/apache/kudu/backup/TableMetadata.scala index a859d92..99b8769 100644 --- a/java/kudu-backup-common/src/main/scala/org/apache/kudu/backup/TableMetadata.scala +++ b/java/kudu-backup-common/src/main/scala/org/apache/kudu/backup/TableMetadata.scala @@ -91,7 +91,7 @@ object TableMetadata { (id, metadata) } - TableMetadataPB + val builder = TableMetadataPB .newBuilder() .setVersion(MetadataVersion) .setFromMs(fromMs) @@ -104,7 +104,8 @@ object TableMetadata { .setNumReplicas(table.getNumReplicas) .setPartitions(getPartitionSchemaMetadata(table)) .putAllTablets(tablets.asJava) - .build() + .setTableOwner(table.getOwner) + builder.build() } private def getTypeAttributesMetadata(col: ColumnSchema): ColumnTypeAttributesMetadataPB = { @@ -329,6 +330,7 @@ object TableMetadata { def getCreateTableOptionsWithoutRangePartitions(metadata: TableMetadataPB): CreateTableOptions = { val schema = getKuduSchema(metadata) val options = new CreateTableOptions() + options.setOwner(metadata.getTableOwner) options.setNumReplicas(metadata.getNumReplicas) metadata.getPartitions.getHashPartitionsList.asScala.foreach { hp => options diff --git a/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala b/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala index b513b20..9fb9265 100644 --- a/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala +++ b/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala @@ -747,6 +747,8 @@ class TestKuduBackup extends KuduTestSuite { def validateTablesMatch(tableA: String, tableB: String): Unit = { val tA = kuduClient.openTable(tableA) val tB = kuduClient.openTable(tableB) + assertEquals(tA.getOwner, tB.getOwner) + assertNotEquals("", tA.getOwner); assertEquals(tA.getNumReplicas, tB.getNumReplicas) assertTrue(schemasMatch(tA.getSchema, tB.getSchema)) assertTrue(partitionSchemasMatch(tA.getPartitionSchema, tB.getPartitionSchema)) diff --git a/java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java b/java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java index 2da7bd2..ee248a0 100644 --- a/java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java +++ b/java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java @@ -287,6 +287,8 @@ public class SchemaGenerator { } } } + + options.setOwner("random-" + random.nextInt(1000000)); return options; }
