dramaticlly commented on code in PR #11045: URL: https://github.com/apache/iceberg/pull/11045#discussion_r1739201510
########## spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCreateChangelogViewProcedure.java: ########## @@ -242,6 +249,34 @@ public void testUpdateWithIdentifierField() { sql("select * from %s order by _change_ordinal, id, data", viewName)); } + @TestTemplate + public void testUpdateWithInComparableType() { + createTableWithIncomparableType(); + + sql("INSERT INTO %s VALUES (2, Map('b','b'), 12)", tableName); + Table table = validationCatalog.loadTable(tableIdent); + Snapshot snap1 = table.currentSnapshot(); + + sql("INSERT OVERWRITE %s VALUES (3, Map('c','c'), 13), (2, Map('d','d'), 12)", tableName); + table.refresh(); + Snapshot snap2 = table.currentSnapshot(); + + assertThat(table.sortOrder()).isNotNull(); + + List<Object[]> returns = + sql("CALL %s.system.create_changelog_view(table => '%s')", catalogName, tableName); + + String viewName = (String) returns.get(0)[0]; + assertEquals( + "Rows should match", + ImmutableList.of( + row(2, Collections.singletonMap("b", "b"), 12, INSERT, 0, snap1.snapshotId()), + row(2, Collections.singletonMap("b", "b"), 12, DELETE, 1, snap2.snapshotId()), + row(2, Collections.singletonMap("d", "d"), 12, INSERT, 1, snap2.snapshotId()), + row(3, Collections.singletonMap("c", "c"), 13, INSERT, 1, snap2.snapshotId())), + sql("select * from %s order by _change_ordinal, id", viewName)); Review Comment: this might look a bit confusing, but the assert equals are asserting expectation vs reality, here we are building expected using immutable list and row and last line of sql is where we get the reality, so we cannot remove this ``` assertEquals( // context or error message if assert fails "Rows should match", // expected ImmutableList.of( row(2, Collections.singletonMap("b", "b"), 12, INSERT, 0, snap1.snapshotId()), row(2, Collections.singletonMap("b", "b"), 12, DELETE, 1, snap2.snapshotId()), row(2, Collections.singletonMap("d", "d"), 12, INSERT, 1, snap2.snapshotId()), row(3, Collections.singletonMap("c", "c"), 13, INSERT, 1, snap2.snapshotId())), // actual sql("select * from %s order by _change_ordinal, id", viewName)); ``` -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org