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]