ARROW-13804: [Go] Add Interval type Month, Day, Nano#11310
ARROW-13804: [Go] Add Interval type Month, Day, Nano#11310zeroshade wants to merge 12 commits intoapache:masterfrom
Conversation
f3b9516 to
a4d1547
Compare
go/arrow/internal/arrjson/arrjson.go
Outdated
There was a problem hiding this comment.
does int32 error if months or day are out of range?
There was a problem hiding this comment.
I believe that int32 will just truncate if the value of months or days is larger than an int32 can hold.
The other areas in the integration testing pieces here didn't check for overflows i don't think so i didn't think it was necessary to do so, but I can add checks to error on over/underflow if that's needed. Thoughts?
|
Thanks @zeroshade it looks like there might have been some large changes outside of flatbuf code unrelated to MonthDayNanoIntervals (it appears that the are formatting?) Would it pay to submit a PR doing the formatting and flatbuf update separately from the actual new logic? |
|
@emkornfield So the formatting changes happened due to the length of the name If you think that doing the flatbuf update separately from the actual new logic would be beneficial I can do that, mostly I didn't think anyone would be directly reviewing the generated flatbuf code so didn't consider it necessary to break it out as a separate change. That said, the changes to the enum values to line up with the C++ type ids could be broken out as a separate change to be done first, before the flatbuf and |
|
the failure in the Archery & Crossbow test is unrelated to my changes as far as I can tell. |
|
@emkornfield I broke the flatbuf update and the type id enum changes out to #11389 after that gets merged, i'll update this PR accordingly |
Also updates the type ID enums accordingly, adding type ids for as of yet unsupported types to reduce the size of future changes. Broken out from #11310 to shrink the size of the change to implement MonthDayNano intervals in Go Closes #11389 from zeroshade/arrow-14296-flatbuf Lead-authored-by: Matthew Topol <[email protected]> Co-authored-by: Matt Topol <[email protected]> Signed-off-by: Matthew Topol <[email protected]>
39046f2 to
64efd32
Compare
This comment has been minimized.
This comment has been minimized.
|
I was able to narrow this down to being related to the application metadata. Unlike the C++ flight integration client, the Java one does not validate the metadata in the response to the DoGet, only in the DoPut, if I modify the Go flight integration server to not send the app metadata field with the DoGet responses, then it succeeds without issue. But when it does send the metadata, it fails claiming a memory leak of the exact number of bytes that were sent via app metadata (1 byte per message). I don't know why it doesn't have this memory leak when consuming from the C++ flight integration server which appears to be sending the metadata in the same way unless i'm missing something. I'm not particularly well versed with java or the java implementation so any assistance at all in tracking down what's going on and whether it's a Go bug or a Java bug would be extremely helpful. Thanks much! |
|
I figured out the cause of the issue, when using |
3fcc1de to
4584db1
Compare
|
Success! Manually adding a step in the archery.yml to install pygit2 from a binary wheel fixes the missing header issue. Always nice to see all greens :) |
|
@lidavidm I was told that I should tag you to check out the small java change here. Could you please take a look and just make sure i'm not doing anything terrible / that should be done a better way? Thanks! |
lidavidm
left a comment
There was a problem hiding this comment.
LGTM, thanks for fixing this in the Java client.
java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightStream.java
Outdated
Show resolved
Hide resolved
Co-authored-by: David Li <[email protected]>
|
Benchmark runs are scheduled for baseline = e379ee1 and contender = 12aaf2c. 12aaf2c is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
apache#10177 Added the interval type Month, Day, Nano to the flatbuffer and C++/Java, this updates the flatbuffer generated files and adds support for the type to Go. Closes apache#11310 from zeroshade/arrow-13804-month-day-nano Authored-by: Matthew Topol <[email protected]> Signed-off-by: Matthew Topol <[email protected]>
#10177 Added the interval type Month, Day, Nano to the flatbuffer and C++/Java, this updates the flatbuffer generated files and adds support for the type to Go.