This is an automated email from the ASF dual-hosted git repository. timbrown pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-xtable.git
The following commit(s) were added to refs/heads/main by this push: new 737f25c3 Handle null stats case 737f25c3 is described below commit 737f25c33c14366eed0c044618364af1d3a33101 Author: Timothy Brown <t...@onehouse.ai> AuthorDate: Sun Jul 7 21:52:22 2024 -0500 Handle null stats case --- .../main/java/org/apache/xtable/delta/DeltaStatsExtractor.java | 6 ++++++ .../java/org/apache/xtable/delta/TestDeltaStatsExtractor.java | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/xtable-core/src/main/java/org/apache/xtable/delta/DeltaStatsExtractor.java b/xtable-core/src/main/java/org/apache/xtable/delta/DeltaStatsExtractor.java index 572cc104..a6f74cee 100644 --- a/xtable-core/src/main/java/org/apache/xtable/delta/DeltaStatsExtractor.java +++ b/xtable-core/src/main/java/org/apache/xtable/delta/DeltaStatsExtractor.java @@ -21,6 +21,7 @@ package org.apache.xtable.delta; import java.io.IOException; import java.util.ArrayDeque; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -36,6 +37,8 @@ import lombok.Builder; import lombok.NoArgsConstructor; import lombok.Value; +import org.apache.commons.lang3.StringUtils; + import org.apache.spark.sql.delta.actions.AddFile; import com.fasterxml.jackson.core.JsonProcessingException; @@ -173,6 +176,9 @@ public class DeltaStatsExtractor { } public List<ColumnStat> getColumnStatsForFile(AddFile addFile, List<InternalField> fields) { + if (StringUtils.isEmpty(addFile.stats())) { + return Collections.emptyList(); + } // TODO: Additional work needed to track maps & arrays. try { DeltaStats deltaStats = MAPPER.readValue(addFile.stats(), DeltaStats.class); diff --git a/xtable-core/src/test/java/org/apache/xtable/delta/TestDeltaStatsExtractor.java b/xtable-core/src/test/java/org/apache/xtable/delta/TestDeltaStatsExtractor.java index ddc6defc..dc313b67 100644 --- a/xtable-core/src/test/java/org/apache/xtable/delta/TestDeltaStatsExtractor.java +++ b/xtable-core/src/test/java/org/apache/xtable/delta/TestDeltaStatsExtractor.java @@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -183,6 +184,15 @@ public class TestDeltaStatsExtractor { assertEquals(expected, actual); } + @Test + void convertNullStatsToInternalRepresentation() { + List<InternalField> fields = getSchemaFields(); + AddFile addFile = new AddFile("file://path/to/file", null, 0, 0, true, null, null, null); + DeltaStatsExtractor extractor = DeltaStatsExtractor.getInstance(); + List<ColumnStat> actual = extractor.getColumnStatsForFile(addFile, fields); + assertEquals(Collections.emptyList(), actual); + } + private List<InternalField> getSchemaFields() { return Arrays.asList( InternalField.builder()