MaxGekk commented on a change in pull request #24742: [SPARK-27881][SQL] 
Support CAST (... FORMAT <pattern>) expression
URL: https://github.com/apache/spark/pull/24742#discussion_r290343235
 
 

 ##########
 File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
 ##########
 @@ -238,10 +245,50 @@ case class Cast(child: Expression, dataType: DataType, 
timeZoneId: Option[String
   private lazy val dateFormatter = DateFormatter()
   private lazy val timestampFormatter = 
TimestampFormatter.getFractionFormatter(zoneId)
 
+  private lazy val customDateFormatter: DateFormatter = format.map { f =>
+    try {
+      DateFormatter(f)
+    } catch {
+      case NonFatal(_) => null
 
 Review comment:
   > But these formatters are lazy so only during execution is an exception 
raised 
   
   I think it is ok.
   
   > Should we catch the wrong pattern during analysis?
   
   Java's DateTimeFormatter inside of `TimestampFormatter` is lazy too 
[see](https://github.com/apache/spark/blob/ef2d63bfb1859232d166320896957c0543c059cc/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/TimestampFormatter.scala#L50).
 To force the checking, you need to parse/format something. I don't think it is 
worth to do that here.

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