houqp commented on a change in pull request #68:
URL: https://github.com/apache/arrow-datafusion/pull/68#discussion_r706567452
##########
File path: datafusion/src/scalar.rs
##########
@@ -64,7 +70,10 @@ pub enum ScalarValue {
/// large binary
LargeBinary(Option<Vec<u8>>),
/// list of nested ScalarValue
- List(Option<Vec<ScalarValue>>, DataType),
+ // 1st argument are the inner values (e.g. Int64Array)
+ // 2st argument is the Lists' datatype (i.e. it includes `Field`)
+ // to downcast inner values, use ListArray::<i32>::get_child()
+ List(Option<Arc<dyn Array>>, DataType),
Review comment:
Got it, the optimization makes total sense to me. The protobuf ser/der
is indeed a tricky problem. I am thinking it's probably better to track this
optimization as a separate PR/task to reduce the scope of this PR. There are
some other complications introduced from recent changes in datafusions as well
including newly added `Hash` and `PartialOrd` traits implementation to the
ScalarValue type.
--
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]