This is an automated email from the ASF dual-hosted git repository.
ggershinsky pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-testing.git
The following commit(s) were added to refs/heads/master by this push:
new 5a6cf84 Use the LIST 3-level structure (#106)
5a6cf84 is described below
commit 5a6cf84678df3af65c231109b78b86ba9bf495df
Author: hsiang-c <[email protected]>
AuthorDate: Thu May 14 11:03:21 2026 -0700
Use the LIST 3-level structure (#106)
- ref: https://parquet.apache.org/docs/file-format/types/logicaltypes/
---
data/README.md | 12 +++++++++++-
.../encrypt_columns_and_footer.parquet.encrypted | Bin 9858 -> 9858 bytes
.../encrypt_columns_and_footer_ctr.parquet.encrypted | Bin 9714 -> 9714 bytes
...s_and_footer_disable_aad_storage.parquet.encrypted | Bin 9858 -> 9858 bytes
...encrypt_columns_plaintext_footer.parquet.encrypted | Bin 8669 -> 8823 bytes
data/aes256/uniform_encryption.parquet.encrypted | Bin 8258 -> 8258 bytes
6 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/data/README.md b/data/README.md
index eed8b46..1d618a7 100644
--- a/data/README.md
+++ b/data/README.md
@@ -142,6 +142,7 @@ The corresponding schema in Java is:
public static final String BOOLEAN_FIELD_NAME = "boolean_field";
public static final String INT32_FIELD_NAME = "int32_field";
public static final String INT64_FIELD_NAME = "int64_field";
+public static final String INT64_ELEMENT_COLUMN_PATH =
"int64_field.list.element";
public static final String INT96_FIELD_NAME = "int96_field";
public static final String FLOAT_FIELD_NAME = "float_field";
public static final String DOUBLE_FIELD_NAME = "double_field";
@@ -152,12 +153,21 @@ private static final MessageType SCHEMA = new MessageType(
"schema",
new PrimitiveType(REQUIRED, BOOLEAN, BOOLEAN_FIELD_NAME),
Types.required(INT32).as(LogicalTypeAnnotation.timeType(true,
MILLIS)).named(INT32_FIELD_NAME),
- new PrimitiveType(REPEATED, INT64, INT64_FIELD_NAME),
+
Types.optionalGroup().repeatedGroup().required(INT64).named("element").named("list").as(LogicalTypeAnnotation.listType()).named(INT64_FIELD_NAME),
Types.required(INT96).named(INT96_FIELD_NAME),
new PrimitiveType(REQUIRED, FLOAT, FLOAT_FIELD_NAME),
new PrimitiveType(REQUIRED, DOUBLE, DOUBLE_FIELD_NAME),
new PrimitiveType(OPTIONAL, BINARY, BINARY_FIELD_NAME),
Types.required(FIXED_LEN_BYTE_ARRAY).length(FIXED_LENGTH).named(FIXED_LENGTH_BINARY_FIELD_NAME));
+
+// ColumnEncryptionProperties for the list field
+Map<ColumnPath, ColumnEncryptionProperties> columnPropertiesMap = new
HashMap<>();
+ColumnEncryptionProperties columnPropertiesInt64List =
ColumnEncryptionProperties.builder(
+ ColumnPath.fromDotString(INT64_ELEMENT_COLUMN_PATH))
+ .withKey(COLUMN_ENCRYPTION_KEYS[6])
+ .withKeyID(COLUMN_ENCRYPTION_KEY_IDS[6])
+ .build();
+columnPropertiesMap.put(columnPropertiesInt64List.getPath(),
columnPropertiesInt64List);
```
## Checksum Files
diff --git a/data/aes256/encrypt_columns_and_footer.parquet.encrypted
b/data/aes256/encrypt_columns_and_footer.parquet.encrypted
index 0d0935f..3037e47 100644
Binary files a/data/aes256/encrypt_columns_and_footer.parquet.encrypted and
b/data/aes256/encrypt_columns_and_footer.parquet.encrypted differ
diff --git a/data/aes256/encrypt_columns_and_footer_ctr.parquet.encrypted
b/data/aes256/encrypt_columns_and_footer_ctr.parquet.encrypted
index 65b8861..13371af 100644
Binary files a/data/aes256/encrypt_columns_and_footer_ctr.parquet.encrypted and
b/data/aes256/encrypt_columns_and_footer_ctr.parquet.encrypted differ
diff --git
a/data/aes256/encrypt_columns_and_footer_disable_aad_storage.parquet.encrypted
b/data/aes256/encrypt_columns_and_footer_disable_aad_storage.parquet.encrypted
index e4a87c5..6bc6b1e 100644
Binary files
a/data/aes256/encrypt_columns_and_footer_disable_aad_storage.parquet.encrypted
and
b/data/aes256/encrypt_columns_and_footer_disable_aad_storage.parquet.encrypted
differ
diff --git a/data/aes256/encrypt_columns_plaintext_footer.parquet.encrypted
b/data/aes256/encrypt_columns_plaintext_footer.parquet.encrypted
index 7759ba9..df84596 100644
Binary files a/data/aes256/encrypt_columns_plaintext_footer.parquet.encrypted
and b/data/aes256/encrypt_columns_plaintext_footer.parquet.encrypted differ
diff --git a/data/aes256/uniform_encryption.parquet.encrypted
b/data/aes256/uniform_encryption.parquet.encrypted
index 6f14482..bcf5cb5 100644
Binary files a/data/aes256/uniform_encryption.parquet.encrypted and
b/data/aes256/uniform_encryption.parquet.encrypted differ