[
https://issues.apache.org/jira/browse/FLINK-7014?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16065961#comment-16065961
]
ASF GitHub Bot commented on FLINK-7014:
---------------------------------------
Github user wuchong commented on a diff in the pull request:
https://github.com/apache/flink/pull/4200#discussion_r124457542
--- Diff:
flink-libraries/flink-table/src/test/scala/org/apache/flink/table/ExpressionReductionTest.scala
---
@@ -422,4 +423,50 @@ class ExpressionReductionTest extends TableTestBase {
util.verifyTable(result, expected)
}
+ @Test(expected = classOf[NullPointerException])
+ def testReduceDeterministicUDF(): Unit = {
+ val util = streamTestUtil()
+ val table = util.addTable[(Int, Long, String)]("MyTable", 'a, 'b, 'c)
+
+ // if isDeterministic = true, will cause a Calcite NPE, which will be
fixed in [CALCITE-1860]
+ val result = table
+ .select('a, 'b, 'c, DeterministicNullFunc() as 'd)
+ .where("d.isNull")
+ .select('a, 'b, 'c)
+
+ val expected: String = ""
--- End diff --
We should set the expected value here to make sure the test can pass once
we reopen it.
> Expose isDeterministic interface to ScalarFunction and TableFunction
> --------------------------------------------------------------------
>
> Key: FLINK-7014
> URL: https://issues.apache.org/jira/browse/FLINK-7014
> Project: Flink
> Issue Type: Improvement
> Components: Table API & SQL
> Reporter: Ruidong Li
> Assignee: Ruidong Li
>
> Currently, the `isDeterministic` method of implementations of `SqlFuntion`
> are always returning true, which cause inappropriate optimization in Calcite,
> such as taking user's stateful UDF as a pure functional procedure.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)