diff --git standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java index c88c889c50..af111bd6c1 100644 --- standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java +++ standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java @@ -2040,9 +2040,9 @@ private void create_table_core(final RawStore ms, final CreateTableRequest req) } } if (tbl.isSetId()) { - throw new InvalidObjectException("Id shouldn't be set but table " - + tbl.getDbName() + "." + tbl.getTableName() + " has the Id set to " - + tbl.getId() + ". It's a read-only option"); + LOG.info("Id shouldn't be set but table {}.{} has the Id set to {}. Id is ignored.", tbl.getDbName(), + tbl.getTableName(), tbl.getId()); + tbl.unsetId(); } SkewedInfo skew = tbl.getSd().getSkewedInfo(); if (skew != null) { diff --git standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java index 4508e054dc..0c4e9f05db 100644 --- standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java +++ standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java @@ -1832,34 +1832,6 @@ public void testCreateAndGetTableWithDriver() throws Exception { Assert.assertNotEquals(firstTableId, tblRead2.getId()); } - @Test - public void testCreateTableSettingId() throws Exception { - String dbName = "createDb"; - String tblName = "createTbl"; - - client.dropTable(dbName, tblName); - silentDropDatabase(dbName); - new DatabaseBuilder() - .setName(dbName) - .create(client, conf); - - Table table = new TableBuilder() - .setDbName(dbName) - .setTableName(tblName) - .addCol("foo", "string") - .addCol("bar", "string") - .build(conf); - table.setId(1); - try { - client.createTable(table); - Assert.fail("An error should happen when setting the id" - + " to create a table"); - } catch (InvalidObjectException e) { - Assert.assertTrue(e.getMessage().contains("Id shouldn't be set")); - Assert.assertTrue(e.getMessage().contains(tblName)); - } - } - @Test public void testAlterTable() throws Exception { String dbName = "alterdb";