diff --git a/extensions/iceberg/src/main/java/io/deephaven/iceberg/base/IcebergUtils.java b/extensions/iceberg/src/main/java/io/deephaven/iceberg/base/IcebergUtils.java index 144172b59fa..b0fb714867c 100644 --- a/extensions/iceberg/src/main/java/io/deephaven/iceberg/base/IcebergUtils.java +++ b/extensions/iceberg/src/main/java/io/deephaven/iceberg/base/IcebergUtils.java @@ -51,8 +51,7 @@ public final class IcebergUtils { DH_TO_ICEBERG_TYPE_MAP.put(LocalDateTime.class, Types.TimestampType.withoutZone()); DH_TO_ICEBERG_TYPE_MAP.put(LocalDate.class, Types.DateType.get()); DH_TO_ICEBERG_TYPE_MAP.put(LocalTime.class, Types.TimeType.get()); - DH_TO_ICEBERG_TYPE_MAP.put(byte[].class, Types.BinaryType.get()); - // TODO (deephaven-core#6327) Add support for more types like ZonedDateTime, Big Decimals, and Lists + // TODO (DH-18253): Add support for more types like ZonedDateTime, Big Decimals, and Lists } private static String path(@NotNull final String path, @NotNull final FileIO io) { diff --git a/extensions/iceberg/src/test/java/io/deephaven/iceberg/junit5/SqliteCatalogBase.java b/extensions/iceberg/src/test/java/io/deephaven/iceberg/junit5/SqliteCatalogBase.java index b152c8f05e3..4a4d92b1ebf 100644 --- a/extensions/iceberg/src/test/java/io/deephaven/iceberg/junit5/SqliteCatalogBase.java +++ b/extensions/iceberg/src/test/java/io/deephaven/iceberg/junit5/SqliteCatalogBase.java @@ -454,6 +454,26 @@ void appendToCatalogTableWithAllDataTypesTest() { assertTableEquals(source, tableAdapter.table()); } + @Test + void appendByteArrayToBinaryColTest() { + final Schema schema = new Schema( + Types.NestedField.required(1, "binaryCol", Types.BinaryType.get())); + final Namespace myNamespace = Namespace.of("MyNamespace"); + final TableIdentifier myTableId = TableIdentifier.of(myNamespace, "appendToBinaryColTest"); + catalogAdapter.catalog().createTable(myTableId, schema); + final Table source = TableTools.emptyTable(10) + .update("binaryCol = new byte[] {(byte) i}"); + final IcebergTableAdapter tableAdapter = catalogAdapter.loadTable(myTableId); + try { + tableAdapter.tableWriter(writerOptionsBuilder() + .tableDefinition(source.getDefinition()) + .build()); + failBecauseExceptionWasNotThrown(TableDataException.class); + } catch (TableDataException e) { + assertThat(e).hasMessageContaining("Unsupported deephaven column type"); + } + } + @Test void testFailureInWrite() { // Try creating a new iceberg table with bad data