Skip to content

Commit

Permalink
rebase
Browse files Browse the repository at this point in the history
  • Loading branch information
richardc-db committed Apr 12, 2024
1 parent 5f5519f commit 5722e8d
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down Expand Up @@ -102,15 +103,15 @@ 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);
}
}

@Override
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) {
Expand Down

0 comments on commit 5722e8d

Please sign in to comment.