leonardBang commented on a change in pull request #14977: URL: https://github.com/apache/flink/pull/14977#discussion_r580122931
########## File path: flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/runtime/stream/table/TableSinkITCase.scala ########## @@ -838,6 +842,311 @@ class TableSinkITCase extends StreamingTestBase { } + @Test + def testPartialInsert(): Unit = { + tEnv.executeSql( + s""" + |CREATE TABLE testSink ( + | `a` INT, + | `b` DOUBLE + |) + |WITH ( + | 'connector' = 'values', + | 'sink-insert-only' = 'false' + |) + |""".stripMargin) + + val t = env.fromCollection(tupleData2).toTable(tEnv, 'x, 'y) + tEnv.createTemporaryView("MyTable", t) + + tEnv.executeSql( + s""" + |INSERT INTO testSink (b) + |SELECT sum(y) FROM MyTable GROUP BY x + |""".stripMargin).await() + val expected = List( + "null,0.1", + "null,0.4", + "null,1.0", + "null,2.2", + "null,3.9") + val result = TestValuesTableFactory.getResults("testSink") + assertEquals(expected.sorted, result.sorted) + } + + @Test + def testPartialInsertWithNotNullColumn(): Unit = { + tEnv.executeSql( + s""" + |CREATE TABLE testSink ( + | `a` INT NOT NULL, + | `b` DOUBLE + |) + |WITH ( + | 'connector' = 'values', + | 'sink-insert-only' = 'false' + |) + |""".stripMargin) + + val t = env.fromCollection(tupleData2).toTable(tEnv, 'x, 'y) + tEnv.createTemporaryView("MyTable", t) + + expectedEx.expect(classOf[ValidationException]) + expectedEx.expectMessage("Column 'a' has no default value and does not allow NULLs") Review comment: Flink does not support default value yet, we can improve exception message here, how about improve to ```suggestion expectedEx.expectMessage("Column 'a' does not allow NULL value, thus it can not be used in partial insert") ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org