Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump Iceberg and Nessie versions #21034

Merged
merged 1 commit into from
Mar 17, 2024
Merged

Bump Iceberg and Nessie versions #21034

merged 1 commit into from
Mar 17, 2024

Conversation

ajantha-bhat
Copy link
Member

@ajantha-bhat ajantha-bhat commented Mar 12, 2024

Description

Additional context and related issues

https://iceberg.apache.org/releases/#150-release

Release notes

(x) This is not user-visible or is docs only, and no release notes are required.

@@ -126,7 +128,11 @@ protected void commitToExistingTable(TableMetadata base, TableMetadata metadata)
{
verify(version.orElseThrow() >= 0, "commitToExistingTable called on a new table");
try {
nessieClient.commitTable(base, metadata, writeNewMetadata(metadata, version.getAsInt() + 1), table, toKey(new SchemaTableName(database, this.tableName)));
if (table == null) {
table = nessieClient.table(toIdentifier(new SchemaTableName(database, tableName)));
Copy link
Contributor

Choose a reason for hiding this comment

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

it's not clear to me why these changes are necessary

Copy link
Member Author

Choose a reason for hiding this comment

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

nessieClient.commitTable signature has changed. It just needs contentID instead of expected content.

ExpectedContent(aka table) was null before this PR also for commitToExistingTable. I have debug the original integration to understand it.

Copy link
Contributor

@nastra nastra left a comment

Choose a reason for hiding this comment

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

LGTM but it's not clear why the changes in IcebergNessieTableOperations are necessary

@findinpath findinpath requested a review from alexjo2144 March 12, 2024 19:46
@findinpath
Copy link
Contributor

Do we need to update the docker image before or we'll do it in a follow-up (see #19564 ) ?

cc @wendigo

@findinpath
Copy link
Contributor

findinpath commented Mar 12, 2024

InputFile.length is being called since apache/iceberg#9592

Pls provide relevant code link in the 1.5.0 tag of the Iceberg code.

The InputFile.length extra-call for the manifests seems to be coming from

https://github.com/apache/iceberg/blob/43c3397528101859250160f123a0749bae79fb4d/core/src/main/java/org/apache/iceberg/avro/AvroIterable.java#L99-L102

I'm not sure though that apache/iceberg#9592 is the cause for the extra InputFile.length call.

@findinpath
Copy link
Contributor

@wendigo could you please run the PR with secrets to see the output of the cloud tests as well?

@ebyhr
Copy link
Member

ebyhr commented Mar 12, 2024

/test-with-secrets sha=054aecc7acca690b80e048a7647c26924bb42fb8

Copy link

The CI workflow run with tests that require additional secrets has been started: https://github.com/trinodb/trino/actions/runs/8256356235

Comment on lines +163 to +164
SchemaTableName schemaTableName = new SchemaTableName(databaseName, tableName);
return ContentKey.of(Namespace.parse(schemaTableName.getSchemaName()), schemaTableName.getTableName());
Copy link
Member

Choose a reason for hiding this comment

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

Why not pass databaseName & tableName to Namespace.parse() directly?

Copy link
Member Author

Choose a reason for hiding this comment

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

we miss the validation of empty schemaname and conversion of the identifiers into lower case.
I don't know the background. But I assumed it was written for that purpose. So, retained the SchemaTableName

@nastra
Copy link
Contributor

nastra commented Mar 13, 2024

InputFile.length is being called since apache/iceberg#9592

Pls provide relevant code link in the 1.5.0 tag of the Iceberg code.

The InputFile.length extra-call for the manifests seems to be coming from

https://github.com/apache/iceberg/blob/43c3397528101859250160f123a0749bae79fb4d/core/src/main/java/org/apache/iceberg/avro/AvroIterable.java#L99-L102

I'm not sure though that apache/iceberg#9592 is the cause for the extra InputFile.length call.

@findinpath I can confirm that those extra InputFile.length calls come from apache/iceberg#9592 because I adjusted the tests when we switched from 1.5.0 RC0 to RC1 (which is when that PR made it into the release)

@wendigo
Copy link
Contributor

wendigo commented Mar 14, 2024

LGTM @findepi @findinpath do you want to chime in?

- Bump Iceberg to 1.5.0 and Nessie to 0.77.1
- Remove deprecated usage
- Fix regression when reading manifest file by overriding
newInputfile and passing in the known length

Co-authored-by: amogh-jahagirdar <[email protected]>
@wendigo wendigo merged commit 996debc into trinodb:master Mar 17, 2024
94 checks passed
@github-actions github-actions bot added this to the 443 milestone Mar 17, 2024
@mosabua
Copy link
Member

mosabua commented Mar 21, 2024

This has no user facing impact and therefore needs to release notes entry? Can you confirm @wendigo and @ajantha-bhat ?

@ajantha-bhat
Copy link
Member Author

I don't remember mentioning Nessie version bumps in the release notes.

@ebyhr
Copy link
Member

ebyhr commented Mar 21, 2024

@mosabua No need to mention in the release note.

@nastra nastra deleted the 1.5.0 branch March 21, 2024 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed iceberg Iceberg connector
Development

Successfully merging this pull request may close these issues.

8 participants