Skip to content

Conversation

@ggershinsky
Copy link
Contributor

No description provided.

@RussellSpitzer
Copy link
Member

Note we'll want to start a dev list email thread once we get this nailed now to vote on the change

@ggershinsky
Copy link
Contributor Author

thanks @rdblue and @RussellSpitzer for the productive call and the suggestions. I've updated the PR to reflect the discussion results. All comments and corrections are welcome.
In the meantime, I'll be implementing these spec changes to make sure the things work end-to-end.

@ggershinsky
Copy link
Contributor Author

@rdblue @RussellSpitzer I've implemented the spec changes in an e2e code, everything works ok. This PR is ready for a new review round.

@smaheshwar-pltr
Copy link
Contributor

Friendly ping on this, @rdblue / @RussellSpitzer 🙏

format/spec.md Outdated
| _optional_ | _optional_ | _optional_ | **`partition-statistics`** | A list (optional) of [partition statistics](#partition-statistics). |
| | | _optional_ | **`row-lineage`** | A boolean, defaulting to false, setting whether or not to track the creation and updates to rows in the table. See [Row Lineage](#row-lineage). |
| | | _optional_ | **`next-row-id`** | A `long` higher than all assigned row IDs; the next snapshot's `first-row-id`. See [Row Lineage](#row-lineage). |
| | | _optional_ | **`current-key-id`** | ID of the encryption key that encrypts the manifest list key metadata. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I agree with using "current" here. I don't see how this key ID would be "current" -- it is either the key for the manifest list or it is not. How about using just key-id?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good, changing to key-id

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, my comment was based on thinking this was a snapshot's key ID because of the description. This was actually in table metadata.

Can we trust table metadata to provide a key ID to use? I would probably have the encryption manager select the key automatically -- the one that is available from KMS.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, we can have this handled by the encryption manager.

| _optional_ | _required_ | _required_ | **`summary`** | A string map that summarizes the snapshot changes, including `operation` as a _required_ field (see below) |
| _optional_ | _optional_ | _optional_ | **`schema-id`** | ID of the table's current schema when the snapshot was created |
| | | _required_ | **`first-row-id`** | The first `_row_id` assigned to the first row in the first data file in the first manifest, see [Row Lineage](#row-lineage) |
| | | _optional_ | **`key-id`** | ID of the encryption key that encrypts the manifest list key metadata |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would it make sense to name this encryption-key-id to make it more obvious that this is about encryption

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what other key it would be. I think it's pretty clear.

@rdblue
Copy link
Contributor

rdblue commented May 5, 2025

The vote passed, so I'll merge this. Thanks, everyone!

@rdblue rdblue merged commit 7f3f450 into apache:main May 5, 2025
2 checks passed
devendra-nr pushed a commit to devendra-nr/iceberg that referenced this pull request Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Specification Issues that may introduce spec changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants