Skip to content

make_array returns wrong row count for null-array input #21841

@mpurins

Description

@mpurins

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]             │
└────────────────────┘

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions