Skip to content

[C++] Inconsistent handling of path-segment encoding for directory and filename partitioning #55446

Closed

Description

@adamreeve

The directory and filename dataset partitioning methods both accept a segment_encoding parameter, which defaults to URI encoding. However, this is only used when reading datasets, and writing ignores this option and always uses no encoding.

This means that it's impossible to write certain values that aren't valid path segments, and also means values can round-trip incorrectly if they contain values that would be interpreted as percent-encoded during reading.

This behaviour is also inconsistent with Hive partitioning, which encodes path segment values by default.

Related to #34905, which is specific to Hive partitioning and has the opposite problem, where encoding is always used when writing and can't be opted out of.

Fixing this would also solve #33507.

Activity

  1. self-assigned this
    on Nov 9, 2026
  2. added a commit that references this issue on Nov 10, 2026
  3. added this to the 27.0.0 milestone on Nov 10, 2026
  4. pitrou commented on Nov 10, 2026

    @pitrou
    Member

    Issue resolved by pull request 55423
    #55423

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions