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]

Reply via email to