Skip to content

Commit c7a71d7

Browse files
authored
Update IcebergWriterCompatV1 with map struct key requirements (delta-io#4501)
#### Which Delta project/connector is this regarding? <!-- Please add the component selected below to the beginning of the pull request title For example: [Spark] Title of my pull request --> - [ ] Spark - [ ] Standalone - [ ] Flink - [ ] Kernel - [X] Other (proposed RFC modification) ## Description Add a new requirement to the RFC. See changes in the PR. ## How was this patch tested? N/A ## Does this PR introduce _any_ user-facing changes? No
1 parent 623e388 commit c7a71d7

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

protocol_rfcs/iceberg-writer-compat-v1.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,13 @@ For `IcebergWriterCompatV1` writers must ensure:
6464
- [Iceberg Compatibility V2](#iceberg-compatibility-v2) is **enabled** on the table.
6565
- This means _all_ the conditions that [Iceberg Compatibility V2](#iceberg-compatibility-v2) imposes are met.
6666

67+
- The writer **must** block *any* schema changes to a `struct` that is used as a `map` key.
68+
- For example, if the schema contains `map MAP<STRUCT<s: STRING>, INT>`, then any schema change to `map.key` must be disallowed.
69+
- Changes to the schema of the value are allowed.
70+
- This matches Iceberg's behavior, which is documented
71+
[here](https://iceberg.apache.org/docs/nightly/spark-ddl/#alter-table-add-column). In practice
72+
Iceberg writers block any changes, not just column additions.
73+
6774
- Any enabled features are in the [allowlist](#allowed-supported-list-of-features)
6875

6976
- All [Disallowed features](#disallowed-features) are not supported and/or inactive (see below)

0 commit comments

Comments
 (0)