MaxGekk opened a new pull request #34183:
URL: https://github.com/apache/spark/pull/34183


   ### What changes were proposed in this pull request?
   Change allowed input types of `Abs()` from:
   ```
   NumericType + CalendarIntervalType + YearMonthIntervalType + 
DayTimeIntervalType
   ```
   to
   ```
   NumericType + YearMonthIntervalType + DayTimeIntervalType
   ```
   
   ### Why are the changes needed?
   The changes make the error message more clear.
   
   Before changes:
   ```sql
   spark-sql> set spark.sql.legacy.interval.enabled=true;
   spark.sql.legacy.interval.enabled    true
   spark-sql> select abs(interval -10 days -20 minutes);
   21/10/05 09:11:30 ERROR SparkSQLDriver: Failed in [select abs(interval -10 
days -20 minutes)]
   java.lang.ClassCastException: 
org.apache.spark.sql.types.CalendarIntervalType$ cannot be cast to 
org.apache.spark.sql.types.NumericType
        at 
org.apache.spark.sql.catalyst.util.TypeUtils$.getNumeric(TypeUtils.scala:77)
        at 
org.apache.spark.sql.catalyst.expressions.Abs.numeric$lzycompute(arithmetic.scala:172)
        at 
org.apache.spark.sql.catalyst.expressions.Abs.numeric(arithmetic.scala:169)
   ```
   
   After:
   ```sql
   spark.sql.legacy.interval.enabled    true
   spark-sql> select abs(interval -10 days -20 minutes);
   Error in query: cannot resolve 'abs(INTERVAL '-10 days -20 minutes')' due to 
data type mismatch: argument 1 requires (numeric or interval day to second or 
interval year to month) type, however, 'INTERVAL '-10 days -20 minutes'' is of 
interval type.; line 1 pos 7;
   'Project [unresolvedalias(abs(-10 days -20 minutes, false), None)]
   +- OneRowRelation
   ```
   
   ### Does this PR introduce _any_ user-facing change?
   No, because the original changes of 
https://github.com/apache/spark/pull/34169 haven't released yet.
   
   ### How was this patch tested?
   Manually checked in the command line, see examples above.


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