alamb commented on issue #8262: URL: https://github.com/apache/arrow-datafusion/issues/8262#issuecomment-1852700799
> This problem has been introduced in [c9330bc](https://github.com/apache/arrow-datafusion/commit/c9330bc09e583734aed721a208a0684118b170f1) which changed the default empty value for lower and upper bound from `ScalarValue::Null` to `ScalarValue::try_from(field.data_type())`. which is not implemented for map, to fix it we have to either implement it for `Map` or fallback on `Null` value. I have done these two in two draft PRs I have above. I think implementing it for `Map` is what makes the most sense to me However, I think this may be a non trivial change as it will require implementing a `ScalarValue::Map` variant which does not see to exist https://github.com/apache/arrow-datafusion/blob/7f312c8a1d82b19f03c640e4a5d7d6437b2ee835/datafusion/common/src/scalar.rs#L102 l I think `ScalarValue::Map` can follow the model of `ScalarValue::List` (as Maps are just lists of structs, as I undertand): ```rust enum ScalarValue { ... /// one element array Map(ArrayRef) } ``` > > In the first one I tried to implement the empty value for map as described in the description of Map which returns a `List` of key values as a `struct` called `entries`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
