diff --git a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala index cbdce8b87d2dec..2f63f67098e81d 100644 --- a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala +++ b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/ScalarOperatorsTest.scala @@ -212,6 +212,10 @@ class ScalarOperatorsTest extends ScalarOperatorsTestBase { @Test def testOtherExpressions(): Unit = { + // array type test + testSqlApi("CASE WHEN f18 IS NOT NULL THEN f18[0] ELSE NULL END", "1") + testSqlApi("CASE WHEN f19 IS NOT NULL THEN f19[0] ELSE NULL END", "(1, a)") + // nested field null type testSqlApi("CASE WHEN f13.f1 IS NULL THEN 'a' ELSE 'b' END", "a") testSqlApi("CASE WHEN f13.f1 IS NOT NULL THEN 'a' ELSE 'b' END", "b") diff --git a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/utils/ScalarOperatorsTestBase.scala b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/utils/ScalarOperatorsTestBase.scala index 149d8c1dc876e1..c8c620aa8b87ee 100644 --- a/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/utils/ScalarOperatorsTestBase.scala +++ b/flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/utils/ScalarOperatorsTestBase.scala @@ -21,7 +21,7 @@ package org.apache.flink.table.expressions.utils import java.sql.Date import org.apache.flink.api.common.typeinfo.TypeInformation -import org.apache.flink.api.java.typeutils.RowTypeInfo +import org.apache.flink.api.java.typeutils.{ObjectArrayTypeInfo, RowTypeInfo} import org.apache.flink.table.api.Types import org.apache.flink.table.functions.ScalarFunction import org.apache.flink.types.Row @@ -29,7 +29,7 @@ import org.apache.flink.types.Row class ScalarOperatorsTestBase extends ExpressionTestBase { def testData: Row = { - val testData = new Row(18) + val testData = new Row(20) testData.setField(0, 1: Byte) testData.setField(1, 1: Short) testData.setField(2, 1) @@ -48,6 +48,8 @@ class ScalarOperatorsTestBase extends ExpressionTestBase { testData.setField(15, Date.valueOf("1996-11-10")) testData.setField(16, BigDecimal("0.00000000").bigDecimal) testData.setField(17, BigDecimal("10.0").bigDecimal) + testData.setField(18, Array[Int](1,2)) + testData.setField(19, Array[(Int, String)]((1,"a"), (2, "b"))) testData } @@ -70,7 +72,9 @@ class ScalarOperatorsTestBase extends ExpressionTestBase { Types.STRING, Types.SQL_DATE, Types.DECIMAL, - Types.DECIMAL + Types.DECIMAL, + Types.OBJECT_ARRAY(Types.INT), + ObjectArrayTypeInfo.getInfoFor(Types.ROW(Types.INT, Types.STRING)) ).asInstanceOf[TypeInformation[Any]] }