Skip to content

Python: Fix UUID representation #8248

@Fokko

Description

@Fokko

Feature Request / Improvement

Currently, we represent a UUID literal as UUIDLiteral[Literal[UUID]], but we want to change this to UUIDLiteral[Literal[bytes]].

Probably currently also tables that are partitioned by UUIDs will fail, because the comparison will be between an UUID and bytes.

What we can do, is create a table using PyIceberg:

from pyiceberg.catalog import load_catalog
from pyiceberg.schema import Schema
from pyiceberg.types import UUIDType, NestedField

schema = Schema(
    NestedField(
        field_id=1, name="c1", field_type=UUIDType(), required=False
    ),
)

cat.create_table(
    identifier="default.uuid",
    schema=schema
)

And then add some data:

insert into uuid VALUES('102cb62f-e6f8-4eb0-9973-d9b012ff0967');

Would also be great to have tests around partitioned tables, but it looks like that's not possible today: #8247

cc @JonasJ-ap @HonahX I know that you were looking into this as well.

Query engine

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions