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