sunjincheng created FLINK-10834: ----------------------------------- Summary: TableAPI flatten calculated value error Key: FLINK-10834 URL: https://issues.apache.org/jira/browse/FLINK-10834 Project: Flink Issue Type: Bug Components: Table API & SQL Reporter: sunjincheng Fix For: 1.7.1
We have a UDF as follows: <code> object FuncRow extends ScalarFunction { def eval(v: Int): Row = { val version = "" + new Random().nextInt() val row = new Row(3) row.setField(0, version) row.setField(1, version) row.setField(2, version) row } override def isDeterministic: Boolean = false override def getResultType(signature: Array[Class[_]]): TypeInformation[_] = Types.ROW(Types.STRING, Types.STRING, Types.STRING) } </code> <code> ... val data = new mutable.MutableList[(Int, Long, String)] data.+=((1, 1L, "Hi")) val ds = env.fromCollection(data).toTable(tEnv, 'a, 'b,'c) .select(FuncRow('a).flatten()).as('v1, 'v2, 'v3) ... </code> The result is : -1189206469,-151367792,1988676906 The result expected by the user should be: v1==v2==v3 . It looks the real reason is that there is no result of the reuse in codegen. -- This message was sent by Atlassian JIRA (v7.6.3#76005)