Skip to content

MutableArrayData::extend does not copy child values for ListView arrays #9561

@vegarsti

Description

@vegarsti

When MutableArrayData::extend is called on a ListView array, it copies the offsets and sizes buffers but does not copy the underlying child values. The result is an array whose offsets/sizes point into an empty values array.

  // Build a ListViewArray: [[1, 2], null, [3]]
  let list: ListViewArray = /* ... */;

  let data = list.to_data();
  let mut mutable = MutableArrayData::new(vec![&data], false, 3);
  mutable.extend(0, 0, 3);

  let result_list_view: &ListViewArray = /* ... */;

  // Offsets and sizes were copied, but values array is empty:
  //   offsets: [0, 2, 2], sizes: [2, 0, 1], values.len(): 0

See repro test here: vegarsti@1ee5ae6

Metadata

Metadata

Assignees

No one assigned

    Labels

    arrowChanges to the arrow cratebug

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions