diff --git a/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlock.java index fa42f3e79ef2c..090c38459ec33 100644 --- a/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlock.java @@ -31,6 +31,7 @@ public class ArrayBlock private final int arrayOffset; private final int positionCount; + @Nullable private final boolean[] valueIsNull; private final Block values; private final int[] offsets; @@ -159,7 +160,9 @@ public void retainedBytesForEachPart(BiConsumer consumer) { consumer.accept(values, values.getRetainedSizeInBytes()); consumer.accept(offsets, sizeOf(offsets)); - consumer.accept(valueIsNull, sizeOf(valueIsNull)); + if (valueIsNull != null) { + consumer.accept(valueIsNull, sizeOf(valueIsNull)); + } consumer.accept(this, (long) INSTANCE_SIZE); } diff --git a/presto-common/src/main/java/com/facebook/presto/common/block/MapBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlock.java index 48182c6999f38..7ae82a4a8fc7c 100644 --- a/presto-common/src/main/java/com/facebook/presto/common/block/MapBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlock.java @@ -35,6 +35,7 @@ public class MapBlock private final int startOffset; private final int positionCount; + @Nullable private final boolean[] mapIsNull; private final int[] offsets; private final Block keyBlock; @@ -253,7 +254,9 @@ public void retainedBytesForEachPart(BiConsumer consumer) consumer.accept(keyBlock, keyBlock.getRetainedSizeInBytes()); consumer.accept(valueBlock, valueBlock.getRetainedSizeInBytes()); consumer.accept(offsets, sizeOf(offsets)); - consumer.accept(mapIsNull, sizeOf(mapIsNull)); + if (mapIsNull != null) { + consumer.accept(mapIsNull, sizeOf(mapIsNull)); + } consumer.accept(hashTables, hashTables.getRetainedSizeInBytes()); consumer.accept(this, (long) INSTANCE_SIZE); } diff --git a/presto-common/src/main/java/com/facebook/presto/common/block/RowBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlock.java index dd1f2ceaff005..103006c25d84c 100644 --- a/presto-common/src/main/java/com/facebook/presto/common/block/RowBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlock.java @@ -34,6 +34,7 @@ public class RowBlock private final int startOffset; private final int positionCount; + @Nullable private final boolean[] rowIsNull; private final int[] fieldBlockOffsets; private final Block[] fieldBlocks; @@ -240,7 +241,9 @@ public void retainedBytesForEachPart(BiConsumer consumer) consumer.accept(fieldBlocks[i], fieldBlocks[i].getRetainedSizeInBytes()); } consumer.accept(fieldBlockOffsets, sizeOf(fieldBlockOffsets)); - consumer.accept(rowIsNull, sizeOf(rowIsNull)); + if (rowIsNull != null) { + consumer.accept(rowIsNull, sizeOf(rowIsNull)); + } consumer.accept(this, (long) INSTANCE_SIZE); }