Description
Using MIN() on struct with NULL in first field of a row yields NULL as result.
Example:
select min(a) FROM (select 1 as a union all select 2 as a union all select cast(null as int) as a) tmp;
OK
_c0
1
As expected. But if we wrap it in a struct:
select min(a) FROM (select named_struct("field",1) as a union all select named_struct("field",2) as a union all select named_struct("field",cast(null as int)) as a) tmp;
OK
_c0
NULL
Using MAX() works as expected for structs.