Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.15.1
Description
arrow::AdaptiveIntBuilder builder(arrow::default_memory_pool()); builder.Append(1); std::cout << builder.length() << std::endl;
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.
Attachments
Issue Links
- links to