You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2020/03/03 23:09:09 UTC

[kudu] 01/02: [hms] Fix testAlterTableHandler in later Hive versions

This is an automated email from the ASF dual-hosted git repository.

granthenke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit 8fb170b004b8298429ada0ec5622d6f566477285
Author: Grant Henke <gr...@apache.org>
AuthorDate: Tue Mar 3 08:49:41 2020 -0600

    [hms] Fix testAlterTableHandler in later Hive versions
    
    This patch adjusts testAlterTableHandler to stop reusing
    already created table objects when creating new tables.
    This prevents issues if read-only properties are set.
    
    An example of a read-only property is the ID field added in
    HIVE-20556.
    
    The error seen was:
    `testAlterTableHandler(org.apache.kudu.hive.metastore.TestKuduMetastorePlugin)InvalidObjectException(message:Id shouldn't be set but table default.table has the Id set to 1. It's a read-only option)`
    
    Change-Id: I8f8ddbe30a3e51957cafd8f1b596745b3262ca36
    Reviewed-on: http://gerrit.cloudera.org:8080/15349
    Reviewed-by: Hao Hao <ha...@cloudera.com>
    Tested-by: Grant Henke <gr...@apache.org>
---
 .../apache/kudu/hive/metastore/TestKuduMetastorePlugin.java   | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/java/kudu-hive/src/test/java/org/apache/kudu/hive/metastore/TestKuduMetastorePlugin.java b/java/kudu-hive/src/test/java/org/apache/kudu/hive/metastore/TestKuduMetastorePlugin.java
index 2dc358a..0558746 100644
--- a/java/kudu-hive/src/test/java/org/apache/kudu/hive/metastore/TestKuduMetastorePlugin.java
+++ b/java/kudu-hive/src/test/java/org/apache/kudu/hive/metastore/TestKuduMetastorePlugin.java
@@ -233,10 +233,10 @@ public class TestKuduMetastorePlugin {
   @Test
   public void testAlterTableHandler() throws Exception {
     // Test altering a Kudu (or a legacy) table.
-    Table table = newTable("table");
-    client.createTable(table, masterContext());
+    Table initTable = newTable("table");
+    client.createTable(initTable, masterContext());
     // Get the table from the HMS in case any translation occurred.
-    table = client.getTable(table.getDbName(), table.getTableName());
+    Table table = client.getTable(initTable.getDbName(), initTable.getTableName());
     Table legacyTable = newLegacyTable("legacy_table");
     client.createTable(legacyTable, masterContext());
     // Get the table from the HMS in case any translation occurred.
@@ -380,8 +380,10 @@ public class TestKuduMetastorePlugin {
 
     // Test altering a non-Kudu table.
     {
+      table = initTable.deepCopy();
       table.getParameters().clear();
       client.createTable(table);
+      table = client.getTable(table.getDbName(), table.getTableName());
       try {
 
         // Try to alter the table and add a Kudu table ID.
@@ -431,11 +433,12 @@ public class TestKuduMetastorePlugin {
 
     // Test altering an unsynchronized table is accepted.
     {
-      table.getParameters().clear();
+      table = initTable.deepCopy();
       table.setTableType(TableType.EXTERNAL_TABLE.name());
       table.putToParameters(KuduMetastorePlugin.EXTERNAL_TABLE_KEY, "TRUE");
       table.putToParameters(KuduMetastorePlugin.EXTERNAL_PURGE_KEY, "FALSE");
       client.createTable(table);
+      table = client.getTable(table.getDbName(), table.getTableName());
       try {
         client.alter_table(table.getDbName(), table.getTableName(), table);
       } finally {