Uh oh!
There was an error while loading. Please reload this page.
GH-41246: [C++][Python] Simplify nested field encryption configuration - #45462
Conversation
ba57bdc to
611f7a7CompareAlenkaF
commented
Mar 24, 2025
Note, CI Win failures do not look related but there is a linter fix needed: |
25b39d0 to
0c7ff27CompareAlenkaF
commented
Mar 26, 2025
The C++ failure looks related. |
AlenkaF
commented
Mar 26, 2025
efbc7c8 to
41a3359Comparepitrou
commented
Mar 27, 2025
Is this useful? Is there a reasonable use case for using different encryption settings for the map key and value columns, respectively? Otherwise I think we can only keep the following items, which will also simplify the semantics and the implementation:
|
EnricoMi
commented
May 16, 2025
Irrespective of it being useful, it is currently possible to do via |
EnricoMi
commented
May 16, 2025
Note that I have removed encrypting the individual list elements via Encrypting a single field of a list of structs column can be denoted as What do you think? |
EnricoMi
commented
Sep 4, 2025
@pitrou what are your thoughts on the latest logic / semantics? |
EnricoMi
commented
Oct 29, 2025
@pitrou hope you have a moment for this |
pitrou
commented
Oct 30, 2025
I'll be out on vacation, so not before ~10 days I think. |
EnricoMi
commented
Oct 30, 2025
No worries, enjoy! |
pitrou
commented
Nov 17, 2025
@github-actions crossbow submit preview-docs |
pitrou
left a comment
There was a problem hiding this comment.
Sorry for the delay. This looks in general, a bunch of minor comments and suggestions below.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Revision: b0ef03f Submitted crossbow builds: ursacomputing/crossbow @ actions-151fb9c2fa
|
pitrou
commented
Dec 16, 2025
Ha, sorry, CI fails now that #48338 was merged, you need to stop passing the column path to |
pitrou
commented
Dec 16, 2025
I'm sorry that it took so long @EnricoMi . Looking forward to more contributions from you! |
… corpus (#48558) ### Rationale for this change In #48336 we skipped encrypted nested columns because it was too cumbersome to configure (each leaf column had to be configured independently). Now that #45462 has been merged we can configure nested columns the same way as non-nested ones. ### Are these changes tested? Manually and later by OSS-Fuzz. ### Are there any user-facing changes? No. * GitHub Issue: #48557 Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit 052e0aa. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 83 possible false positives for unstable benchmarks that are known to sometimes produce them. |
### Rationale for this change A `#include` required on Valgrind (due to conditional compilation) was removed in PR #45462. ### Are these changes tested? Yes, by existing CI jobs. ### Are there any user-facing changes? No. * GitHub Issue: #48566 Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
…uration (apache#45462) ### Rationale for this change Columns can b encrypted with individual keys. For this, the column name have to be set in `EncryptionConfiguration::column_keys`. This poses the following challenges for columns with nested fields like `MapType`, `ListType`, and `StructType`. Encrypting a column of such type requires providing an encryption key for all nested (leaf) fields. Ideally, the column name should be sufficient (as it is for any other data type) to encrypt all nested fields. ### What changes are included in this PR? The column name can be used to encrypt all nested fields of `StrutType`, `MapType`, and `ListType` columns with the same encryption key. The current column naming scheme can still be used for backward compatibility. ### Are these changes tested? Tested in C++ and Python. ### Are there any user-facing changes? Column encryption can be configured with less code and more intuitive naming. Documentation and examples updated. Fixesapache#41246. * GitHub Issue: apache#41246 Authored-by: Enrico Minack <github@enrico.minack.dev> Signed-off-by: Antoine Pitrou <antoine@python.org>
…z seed corpus (apache#48558) ### Rationale for this change In apache#48336 we skipped encrypted nested columns because it was too cumbersome to configure (each leaf column had to be configured independently). Now that apache#45462 has been merged we can configure nested columns the same way as non-nested ones. ### Are these changes tested? Manually and later by OSS-Fuzz. ### Are there any user-facing changes? No. * GitHub Issue: apache#48557 Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
### Rationale for this change A `#include` required on Valgrind (due to conditional compilation) was removed in PR apache#45462. ### Are these changes tested? Yes, by existing CI jobs. ### Are there any user-facing changes? No. * GitHub Issue: apache#48566 Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
Rationale for this change
Columns can b encrypted with individual keys. For this, the column name have to be set in
EncryptionConfiguration::column_keys. This poses the following challenges for columns with nested fields likeMapType,ListType, andStructType. Encrypting a column of such type requires providing an encryption key for all nested (leaf) fields. Ideally, the column name should be sufficient (as it is for any other data type) to encrypt all nested fields.What changes are included in this PR?
The column name can be used to encrypt all nested fields of
StrutType,MapType, andListTypecolumns with the same encryption key. The current column naming scheme can still be used for backward compatibility.Are these changes tested?
Tested in C++ and Python.
Are there any user-facing changes?
Column encryption can be configured with less code and more intuitive naming.
Documentation and examples updated.
Fixes#41246.