Skip to content

DRAFT: [C++] Respect URI encoding setting for filename and directory partitioning when writing datasets - #55423

Draft
adamreeve wants to merge 10 commits into
apache:mainfrom
adamreeve:directory-partition-escape
Draft

adamreeve wants to merge 10 commits into
apache:mainfrom
adamreeve:directory-partition-escape

Conversation

@adamreeve

@adamreeve adamreeve commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Rationale for this change

Make dataset writing with directory and filename partitioning able to use URI encoding, to support writing values that require encoding to round-trip correctly.

What changes are included in this PR?

When writing a dataset with DirectoryPartitioning or FilenamePartitioning, respect the segment_encoding parameter and use URI encoding if it is enabled. Note that it's enabled by default, so this changes the default behaviour. Previously the segment_encoding parameter was only used when reading.

This also adds additional validation when no encoding is used, and rejects empty string values that cannot be round-tripped correctly with these two partitioning methods.

Are these changes tested?

Yes, this includes new unit tests.

Are there any user-facing changes?

Yes. DirectoryPartitioning and FilenamePartitioning both now URI encode path segments by default. This can be disabled if desired to revert to the previous behaviour by setting the the segment_encoding parameter to "none".

Was AI used for this PR?

In accordance to the AI generation guidelines, please disclose below whether and how AI was used in this PR.

PR code and description written by:

  • Human - Description and some code
  • AI - Code, with close supervision

Reviewed before submission by:

  • Human
  • AI
  • Not reviewed

…dataset

The segment_encoding option was already respected when reading a
directory-partitioned dataset, but ignored when writing.

This change now URI encodes path segments if the encoding mode is
set to Uri. In addition, invalid path segments now raise an error if
they are invalid.
@github-actions github-actions Bot added the awaiting review Awaiting review label Nov 6, 2026
@github-actions

This comment was marked as low quality.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant