Github user ueshin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21040#discussion_r182705280
  
    --- Diff: 
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CollectionExpressionsSuite.scala
 ---
    @@ -105,4 +105,28 @@ class CollectionExpressionsSuite extends SparkFunSuite 
with ExpressionEvalHelper
         checkEvaluation(ArrayContains(a3, Literal("")), null)
         checkEvaluation(ArrayContains(a3, Literal.create(null, StringType)), 
null)
       }
    +
    +  test("Slice") {
    +    val a0 = Literal.create(Seq(1, 2, 3, 4, 5, 6), ArrayType(IntegerType))
    +    val a1 = Literal.create(Seq[String]("a", "b", "c", "d"), 
ArrayType(StringType))
    +    val a2 = Literal.create(Seq[String]("", null, "a", "b"), 
ArrayType(StringType))
    +
    +    checkEvaluation(Slice(a0, Literal(1), Literal(2)), Seq(1, 2))
    +    checkEvaluation(Slice(a0, Literal(-3), Literal(2)), Seq(4, 5))
    +    checkEvaluation(Slice(a0, Literal(4), Literal(10)), Seq(4, 5, 6))
    +    checkEvaluation(Slice(a0, Literal(-1), Literal(2)), Seq(6))
    +    checkExceptionInExpression[RuntimeException](Slice(a0, Literal(1), 
Literal(-1)),
    +      "Unexpected value for length")
    +    checkExceptionInExpression[RuntimeException](Slice(a0, Literal(0), 
Literal(1)),
    +      "Unexpected value for start")
    +    checkEvaluation(Slice(a0, Literal(-20), Literal(1)), Seq.empty[Int])
    +    checkEvaluation(Slice(a0, Literal.create(null, IntegerType), 
Literal(2)), null)
    +    checkEvaluation(Slice(a0, Literal(2), Literal.create(null, 
IntegerType)), null)
    +    checkEvaluation(Slice(Literal.create(null, ArrayType(IntegerType)), 
Literal(1), Literal(2)),
    +      null)
    --- End diff --
    
    Can you add a case for something like `Slice(a0, Literal(10), Literal(1))`?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to