Skip to content

Cannot access table endpoint in REST catalog when table name contains a slash character (/) #710

@RoseGoldIsntGay

Description

@RoseGoldIsntGay

Apache Iceberg version

0.4.0

Please describe the bug 🐞

When trying to get a table containing a slash character in the name from the Iceberg REST catalog, pyiceberg doesn't url-encode the table name, resulting in an incorrect route.
e.g:
table name: /some/table
api route: v1/namespaces/schema/tables//some/table which returns HTTP Error 400

The table name that's sent to the REST api should be url-encoded resulting in v1/namespaces/schema/tables/%2Fsome%2Ftable which does in fact work.

Adding urllib.parse.quote_plus(identifier.name) in the following line should solve this issue.
https://github.com/apache/iceberg-python/blob/main/pyiceberg/catalog/rest.py#L356

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions