pvary commented on code in PR #14259:
URL: https://github.com/apache/iceberg/pull/14259#discussion_r2404947045
##########
flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/data/FlinkParquetWriters.java:
##########
@@ -605,4 +621,53 @@ protected Object get(RowData struct, int index) {
return fieldGetter[index].getFieldOrNull(struct);
}
}
+
+ /** Variant writer converts from Flink Variant to Iceberg Variant */
+ public static class VariantWriter implements ParquetValueWriter<Variant> {
+ private final ParquetValueWriter<org.apache.iceberg.variants.Variant>
writer;
+
+ private VariantWriter(ParquetValueWriter<?> writer) {
+ this.writer = (ParquetValueWriter<org.apache.iceberg.variants.Variant>)
writer;
+ }
+
+ @Override
+ public void write(int repetitionLevel, Variant variant) {
+ // Flink's Variant implementation uses BinaryVariant as the standard
+ // Based on FLIP-521
+ if (!(variant instanceof org.apache.flink.types.variant.BinaryVariant)) {
+ throw new IllegalArgumentException(
+ "Expected BinaryVariant but got: " +
variant.getClass().getSimpleName());
+ }
+
+ org.apache.flink.types.variant.BinaryVariant binaryVariant =
+ (org.apache.flink.types.variant.BinaryVariant) variant;
+
+ byte[] metadataBytes = binaryVariant.getMetadata();
+ byte[] valueBytes = binaryVariant.getValue();
+
+ org.apache.iceberg.variants.VariantMetadata metadata =
+ org.apache.iceberg.variants.VariantMetadata.from(
+
ByteBuffer.wrap(metadataBytes).order(java.nio.ByteOrder.LITTLE_ENDIAN));
Review Comment:
Could we import `ByteOrder`?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]