You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Preserve null dictionary values in interleave and concat kernels (#7144)
* fix(select): preserve null values in `merge_dictionary_values`
This function internally computes value masks describing which values
from input dictionaries should remain in the output. Values never
referenced by keys are considered redundant. Null values were
considered redundant, but they are now preserved as of this commit.
This change is necessary because keys can reference null values. Before
this commit, the entries of `MergedDictionaries::key_mappings`
corresponding to null values were left unset. This caused `concat` and
`interleave` to remap all elements referencing them to whatever value
at index 0, producing an erroneous result.
* test(select): add test case `concat::test_string_dictionary_array_nulls_in_values`
This test case passes dictionary arrays containing null values (but no
null keys) to `concat`.
* test(select): add test case `interleave::test_interleave_dictionary_nulls`
This test case passes two dictionary arrays each containing null values
or keys to `interleave`.
* refactor(select): add type alias for `Interner` bucket
Addresses `clippy::type-complexity`.
0 commit comments