Github user srowen commented on a diff in the pull request:
https://github.com/apache/spark/pull/12157#discussion_r59681526
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/literals.scala
---
@@ -169,6 +170,8 @@ case class Literal protected (value: Any, dataType:
DataType)
override def toString: String = if (value != null) value.toString else
"null"
+ override def hashCode(): Int = 42 * dataType.hashCode() +
Objects.hashCode(value)
--- End diff --
That's good, though I think it's best if we use this everywhere for safety.
Many of the equals methods we're matching would handle nulls, but the hashCode
wouldn't.
Also are you able to add the style check rule? or is there no way to
require hashCode with equals, without requiring equals with hashCode? In the
latter case, I suppose we could add dummy equals() methods that just call
super.equals() to satisfy the style check, and comment that that is their
purpose.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]