make_array returns wrong row count for null-array input
- 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
Assessment
This issue has not been assessed yet.