Alfred Mountfield created ARROW-15705:
-----------------------------------------
Summary: Structs don't append nulls properly
Key: ARROW-15705
URL: https://issues.apache.org/jira/browse/ARROW-15705
Project: Apache Arrow
Issue Type: Bug
Components: JavaScript
Affects Versions: 7.0.0
Reporter: Alfred Mountfield
If you have a StructBuilder, then the `set` method (which is inherited from
`Builder`) on it will modify the null-bitmap and then return directly due to
this snippet:
{code:javascript}
public set(index: number, value: T['TValue'] | TNull) {
if (this.setValid(index, this.isValid(value))) {
this.setValue(index, value);
}
return this;
}
{code}
I believe this breaks the spec, as it results in the children arrays not having
their lengths and null-counts increased. (At least the Rust implementation
expects child arrays to be the same length as their parent struct array, and
the spec seems to imply that's a requirement)
I think there's an easy fix which would be to call `this.setValue` for
`StructBuilder`s regardless of `this.isValid(value)`
Related to https://issues.apache.org/jira/browse/ARROW-15651
--
This message was sent by Atlassian Jira
(v8.20.1#820001)