apache / apache/datafusion

make_array returns wrong row count for null-array input

Open
#21,841 2 comments 0 reactions 1 assignee Claimed by @mpurins View on GitHub
bug
Dominant language
Rust
Stars
9.3k
Forks
2.4k
Avg merge
3d 7h
Merged PRs (30d)
344

Description

### Describe the bug

`make_array` fails with an internal error when it's argument is NullArray

### To Reproduce

```
❯ datafusion-cli
DataFusion CLI v53.1.0
> select make_array(n) from (values (NULL), (NULL), (NULL)) as t(n);
Internal error: UDF make_array returned a different number of rows than expected. Expected: 3, Got: 1.
This issue was likely caused by a bug in DataFusion's code. Please help us to resolve this by filing a bug report in our issue tracker: https://github.com/apache/datafusion/issues
```

### Expected behavior

This should be the result
```
+-----------------+
| make_array(t.n) |
+-----------------+
| [NULL] |
| [NULL] |
| [NULL] |
+-----------------+
```

### Additional context

Expected behavior matches duckdb
```
❯ duckdb
DuckDB v1.5.2 (Variegata)
Enter ".help" for usage hints.
memory D select [n] from (values (NULL), (NULL), (NULL)) as t(n);
┌────────────────────┐
│ main.list_value(n) │
│ int32[] │
├────────────────────┤
│ [NULL] │
│ [NULL] │
│ [NULL] │
└────────────────────┘
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.