From d4b1ea46681a5add551986b0c49a8d840b387111 Mon Sep 17 00:00:00 2001 From: frank chen Date: Fri, 18 Jun 2021 11:16:11 +0800 Subject: [PATCH] Add jsonPath function length() to Orc --- .../apache/druid/data/input/orc/OrcStructJsonProvider.java | 2 +- .../java/org/apache/druid/data/input/orc/OrcReaderTest.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/extensions-core/orc-extensions/src/main/java/org/apache/druid/data/input/orc/OrcStructJsonProvider.java b/extensions-core/orc-extensions/src/main/java/org/apache/druid/data/input/orc/OrcStructJsonProvider.java index de84bfbd3ba..780de1930ca 100644 --- a/extensions-core/orc-extensions/src/main/java/org/apache/druid/data/input/orc/OrcStructJsonProvider.java +++ b/extensions-core/orc-extensions/src/main/java/org/apache/druid/data/input/orc/OrcStructJsonProvider.java @@ -185,6 +185,6 @@ public class OrcStructJsonProvider implements JsonProvider @Override public Object unwrap(final Object o) { - throw new UnsupportedOperationException("Unused"); + return o; } } diff --git a/extensions-core/orc-extensions/src/test/java/org/apache/druid/data/input/orc/OrcReaderTest.java b/extensions-core/orc-extensions/src/test/java/org/apache/druid/data/input/orc/OrcReaderTest.java index 9726c0e1467..093ae7ab87e 100644 --- a/extensions-core/orc-extensions/src/test/java/org/apache/druid/data/input/orc/OrcReaderTest.java +++ b/extensions-core/orc-extensions/src/test/java/org/apache/druid/data/input/orc/OrcReaderTest.java @@ -112,6 +112,7 @@ public class OrcReaderTest ImmutableList.of( new JSONPathFieldSpec(JSONPathFieldType.PATH, "struct_list_struct_int", "$.middle.list[1].int1"), new JSONPathFieldSpec(JSONPathFieldType.PATH, "struct_list_struct_intlist", "$.middle.list[*].int1"), + new JSONPathFieldSpec(JSONPathFieldType.PATH, "struct_list_struct_middleListLength", "$.middle.list.length()"), new JSONPathFieldSpec(JSONPathFieldType.PATH, "list_struct_string", "$.list[0].string1"), new JSONPathFieldSpec(JSONPathFieldType.PATH, "map_struct_int", "$.map.chani.int1") ) @@ -145,6 +146,9 @@ public class OrcReaderTest Assert.assertEquals("2", Iterables.getOnlyElement(row.getDimension("struct_list_struct_int"))); Assert.assertEquals(ImmutableList.of("1", "2"), row.getDimension("struct_list_struct_intlist")); Assert.assertEquals("good", Iterables.getOnlyElement(row.getDimension("list_struct_string"))); + + Assert.assertEquals("2", Iterables.getOnlyElement(row.getDimension("struct_list_struct_intlistLength"))); + Assert.assertEquals("2", Iterables.getOnlyElement(row.getDimension("struct_list_struct_middleListLength"))); Assert.assertEquals(DateTimes.of("2000-03-12T15:00:00.0Z"), row.getTimestamp()); while (iterator.hasNext()) {