allisonwang-db commented on a change in pull request #31791:
URL: https://github.com/apache/spark/pull/31791#discussion_r607394642
##########
File path:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicLogicalOperators.scala
##########
@@ -556,11 +557,56 @@ object Range {
val output = StructType(StructField("id", LongType, nullable = false) ::
Nil).toAttributes
new Range(start, end, step, numSlices, output, isStreaming)
}
+
def apply(start: Long, end: Long, step: Long, numSlices: Int): Range = {
Range(start, end, step, Some(numSlices))
}
+
+ private def castAndEval[T](expression: Expression, dataType: DataType): T = {
+ TypeCoercion.implicitCast(expression, dataType)
Review comment:
Before this PR the arguments to `range` will be implicitly casted. For
example
```sql
select * from range(6 + cos(3)); -- double -> long
select * from range('1'); -- string -> long
```
To be backward compatible we should still support these cases, but they need
to respect the ansi mode when enabled.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]