[
https://issues.apache.org/jira/browse/ARROW-7281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16985473#comment-16985473
]
Adam Hooper commented on ARROW-7281:
------------------------------------
Lots of ways. Documented here:
https://github.com/CJWorkbench/arrow-tools/blob/master/README.md
Workbench helps non-coders code. Our JSON aims: predictable outcomes; simple
(read: easy-to-understand) behavior; row/column/value size limits; only
number/string types; and defined behavior given *any* valid UTF-8 input.
... I'm not sure it's broadly useful. (The CSV parser, on the other hand, is a
treat. It gives defined behavior for any valid UTF-8 file.)
(Defined behavior is important to us. Most of our users have no recourse when
they see a parse error.)
> [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
> Fix For: 1.0.0
>
>
> {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)