You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: airbyte-cdk/bulk/toolkits/load-iceberg-parquet/src/main/kotlin/io/airbyte/cdk/load/toolkits/iceberg/parquet/IcebergTableSynchronizer.kt
+38-2Lines changed: 38 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -94,6 +94,7 @@ class IcebergTableSynchronizer(
94
94
// 2) Update types => find a supertype for each changed column
Copy file name to clipboardExpand all lines: airbyte-cdk/bulk/toolkits/load-iceberg-parquet/src/test/kotlin/io/airbyte/cdk/load/toolkits/iceberg/parquet/IcebergTableSynchronizerTest.kt
+52Lines changed: 52 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -421,4 +421,56 @@ class IcebergTableSynchronizerTest {
421
421
assertThat(schema).isSameAs(mockNewSchema)
422
422
assertThat(pendingUpdates).hasSize(1)
423
423
}
424
+
425
+
@Test
426
+
fun`test overwrite with replaced column as identifier field defers identifier update`() {
427
+
// Simulates the scenario where a PK column's type changes (e.g. Double -> String)
428
+
// and the column is also an identifier field. Iceberg's requireColumn() fails for
429
+
// columns pending deletion, so we must commit the column replacement first, then
430
+
// handle identifier fields in a follow-up update.
0 commit comments