John Jenkins created ARROW-7985:
-----------------------------------
Summary: [C++] ListBuilder.Finish fails if underlying value
builder is empty and .Reserve'd
Key: ARROW-7985
URL: https://issues.apache.org/jira/browse/ARROW-7985
Project: Apache Arrow
Issue Type: Bug
Affects Versions: 0.15.1
Reporter: John Jenkins
Here's a reproduction:
{code:java}
#include <arrow/builder.h>
#include <arrow/status.h>
#include <iostream>
int main() {
arrow::ListBuilder lb(arrow::default_memory_pool(),
std::unique_ptr<arrow::ArrayBuilder>(new arrow::Int32Builder()));
lb.value_builder()->Reserve(100); // bug
lb.Append();
std::shared_ptr<arrow::Array> ar;
arrow::Status st = lb.Finish(&ar);
if (!st.ok()) {
std::cerr << st << '\n';
return 1;
}
}
{code}
The output is
{noformat}
Invalid: Resize cannot downsize{noformat}
The Resize call is made at builder_nested.h, line 115. There's a note there
about ARROW-2744. Perhaps the fix is to look at capacity rather than length?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)