apache / apache/parquet-java

Encrypting the entire table is impossible

Open
#1,645 0 comments 0 reactions 0 assignees View on GitHub
Component: Java Component: Parquet Priority: Major Type: bug
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

 

```java

public InternalColumnEncryptionSetup getColumnSetup(ColumnPath columnPath,
boolean createIfNull, int ordinal) {
InternalColumnEncryptionSetup internalColumnProperties = columnMap.get(columnPath);

if (null != internalColumnProperties) {
if (ordinal != internalColumnProperties.getOrdinal()) {
throw new ParquetCryptoRuntimeException("Column ordinal doesnt match " + columnPath +
": " + ordinal + ", "+internalColumnProperties.getOrdinal());
}
return internalColumnProperties;
}

------ here is always true, then throw Exception
if (!createIfNull) {
throw new ParquetCryptoRuntimeException("No encryption setup found for column " + columnPath);
}
if (fileCryptoMetaDataCreated) {
throw new ParquetCryptoRuntimeException("Re-use: No encryption setup for column " + columnPath);
}

```

**Environment**: Linux
**Reporter**: [ren shangtao](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=renshangtao)

**Note**: *This issue was originally created as [PARQUET-2174](https://issues.apache.org/jira/browse/PARQUET-2174). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing getColumnSetup(ColumnPath, boolean, int) and the columnMap lookup shown in the issue. Reproduce the reported path where the createIfNull check leads to an exception, then verify that encrypting the entire table no longer fails for that case.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.