iceberg-rust icon indicating copy to clipboard operation
iceberg-rust copied to clipboard

Arrow uint32/64 support

Open hugokitano opened this issue 7 months ago • 10 comments
trafficstars

Is your feature request related to a problem or challenge?

iceberg::spec::Schema::try_from tries to construct an Iceberg schema from an arrow schema, but does not support converting uint types.

Describe the solution you'd like

ArrowSchemaVisitor::primitive must support uint types, currently throws Error: DataInvalid => Unsupported Arrow data type: UInt64

Willingness to contribute

None

hugokitano avatar Apr 02 '25 17:04 hugokitano

Nice catch. But I think the iceberg spec's primitive type haven't supported this unsigned type. cc @liurenjie1024

If having any solution, I can take this ticket to be as my first PR

zuston avatar Apr 03 '25 03:04 zuston

I would appreciate! Currently blocking for my use case

hugokitano avatar Apr 03 '25 18:04 hugokitano

Thanks @hugokitano for raising this. Iceberg has no support for non negative data types, I think user can convert them to corresponding signed data types before writing?

liurenjie1024 avatar Apr 07 '25 13:04 liurenjie1024

Is there a reason we do not support unsigned integers?

jonathanc-n avatar Apr 08 '25 20:04 jonathanc-n

Is there a reason we do not support unsigned integers?

The spec defined data type supported.

liurenjie1024 avatar Apr 09 '25 02:04 liurenjie1024

This issue has been automatically marked as stale because it has been open for 180 days with no activity. It will be closed in next 14 days if no further activity occurs. To permanently prevent this issue from being considered stale, add the label 'not-stale', but commenting on the issue is preferred when possible.

github-actions[bot] avatar Oct 07 '25 00:10 github-actions[bot]

I think this issue is still valuable to discuss.

liurenjie1024 avatar Oct 09 '25 09:10 liurenjie1024

It'd be very nice to have the spec support this, especially since parquet/arrow have native support. It's unfortunate that we're held back by the java origins of iceberg.

kszlim avatar Nov 05 '25 19:11 kszlim

I think this is also missing in java implementation. We should raise a discussion in dev list.

liurenjie1024 avatar Nov 06 '25 08:11 liurenjie1024

Yeah, probably because java doesn't natively have unsigned ints 😔

kszlim avatar Nov 06 '25 09:11 kszlim