Skip to content

Commit 299fb30

Browse files
committed
feat(schema_conversion): add schema conversion for uuid type
1 parent a12bf10 commit 299fb30

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

pyiceberg/utils/schema_conversion.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
("timestamp-millis", "int"): TimestampType(),
7373
("timestamp-micros", "long"): TimestampType(),
7474
("uuid", "fixed"): UUIDType(),
75+
("uuid", "string"): UUIDType(),
7576
}
7677

7778
AvroType = Union[str, Any]

tests/utils/test_schema_conversion.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
StringType,
3535
StructType,
3636
TimestampType,
37+
UUIDType,
3738
UnknownType,
3839
)
3940
from pyiceberg.utils.schema_conversion import AvroSchemaConversion
@@ -327,13 +328,21 @@ def test_convert_date_type() -> None:
327328
actual = AvroSchemaConversion()._convert_logical_type(avro_logical_type)
328329
assert actual == DateType()
329330

331+
def test_convert_uuid_str_type() -> None:
332+
avro_logical_type = {"type": "string", "logicalType": "uuid"}
333+
actual = AvroSchemaConversion()._convert_logical_type(avro_logical_type)
334+
assert actual == UUIDType()
335+
336+
def test_convert_uuid_fixed_type() -> None:
337+
avro_logical_type = {"type": "fixed", "logicalType": "uuid"}
338+
actual = AvroSchemaConversion()._convert_logical_type(avro_logical_type)
339+
assert actual == UUIDType()
330340

331341
def test_convert_timestamp_millis_type() -> None:
332342
avro_logical_type = {"type": "int", "logicalType": "timestamp-millis"}
333343
actual = AvroSchemaConversion()._convert_logical_type(avro_logical_type)
334344
assert actual == TimestampType()
335345

336-
337346
def test_convert_timestamp_micros_type() -> None:
338347
avro_logical_type = {"type": "int", "logicalType": "timestamp-micros"}
339348
actual = AvroSchemaConversion()._convert_logical_type(avro_logical_type)

0 commit comments

Comments
 (0)