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]
