You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Jonathan A Sternberg (JIRA)" <ji...@apache.org> on 2018/10/25 21:46:00 UTC

[jira] [Created] (ARROW-3613) [Go] Resize does not correctly update the length

Jonathan A Sternberg created ARROW-3613:
-------------------------------------------

             Summary: [Go] Resize does not correctly update the length
                 Key: ARROW-3613
                 URL: https://issues.apache.org/jira/browse/ARROW-3613
             Project: Apache Arrow
          Issue Type: Bug
          Components: Go
            Reporter: Jonathan A Sternberg


If you have the following code:
{code:java}
package main

import (
    "fmt"

    "github.com/apache/arrow/go/arrow/array"
    "github.com/apache/arrow/go/arrow/memory"
)

func main() {
    builder := array.NewFloat64Builder(memory.DefaultAllocator)
    fmt.Println(builder.Len(), builder.Cap())
    builder.Reserve(44)
    fmt.Println(builder.Len(), builder.Cap())
    builder.Resize(5)
    fmt.Println(builder.Len(), builder.Cap())
    builder.Reserve(44)
    for i := 0; i < 44; i++ {
        builder.Append(0)
    }
    fmt.Println(builder.Len(), builder.Cap())
    builder.Resize(5)
    fmt.Println(builder.Len(), builder.Cap())
}
{code}
It gives the following output:
{code:java}
0 0
0 64
0 32
44 64
44 32
{code}
For whatever reason, the length is not recorded as 5. I understand why the capacity might not be 5, but it does seem like the length should be set to 5 if the array is resized to a length smaller than its current capacity.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)