Adam Hooper created ARROW-7281: ---------------------------------- Summary: 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
{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(builder.length() - row); 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)