diff --git a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/value/DefaultVariantValue.java b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/value/DefaultVariantValue.java index 5b2e7329b73..c4c283e9609 100644 --- a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/value/DefaultVariantValue.java +++ b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/value/DefaultVariantValue.java @@ -41,10 +41,12 @@ public byte[] getMetadata() { return metadata; } - public String debugString() { + @Override + public String toString() { return "VariantValue{value=" + Arrays.toString(value) + ", metadata=" + Arrays.toString(metadata) + '}'; } + /** * Compare two variants in bytes. The variant equality is more complex than it, and we haven't * supported it in the user surface yet. This method is only intended for tests. diff --git a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/vector/DefaultVariantVector.java b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/vector/DefaultVariantVector.java index f4f35edd991..a12c426fda3 100644 --- a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/vector/DefaultVariantVector.java +++ b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/data/vector/DefaultVariantVector.java @@ -69,20 +69,7 @@ public VariantValue getVariant(int rowId) { if (isNullAt(rowId)) { return null; } - // return new VariantValue() { - // private final byte[] value = valueVector.getBinary(rowId); - // private final byte[] metadata = metadataVector.getBinary(rowId); - // @Override - // public byte[] getValue() { - // return value; - // } - - // @Override - // public byte[] getMetadata() { - // return metadata; - // } - // }; return new DefaultVariantValue( valueVector.getBinary(rowId), metadataVector.getBinary(rowId)); } diff --git a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/ParquetColumnReaders.java b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/ParquetColumnReaders.java index 516cbef0022..05308eebc1e 100644 --- a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/ParquetColumnReaders.java +++ b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/ParquetColumnReaders.java @@ -83,7 +83,7 @@ public static Converter createConverter( } else if (typeFromClient instanceof TimestampNTZType) { return createTimestampNtzConverter(initialBatchSize, typeFromFile); } else if (typeFromClient instanceof VariantType) { - return new VariantConverter(initialBatchSize); + return new VariantColumnReader(initialBatchSize); } throw new UnsupportedOperationException(typeFromClient + " is not supported"); diff --git a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/VariantConverter.java b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/VariantColumnReader.java similarity index 80% rename from kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/VariantConverter.java rename to kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/VariantColumnReader.java index b099953ec2f..24132058337 100644 --- a/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/VariantConverter.java +++ b/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/parquet/VariantColumnReader.java @@ -26,13 +26,14 @@ import static io.delta.kernel.internal.util.Preconditions.checkArgument; import io.delta.kernel.defaults.internal.data.vector.DefaultVariantVector; -import io.delta.kernel.defaults.internal.parquet.ParquetConverters.BinaryColumnConverter; +import io.delta.kernel.defaults.internal.parquet.ParquetColumnReaders.BaseColumnReader; +import io.delta.kernel.defaults.internal.parquet.ParquetColumnReaders.BinaryColumnReader; -class VariantConverter +class VariantColumnReader extends GroupConverter - implements ParquetConverters.BaseConverter { - private final BinaryColumnConverter valueConverter; - private final BinaryColumnConverter metadataConverter; + implements BaseColumnReader { + private final BinaryColumnReader valueConverter; + private final BinaryColumnReader metadataConverter; // working state private int currentRowIndex; @@ -46,12 +47,12 @@ class VariantConverter * * @param initialBatchSize Estimate of initial row batch size. Used in memory allocations. */ - VariantConverter(int initialBatchSize) { + VariantColumnReader(int initialBatchSize) { checkArgument(initialBatchSize > 0, "invalid initialBatchSize: %s", initialBatchSize); - this.nullability = ParquetConverters.initNullabilityVector(initialBatchSize); + this.nullability = ParquetColumnReaders.initNullabilityVector(initialBatchSize); - this.valueConverter = new BinaryColumnConverter(BinaryType.BINARY, initialBatchSize); - this.metadataConverter = new BinaryColumnConverter(BinaryType.BINARY, initialBatchSize); + this.valueConverter = new BinaryColumnReader(BinaryType.BINARY, initialBatchSize); + this.metadataConverter = new BinaryColumnReader(BinaryType.BINARY, initialBatchSize); } @Override @@ -102,7 +103,7 @@ public void resizeIfNeeded() { if (nullability.length == currentRowIndex) { int newSize = nullability.length * 2; this.nullability = Arrays.copyOf(this.nullability, newSize); - ParquetConverters.setNullabilityToTrue(this.nullability, newSize / 2, newSize); + ParquetColumnReaders.setNullabilityToTrue(this.nullability, newSize / 2, newSize); } } @@ -110,7 +111,7 @@ public void resizeIfNeeded() { public void resetWorkingState() { this.currentRowIndex = 0; this.isCurrentValueNull = true; - this.nullability = ParquetConverters.initNullabilityVector(this.nullability.length); + this.nullability = ParquetColumnReaders.initNullabilityVector(this.nullability.length); } private void finalizeLastRowInConverters(long prevRowIndex) {