Skip to content

GH-3828: Preserve column path identity in dictionary lookup - #3830

Draft
costas-db wants to merge 1 commit into
apache:masterfrom
costas-db:gh-3828-dictionary-path-collision
Draft

costas-db wants to merge 1 commit into
apache:masterfrom
costas-db:gh-3828-dictionary-path-collision

Conversation

@costas-db

Copy link
Copy Markdown

What changes?

Use ColumnPath instead of flattened dot strings for dictionary metadata and cache keys. Add a regression with ordinary string columns whose distinct paths (["a.b"] and ["a", "b"]) previously collided.

Why is this needed?

Flattening both paths to "a.b" lets one column overwrite the other, so a dictionary request can return values from the wrong column. The change preserves path-component identity in memory and does not alter the Parquet format.

Tests

  • TestParquetWriter (32 tests)
  • Spotless
  • Apache RAT

Fixes #3828

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dictionary lookup collides for distinct column paths with the same dot string

1 participant