costas-db opened a new pull request, #3833:
URL: https://github.com/apache/parquet-java/pull/3833

   ### What changes?
   
   Add a backward-compatible structured form for per-column Hadoop 
configuration keys. Each UTF-8 path component is encoded independently, so the 
valid paths `["a.b"]` and `["a", "b"]` no longer collapse to the same `"a.b"` 
identity.
   
   The PR adds:
   
   - component-aware parsing and key generation in `ColumnConfigParser`
   - `String[]` path overloads for Bloom-filter and statistics properties
   - public `ParquetOutputFormat` setters for those structured paths
   - round-trip coverage for dotted, nested, empty, and Unicode path components
   - an end-to-end statistics regression using ordinary string columns
   
   Legacy dot-string keys continue to work. Structured overrides are applied 
afterward, so callers can opt into unambiguous paths without a compatibility 
break. This does not change the Parquet file format.
   
   ### Why is this needed?
   
   Per-column configuration currently passes a flattened string into 
`ColumnPath.fromDotString`. A top-level field literally named `a.b` is 
therefore indistinguishable from nested field `b` under `a`; configuration 
intended for one column can be applied to the other. The issue is 
datatype-independent.
   
   ### TDD verification
   
   The first commit adds the reproduction before production changes. On 
`master`, it fails because the top-level `["a.b"]` override is ignored. The 
second commit adds the structured-path implementation.
   
   Final verification:
   
   - `TestParquetProperties`: 11 tests passed
   - `TestParquetWriter`: 32 tests passed
   - `TestColumnConfigParser`: 1 test passed
   - Spotless passed
   - Apache RAT passed
   
   Fixes #3832


-- 
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]

Reply via email to