You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by qu...@apache.org on 2023/06/03 05:29:57 UTC
[arrow-julia] branch jq-437 created (now 0b0c8be)
This is an automated email from the ASF dual-hosted git repository.
quinnj pushed a change to branch jq-437
in repository https://gitbox.apache.org/repos/asf/arrow-julia.git
at 0b0c8be Fix case where compressed file reports non-zero buffer length
This branch includes the following new commits:
new 0b0c8be Fix case where compressed file reports non-zero buffer length
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[arrow-julia] 01/01: Fix case where compressed file reports non-zero buffer length
Posted by qu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
quinnj pushed a commit to branch jq-437
in repository https://gitbox.apache.org/repos/asf/arrow-julia.git
commit 0b0c8bec2a64ece2ceb255f9867cc0381c89488e
Author: Jacob Quinn <qu...@gmail.com>
AuthorDate: Fri Jun 2 23:29:04 2023 -0600
Fix case where compressed file reports non-zero buffer length
Fixes #437. Thanks to @DrChainsaw for the investigation, proposed fix,
and test file.
---
src/table.jl | 5 ++---
test/java_compressed_zero_length.arrow | Bin 0 -> 746 bytes
test/runtests.jl | 8 ++++++++
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/table.jl b/src/table.jl
index 50bcd3b..ada392d 100644
--- a/src/table.jl
+++ b/src/table.jl
@@ -570,10 +570,9 @@ function buildbitmap(batch, rb, nodeidx, bufferidx)
end
function uncompress(ptr::Ptr{UInt8}, buffer, compression)
- if buffer.length == 0
- return 0, UInt8[]
- end
+ buffer.length == 0 && return 0, UInt8[]
len = unsafe_load(convert(Ptr{Int64}, ptr))
+ len == 0 && return 0, UInt8[]
ptr += 8 # skip past uncompressed length as Int64
encodedbytes = unsafe_wrap(Array, ptr, buffer.length - 8)
if len == -1
diff --git a/test/java_compressed_zero_length.arrow b/test/java_compressed_zero_length.arrow
new file mode 100644
index 0000000..36345e1
Binary files /dev/null and b/test/java_compressed_zero_length.arrow differ
diff --git a/test/runtests.jl b/test/runtests.jl
index 12c826c..4f84e7c 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -690,6 +690,14 @@ end
end
+@testset "# 437" begin
+
+t = Arrow.Table(joinpath(dirname(pathof(Arrow)), "../test/java_compressed_zero_length.arrow"))
+@test length(t) == 2
+@test length(t.name) == 0
+
+end
+
end # @testset "misc"
end