jayshrivastava commented on code in PR #21807:
URL: https://github.com/apache/datafusion/pull/21807#discussion_r3139930274


##########
datafusion/proto/proto/datafusion.proto:
##########
@@ -875,13 +875,8 @@ message PhysicalExprNode {
   // Was date_time_interval_expr
   reserved 17;
 
-  // Unique identifier for this expression to do deduplication during 
deserialization.
-  // When serializing, this is set to a unique identifier for each combination 
of
-  // expression, process and serialization run.
-  // When deserializing, if this ID has been seen before, the cached Arc is 
returned
-  // instead of creating a new one, enabling reconstruction of referential 
integrity
-  // across serde roundtrips.
-  optional uint64 expr_id = 30;
+  // Was expr_id
+  reserved 30;

Review Comment:
   If the `PhysicalExpr` has `expression_id` and the actual implementations 
like `DynamicFilterPhysicalExpr` store it, it felt natural to have 
`expression_id`s live in the implementor's proto (ie. 
`PhysicalDynamicFilterNode`) rather than here, one level up. This is more 
significant now since we don't dedupe every `PhysicalExpr` anymore. I thought 
"If only dynamic filters have this, then it can live in the dynamic filter 
proto". 
   
   It also avoids having to put `expr_id: None` everywhere. 
   
   I'll defer to your judgement but those were my thoughts.



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to