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)

Reply via email to