spark-instrumented-optimizer/sql/core
Max Gekk 3ac0382759 [SPARK-36920][SQL][FOLLOWUP] Fix input types of ABS(): numeric and ANSI intervals
### 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.

Closes #34183 from MaxGekk/fix-abs-input-types.

Authored-by: Max Gekk <max.gekk@gmail.com>
Signed-off-by: Max Gekk <max.gekk@gmail.com>
2021-10-05 15:37:08 +03:00
..
benchmarks [SPARK-34981][SQL][FOLLOWUP] Use SpecificInternalRow in ApplyFunctionExpression 2021-05-24 17:25:24 +09:00
src [SPARK-36920][SQL][FOLLOWUP] Fix input types of ABS(): numeric and ANSI intervals 2021-10-05 15:37:08 +03:00
pom.xml [SPARK-36891][SQL] Refactor SpecificParquetRecordReaderBase and add more coverage on vectorized Parquet decoding 2021-10-01 23:35:23 -07:00