cloud-fan commented on a change in pull request #23651: [SPARK-26730][SQL] 
Strip redundant AssertNotNull for ExpressionEncoder's serializer
URL: https://github.com/apache/spark/pull/23651#discussion_r251880943
 
 

 ##########
 File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/encoders/ExpressionEncoder.scala
 ##########
 @@ -192,6 +192,9 @@ case class ExpressionEncoder[T](
 
     if (isSerializedAsStructForTopLevel) {
       val nullSafeSerializer = objSerializer.transformUp {
+        case _ @ AssertNotNull(a: AssertNotNull, _) =>
+          // strip redundant AssertNotNull
+          a
         case r: BoundReference =>
 
 Review comment:
   well, if you look at it globally, yes, we may strip the `If` later and 
`inputObject` can be null.
   
   However, I think we should make the code less coupled with each other. When 
we create the `If`, we can safely make the assumption that `inputObject` is not 
null, as at that point we don't know it will be stripped. When we strip the 
`If`, we should make sure the assumption still holds, by inserting new 
`AssertNotNull`s.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

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

Reply via email to