From 6daf2cce7fb440585ae38aa821a7feb2e8ac0fdb Mon Sep 17 00:00:00 2001 From: mchades Date: Thu, 12 Oct 2023 14:55:16 +0800 Subject: [PATCH] clarify deleteColumn doc --- .../main/java/com/datastrato/graviton/rel/TableChange.java | 5 +++-- .../com/datastrato/graviton/catalog/hive/TestHiveTable.java | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/com/datastrato/graviton/rel/TableChange.java b/api/src/main/java/com/datastrato/graviton/rel/TableChange.java index 88eb97e985..051c738d9e 100644 --- a/api/src/main/java/com/datastrato/graviton/rel/TableChange.java +++ b/api/src/main/java/com/datastrato/graviton/rel/TableChange.java @@ -184,10 +184,11 @@ static TableChange updateColumnPosition(String[] fieldNames, ColumnPosition newP /** * Create a TableChange for deleting a field. * - *

If the field does not exist, the change will result in an {@link IllegalArgumentException}. + *

If the field does not exist, the change will result in an {@link IllegalArgumentException} + * unless {@code ifExists} is true. * * @param fieldNames Field names of the column to delete. - * @param ifExists Silence the error if column doesn't exist during drop. + * @param ifExists If true, the change will succeed even if the field does not exist. * @return A TableChange for the delete. */ static TableChange deleteColumn(String[] fieldNames, Boolean ifExists) { diff --git a/catalogs/catalog-hive/src/test/java/com/datastrato/graviton/catalog/hive/TestHiveTable.java b/catalogs/catalog-hive/src/test/java/com/datastrato/graviton/catalog/hive/TestHiveTable.java index c67ecc95f1..3b819c5aaf 100644 --- a/catalogs/catalog-hive/src/test/java/com/datastrato/graviton/catalog/hive/TestHiveTable.java +++ b/catalogs/catalog-hive/src/test/java/com/datastrato/graviton/catalog/hive/TestHiveTable.java @@ -472,6 +472,12 @@ public void testAlterHiveTable() throws IOException { Assertions.assertArrayEquals(expected, alteredTable.columns()); // test delete column change + hiveCatalog + .asTableCatalog() + .alterTable( + NameIdentifier.of(tableIdentifier.namespace(), "test_hive_table_new"), + TableChange.deleteColumn(new String[] {"not_exist_col"}, true)); + hiveCatalog .asTableCatalog() .alterTable(