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

Reply via email to