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]


Reply via email to