[ https://issues.apache.org/jira/browse/FLINK-9391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16590055#comment-16590055 ]
Mikhail commented on FLINK-9391: -------------------------------- Hello [~twalthr], As I know, [~ipatina] is on another project. So I'd like to continue Alina's work. I already found out that if we want to select with unnest from table: {code:java} @Test def testUnnest(): Unit = { val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment val tEnv = TableEnvironment.getTableEnvironment(env, config) val data = new mutable.MutableList[(Int, Long, Array[String])] data.+=((1, 1L, Array("Hi", "w"))) data.+=((2, 2L, Array("Hello", "k"))) data.+=((3, 2L, Array("Hello world", "x"))) val input = env.fromCollection(Random.shuffle(data)).toTable(tEnv).as('a, 'b, 'c) val unnested = input.select('a, 'b, 'c.unnest()) val actual = unnested.toDataSet[Row].collect() val expected = List("1,Hi", "1,w", "2,Hello", "2,k", "3,Hello world", "3,x").mkString("\n") TestBaseUtils.compareResultAsText(actual.asJava, expected) } {code} Then there will be generated code for a function in DataSetCalc#translateToPlan for processing input data. That code will be compiled and executed. That code will be generated using CommonCalc#generateFunction which will process each element in a Row separately. So final output for a Row in a table will contain single Row. But for our case with UNNEST we need to have another flow. [~twalthr], could you please suggest where to look at? > Support UNNEST in Table API > --------------------------- > > Key: FLINK-9391 > URL: https://issues.apache.org/jira/browse/FLINK-9391 > Project: Flink > Issue Type: New Feature > Components: Table API & SQL > Reporter: Timo Walther > Assignee: Alina Ipatina > Priority: Major > > FLINK-6033 introduced the UNNEST function for SQL. We should also add this > function to the Table API to keep the APIs in sync. -- This message was sent by Atlassian JIRA (v7.6.3#76005)