yittg commented on PR #4553: URL: https://github.com/apache/iceberg/pull/4553#issuecomment-1099802157
> In this test, the primary key fo the changelog table is the same as the partition schema (vs a subset). > > ``` > org.apache.iceberg.flink.TestChangeLogTable > testChangeLogOnDataKey[PartitionedTable=true] FAILED > java.lang.AssertionError: Should have the expected records for the checkpoint#2 expected:<[Record(1, aaa), Record(2, ccc), Record(2, aaa), Record(1, ccc)]> but was:<[Record(1, aaa), Record(2, bbb), Record(2, ccc), Record(2, aaa), Record(1, bbb, 1, false), Record(1, ccc)]> > at org.junit.Assert.fail(Assert.java:89) > at org.junit.Assert.failNotEquals(Assert.java:835) > at org.junit.Assert.assertEquals(Assert.java:120) > at org.apache.iceberg.flink.TestChangeLogTable.testSqlChangeLog(TestChangeLogTable.java:285) > at org.apache.iceberg.flink.TestChangeLogTable.testChangeLogOnDataKey(TestChangeLogTable.java:167) > @kbendick After roughly investigating, guess that it is because the condition whether apply upsert materialize changed. After applying SinkUpsertMaterializer, the records iceberg writer receiving are not the original input records, it causes the failing case. In 1.14.0, the condition returns false. We can disable it temporarily by setting `table.exec.sink.upsert-materialize` to None, then the cases can pass. Maybe the test cases are invalid, we can decide whether to and how to fix it after more investigating. FYI: https://github.com/apache/flink/pull/17699 -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
