This is an automated email from the ASF dual-hosted git repository. pvary pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push: new 1bdac5106e HIVE-26200: Add tests for Iceberg DELETE statements for every supported type (Peter Vary reviewed by Laszlo Pinter) (#3268) 1bdac5106e is described below commit 1bdac5106ea623b5799a60df5de16ffb08a70698 Author: pvary <pv...@cloudera.com> AuthorDate: Fri May 6 08:47:47 2022 +0200 HIVE-26200: Add tests for Iceberg DELETE statements for every supported type (Peter Vary reviewed by Laszlo Pinter) (#3268) --- .../iceberg/mr/hive/TestHiveIcebergInserts.java | 5 +++- .../apache/iceberg/mr/hive/TestHiveIcebergV2.java | 29 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergInserts.java b/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergInserts.java index f38eea1969..7e3c72bf31 100644 --- a/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergInserts.java +++ b/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergInserts.java @@ -70,14 +70,17 @@ public class TestHiveIcebergInserts extends HiveIcebergStorageHandlerWithEngineB public void testInsertSupportedTypes() throws IOException { for (int i = 0; i < SUPPORTED_TYPES.size(); i++) { Type type = SUPPORTED_TYPES.get(i); + // TODO: remove this filter when issue #1881 is resolved if (type == Types.UUIDType.get() && fileFormat == FileFormat.PARQUET) { continue; } + // TODO: remove this filter when we figure out how we could test binary types - if (type.equals(Types.BinaryType.get()) || type.equals(Types.FixedType.ofLength(5))) { + if (type == Types.BinaryType.get() || type.equals(Types.FixedType.ofLength(5))) { continue; } + String columnName = type.typeId().toString().toLowerCase() + "_column"; Schema schema = new Schema(required(1, "id", Types.LongType.get()), required(2, columnName, type)); diff --git a/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergV2.java b/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergV2.java index 569a9d3fc3..1c9d3e1922 100644 --- a/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergV2.java +++ b/iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergV2.java @@ -34,12 +34,14 @@ import org.apache.iceberg.deletes.PositionDelete; import org.apache.iceberg.mr.TestHelper; import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList; import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap; +import org.apache.iceberg.types.Type; import org.apache.iceberg.types.Types; import org.junit.Assert; import org.junit.Assume; import org.junit.Test; import static org.apache.iceberg.types.Types.NestedField.optional; +import static org.apache.iceberg.types.Types.NestedField.required; /** * Tests Format V2 specific features, such as reading/writing V2 tables, using delete files, etc. @@ -354,6 +356,33 @@ public class TestHiveIcebergV2 extends HiveIcebergStorageHandlerWithEngineBase { HiveIcebergTestUtils.validateData(expected, HiveIcebergTestUtils.valueForRow(newSchema, objects), 0); } + @Test + public void testDeleteForSupportedTypes() throws IOException { + for (int i = 0; i < SUPPORTED_TYPES.size(); i++) { + Type type = SUPPORTED_TYPES.get(i); + + // TODO: remove this filter when issue #1881 is resolved + if (type == Types.UUIDType.get() && fileFormat == FileFormat.PARQUET) { + continue; + } + + // TODO: remove this filter when we figure out how we could test binary types + if (type == Types.BinaryType.get() || type.equals(Types.FixedType.ofLength(5))) { + continue; + } + + String tableName = type.typeId().toString().toLowerCase() + "_table_" + i; + String columnName = type.typeId().toString().toLowerCase() + "_column"; + + Schema schema = new Schema(required(1, columnName, type)); + List<Record> records = TestHelper.generateRandomRecords(schema, 1, 0L); + Table table = testTables.createTable(shell, tableName, schema, fileFormat, records, 2); + + shell.executeStatement("DELETE FROM " + tableName); + HiveIcebergTestUtils.validateData(table, ImmutableList.of(), 0); + } + } + private static <T> PositionDelete<T> positionDelete(CharSequence path, long pos, T row) { PositionDelete<T> positionDelete = PositionDelete.create(); return positionDelete.set(path, pos, row);