From c93b6b5b635362d4bcf3450ba4e04fbe0cbeab74 Mon Sep 17 00:00:00 2001 From: Kengo Seki Date: Sat, 15 Jul 2023 22:17:57 +0900 Subject: [PATCH] PARQUET-2325: Fix parquet-cli's dictionary subcommand to work with FIXED_LEN_BYTE_ARRAY --- .../parquet/cli/commands/ShowDictionaryCommand.java | 1 + .../cli/commands/ShowDictionaryCommandTest.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java index 5d7a6097ca..f9daf62213 100644 --- a/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java +++ b/parquet-cli/src/main/java/org/apache/parquet/cli/commands/ShowDictionaryCommand.java @@ -98,6 +98,7 @@ private void printDictionary(Dictionary dict, PrimitiveType type) { for (int i = 0; i <= dict.getMaxId(); i += 1) { switch(type.getPrimitiveTypeName()) { case BINARY: + case FIXED_LEN_BYTE_ARRAY: if (type.getLogicalTypeAnnotation() instanceof LogicalTypeAnnotation.StringLogicalTypeAnnotation) { console.info("{}: {}", String.format("%6d", i), Util.humanReadable(dict.decodeToBinary(i).toStringUsingUTF8(), 70)); diff --git a/parquet-cli/src/test/java/org/apache/parquet/cli/commands/ShowDictionaryCommandTest.java b/parquet-cli/src/test/java/org/apache/parquet/cli/commands/ShowDictionaryCommandTest.java index a4d796ce3a..e0ca47a773 100644 --- a/parquet-cli/src/test/java/org/apache/parquet/cli/commands/ShowDictionaryCommandTest.java +++ b/parquet-cli/src/test/java/org/apache/parquet/cli/commands/ShowDictionaryCommandTest.java @@ -47,4 +47,14 @@ public void testShowDirectoryCommandWithoutDictionaryEncoding() throws IOExcepti command.setConf(new Configuration()); Assert.assertEquals(0, command.run()); } + + @Test + public void testShowDirectoryCommandForFixedLengthByteArray() throws IOException { + File file = parquetFile(); + ShowDictionaryCommand command = new ShowDictionaryCommand(createLogger()); + command.targets = Arrays.asList(file.getAbsolutePath()); + command.column = FIXED_LEN_BYTE_ARRAY_FIELD; + command.setConf(new Configuration()); + Assert.assertEquals(0, command.run()); + } }