You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (Jira)" <ji...@apache.org> on 2019/12/01 02:46:00 UTC

[jira] [Updated] (ARROW-7281) [C++] AdaptiveIntBuilder::length() does not consider pending_pos_.

     [ https://issues.apache.org/jira/browse/ARROW-7281?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Wes McKinney updated ARROW-7281:
--------------------------------
    Summary: [C++] AdaptiveIntBuilder::length() does not consider pending_pos_.  (was: AdaptiveIntBuilder::length() does not consider pending_pos_.)

> [C++] AdaptiveIntBuilder::length() does not consider pending_pos_.
> ------------------------------------------------------------------
>
>                 Key: ARROW-7281
>                 URL: https://issues.apache.org/jira/browse/ARROW-7281
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 0.15.1
>            Reporter: Adam Hooper
>            Priority: Major
>
> {code:c++}
> arrow::AdaptiveIntBuilder builder(arrow::default_memory_pool());
> builder.Append(1);
> std::cout << builder.length() << std::endl;
> {code}
> Expected output: {{1}}
> Actual output: {{0}}
> I imagine this regression came with https://github.com/apache/arrow/pull/3040
> My use case: I'm building a JSON parser that appends "records" (JSON Objects mapping key=>value) to Arrow columns (each key gets an ArrayBuilder). Not all JSON Objects contain all keys; so {{builder.Append()}} isn't always called. So on a subsequent row, I want to add nulls for every append that was skipped: {{builder.AppendNulls(row - builder.length()); builder.Append(value)}}. This fails because {{builder.length()}} is wrong.
> Annoying but simple workaround: I maintain a separate {{length}} value alongside {{builder}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)