GH-37582: [Go][Parquet] Implement Float16 logical type#37599
GH-37582: [Go][Parquet] Implement Float16 logical type#37599zeroshade merged 11 commits intoapache:mainfrom
Conversation
|
|
88e0c88 to
07eae6f
Compare
benibus
left a comment
There was a problem hiding this comment.
This should cover the base requirements, but LMK if I missed anything. There's a bit of weird special-casing involved with the column statistics since float16 requires an independent Statistics type despite not being physical - but maybe there's a better way.
There was a problem hiding this comment.
The other randFloat functions don't exclude infinities. Should we change that? The checks for approximate equality will fail when comparing infinities of the same sign.
There was a problem hiding this comment.
It might make more sense to leave the NaN's and infinities to ensure we're covering those cases for testing. Alternately we could just make sure we test those cases separately
zeroshade
left a comment
There was a problem hiding this comment.
Overall this looks great, just a few nitpicks.
There was a problem hiding this comment.
It might make more sense to leave the NaN's and infinities to ensure we're covering those cases for testing. Alternately we could just make sure we test those cases separately
07eae6f to
c0109db
Compare
|
Note that the updated So, fair warning: regenerating the thrift files from this branch alone will basically break everything (for now). |
|
Overall this is looking good to me, though I won't merge this until after the format PR with the thrift changes gets finalized and merged. |
|
@benibus the fix for the failing CIs has been merged, can you rebase and update this so that we can get a clean CI on it? I believe the float16 format has been merged so once you rebase and we have all green i'll be happy to merge this! |
3a1fe0f to
f0ead7d
Compare
|
Rebased. A couple CI failures still, but they look unrelated. |
|
Can you please resolve the conflicts (and potentially rebase if necessary)? We can check the CI afterwards |
NaNs are still excluded from `randFloat16`, as this matches the native float equivalents
f0ead7d to
a7922f9
Compare
|
Alright, I've fixing the conflicts and rebased again. It looks like everything's green now. |
…37599) ### Rationale for this change There is an active proposal for a Float16 logical type in Parquet (apache/parquet-format#184) with C++/Python implementations in progress (apache#36073), so we should add one for Go as well. ### What changes are included in this PR? - [x] Adds `LogicalType` definitions and methods for `Float16` - [x] Adds support for `Float16` column statistics and comparators - [x] Adds support for interchange between Parquet and Arrow's half-precision float ### Are these changes tested? Yes ### Are there any user-facing changes? Yes * Closes: apache#37582 Authored-by: benibus <bpharks@gmx.com> Signed-off-by: Matt Topol <zotthewizard@gmail.com>
|
After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit bff5fb9. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. |
…37599) ### Rationale for this change There is an active proposal for a Float16 logical type in Parquet (apache/parquet-format#184) with C++/Python implementations in progress (apache#36073), so we should add one for Go as well. ### What changes are included in this PR? - [x] Adds `LogicalType` definitions and methods for `Float16` - [x] Adds support for `Float16` column statistics and comparators - [x] Adds support for interchange between Parquet and Arrow's half-precision float ### Are these changes tested? Yes ### Are there any user-facing changes? Yes * Closes: apache#37582 Authored-by: benibus <bpharks@gmx.com> Signed-off-by: Matt Topol <zotthewizard@gmail.com>
Rationale for this change
There is an active proposal for a Float16 logical type in Parquet (apache/parquet-format#184) with C++/Python implementations in progress (#36073), so we should add one for Go as well.
What changes are included in this PR?
LogicalTypedefinitions and methods forFloat16Float16column statistics and comparatorsAre these changes tested?
Yes
Are there any user-facing changes?
Yes