diff --git a/plugin/trino-iceberg/pom.xml b/plugin/trino-iceberg/pom.xml
index 227b0b9a7618..195bf0bc448d 100644
--- a/plugin/trino-iceberg/pom.xml
+++ b/plugin/trino-iceberg/pom.xml
@@ -16,7 +16,7 @@
${project.parent.basedir}
- 0.71.1
+ 0.77.1
@@ -239,12 +239,32 @@
org.projectnessie.nessie
nessie-client
${dep.nessie.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
org.projectnessie.nessie
nessie-model
${dep.nessie.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
@@ -332,7 +352,7 @@
org.apache.httpcomponents.client5
httpclient5
- 5.2.3
+ 5.3.1
runtime
diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieCatalogModule.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieCatalogModule.java
index 7a2008dfc0c4..a80eb8a1125c 100644
--- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieCatalogModule.java
+++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieCatalogModule.java
@@ -22,9 +22,9 @@
import io.trino.plugin.iceberg.catalog.IcebergTableOperationsProvider;
import io.trino.plugin.iceberg.catalog.TrinoCatalogFactory;
import org.apache.iceberg.nessie.NessieIcebergClient;
+import org.projectnessie.client.NessieClientBuilder;
import org.projectnessie.client.api.NessieApiV1;
import org.projectnessie.client.auth.BearerAuthenticationProvider;
-import org.projectnessie.client.http.HttpClientBuilder;
import static io.airlift.configuration.ConfigBinder.configBinder;
import static java.lang.Math.toIntExact;
@@ -47,7 +47,7 @@ protected void setup(Binder binder)
@Singleton
public static NessieIcebergClient createNessieIcebergClient(IcebergNessieCatalogConfig icebergNessieCatalogConfig)
{
- HttpClientBuilder builder = HttpClientBuilder.builder()
+ NessieClientBuilder builder = NessieClientBuilder.createClientBuilderFromSystemSettings()
.withUri(icebergNessieCatalogConfig.getServerUri())
.withDisableCompression(!icebergNessieCatalogConfig.isCompressionEnabled())
.withReadTimeout(toIntExact(icebergNessieCatalogConfig.getReadTimeout().toMillis()))
diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieTableOperations.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieTableOperations.java
index 3fe3c5b33dc4..47094fd7652e 100644
--- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieTableOperations.java
+++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/nessie/IcebergNessieTableOperations.java
@@ -109,7 +109,9 @@ protected void commitNewTable(TableMetadata metadata)
{
verify(version.isEmpty(), "commitNewTable called on a table which already exists");
try {
- nessieClient.commitTable(null, metadata, writeNewMetadata(metadata, 0), table, toKey(new SchemaTableName(database, this.tableName)));
+ String contentId = table == null ? null : table.getId();
+ nessieClient.commitTable(null, metadata, writeNewMetadata(metadata, 0), contentId,
+ toKey(new SchemaTableName(database, this.tableName)));
}
catch (NessieNotFoundException e) {
throw new TrinoException(ICEBERG_COMMIT_ERROR, format("Cannot commit: ref '%s' no longer exists", nessieClient.refName()), e);
@@ -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)));
+ }
+ nessieClient.commitTable(base, metadata, writeNewMetadata(metadata, version.getAsInt() + 1), table.getId(),
+ toKey(new SchemaTableName(database, this.tableName)));
}
catch (NessieNotFoundException e) {
throw new TrinoException(ICEBERG_COMMIT_ERROR, format("Cannot commit: ref '%s' no longer exists", nessieClient.refName()), e);
diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergFileOperations.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergFileOperations.java
index e86fa98936ba..a6033652bb3b 100644
--- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergFileOperations.java
+++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergFileOperations.java
@@ -183,6 +183,7 @@ public void testCreateOrReplaceTableAsSelect()
.add(new FileOperation(SNAPSHOT, "OutputFile.createOrOverwrite"))
.add(new FileOperation(MANIFEST, "OutputFile.createOrOverwrite"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.add(new FileOperation(STATS, "OutputFile.create"))
.build());
}
@@ -197,6 +198,7 @@ public void testSelect()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
}
@@ -223,6 +225,7 @@ public void testSelectWithLimit(int numberOfFiles)
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), min(icebergManifestPrefetching, numberOfFiles))
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), min(icebergManifestPrefetching, numberOfFiles))
.build());
assertFileSystemAccesses("EXPLAIN SELECT * FROM test_select_with_limit LIMIT 3",
@@ -231,6 +234,7 @@ public void testSelectWithLimit(int numberOfFiles)
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), numberOfFiles)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), numberOfFiles)
.build());
assertFileSystemAccesses("EXPLAIN ANALYZE SELECT * FROM test_select_with_limit LIMIT 3",
@@ -239,6 +243,7 @@ public void testSelectWithLimit(int numberOfFiles)
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), numberOfFiles + min(icebergManifestPrefetching, numberOfFiles))
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), numberOfFiles + min(icebergManifestPrefetching, numberOfFiles))
.build());
assertUpdate("DROP TABLE test_select_with_limit");
@@ -271,6 +276,7 @@ public void testReadWholePartition()
ALL_FILES,
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.add(new FileOperation(METADATA_JSON, "InputFile.newStream"))
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
@@ -283,6 +289,7 @@ public void testReadWholePartition()
ALL_FILES,
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.add(new FileOperation(METADATA_JSON, "InputFile.newStream"))
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
@@ -294,6 +301,7 @@ public void testReadWholePartition()
ALL_FILES,
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.add(new FileOperation(METADATA_JSON, "InputFile.newStream"))
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
@@ -305,6 +313,7 @@ public void testReadWholePartition()
ALL_FILES,
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.add(new FileOperation(METADATA_JSON, "InputFile.newStream"))
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
@@ -319,6 +328,7 @@ public void testReadWholePartition()
ALL_FILES,
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.add(new FileOperation(METADATA_JSON, "InputFile.newStream"))
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
@@ -355,6 +365,7 @@ public void testReadWholePartitionSplittableFile()
ALL_FILES,
ImmutableMultiset.builder()
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.add(new FileOperation(METADATA_JSON, "InputFile.newStream"))
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
@@ -367,6 +378,7 @@ public void testReadWholePartitionSplittableFile()
ALL_FILES,
ImmutableMultiset.builder()
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.add(new FileOperation(METADATA_JSON, "InputFile.newStream"))
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
@@ -397,6 +409,7 @@ public void testSelectFromVersionedTable()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName + " FOR VERSION AS OF " + v3SnapshotId,
ImmutableMultiset.builder()
@@ -404,6 +417,7 @@ public void testSelectFromVersionedTable()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName,
ImmutableMultiset.builder()
@@ -411,6 +425,7 @@ public void testSelectFromVersionedTable()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.build());
}
@@ -437,6 +452,7 @@ public void testSelectFromVersionedTableWithSchemaEvolution()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName + " FOR VERSION AS OF " + v3SnapshotId,
ImmutableMultiset.builder()
@@ -444,6 +460,7 @@ public void testSelectFromVersionedTableWithSchemaEvolution()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName,
ImmutableMultiset.builder()
@@ -451,6 +468,7 @@ public void testSelectFromVersionedTableWithSchemaEvolution()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.build());
}
@@ -464,6 +482,7 @@ public void testSelectWithFilter()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
}
@@ -479,6 +498,7 @@ public void testJoin()
.addCopies(new FileOperation(SNAPSHOT, "InputFile.length"), 2)
.addCopies(new FileOperation(SNAPSHOT, "InputFile.newStream"), 2)
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 4)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 4)
.build());
}
@@ -496,6 +516,7 @@ public void testJoinWithPartitionedTable()
.addCopies(new FileOperation(SNAPSHOT, "InputFile.length"), 2)
.addCopies(new FileOperation(SNAPSHOT, "InputFile.newStream"), 2)
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 4)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 4)
.build());
}
@@ -510,6 +531,7 @@ public void testExplainSelect()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
}
@@ -524,6 +546,7 @@ public void testShowStatsForTable()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
}
@@ -540,6 +563,7 @@ public void testShowStatsForPartitionedTable()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
}
@@ -554,6 +578,7 @@ public void testShowStatsForTableWithFilter()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream"))
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
}
@@ -570,6 +595,7 @@ public void testPredicateWithVarcharCastToDate()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 2)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 2)
.build());
// CAST to date and comparison
@@ -579,6 +605,7 @@ public void testPredicateWithVarcharCastToDate()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream")) // fewer than without filter
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
// CAST to date and BETWEEN
@@ -588,6 +615,7 @@ public void testPredicateWithVarcharCastToDate()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream")) // fewer than without filter
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
// conversion to date as a date function
@@ -597,6 +625,7 @@ public void testPredicateWithVarcharCastToDate()
.add(new FileOperation(SNAPSHOT, "InputFile.length"))
.add(new FileOperation(SNAPSHOT, "InputFile.newStream"))
.add(new FileOperation(MANIFEST, "InputFile.newStream")) // fewer than without filter
+ .add(new FileOperation(MANIFEST, "InputFile.length"))
.build());
assertUpdate("DROP TABLE test_varchar_as_date_predicate");
@@ -622,6 +651,7 @@ public void testRemoveOrphanFiles()
.addCopies(new FileOperation(SNAPSHOT, "InputFile.length"), 4)
.addCopies(new FileOperation(SNAPSHOT, "InputFile.newStream"), 4)
.addCopies(new FileOperation(MANIFEST, "InputFile.newStream"), 5)
+ .addCopies(new FileOperation(MANIFEST, "InputFile.length"), 5)
.build());
assertUpdate("DROP TABLE " + tableName);
diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/nessie/TestTrinoNessieCatalog.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/nessie/TestTrinoNessieCatalog.java
index b9a64fe3eba8..b9c7fe2568f5 100644
--- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/nessie/TestTrinoNessieCatalog.java
+++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/nessie/TestTrinoNessieCatalog.java
@@ -36,8 +36,8 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.parallel.Execution;
+import org.projectnessie.client.NessieClientBuilder;
import org.projectnessie.client.api.NessieApiV1;
-import org.projectnessie.client.http.HttpClientBuilder;
import java.io.File;
import java.io.IOException;
@@ -94,7 +94,7 @@ protected TrinoCatalog createTrinoCatalog(boolean useUniqueTableLocations)
TrinoFileSystemFactory fileSystemFactory = new HdfsFileSystemFactory(HDFS_ENVIRONMENT, HDFS_FILE_SYSTEM_STATS);
IcebergNessieCatalogConfig icebergNessieCatalogConfig = new IcebergNessieCatalogConfig()
.setServerUri(URI.create(nessieContainer.getRestApiUri()));
- NessieApiV1 nessieApi = HttpClientBuilder.builder()
+ NessieApiV1 nessieApi = NessieClientBuilder.createClientBuilderFromSystemSettings()
.withUri(nessieContainer.getRestApiUri())
.build(NessieApiV1.class);
NessieIcebergClient nessieClient = new NessieIcebergClient(nessieApi, icebergNessieCatalogConfig.getDefaultReferenceName(), null, ImmutableMap.of());
@@ -118,7 +118,7 @@ public void testDefaultLocation()
IcebergNessieCatalogConfig icebergNessieCatalogConfig = new IcebergNessieCatalogConfig()
.setDefaultWarehouseDir(tmpDirectory.toAbsolutePath().toString())
.setServerUri(URI.create(nessieContainer.getRestApiUri()));
- NessieApiV1 nessieApi = HttpClientBuilder.builder()
+ NessieApiV1 nessieApi = NessieClientBuilder.createClientBuilderFromSystemSettings()
.withUri(nessieContainer.getRestApiUri())
.build(NessieApiV1.class);
NessieIcebergClient nessieClient = new NessieIcebergClient(nessieApi, icebergNessieCatalogConfig.getDefaultReferenceName(), null, ImmutableMap.of());
diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/rest/TestIcebergTrinoRestCatalogConnectorSmokeTest.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/rest/TestIcebergTrinoRestCatalogConnectorSmokeTest.java
index 1176aeb9d967..81b50106f966 100644
--- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/rest/TestIcebergTrinoRestCatalogConnectorSmokeTest.java
+++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/catalog/rest/TestIcebergTrinoRestCatalogConnectorSmokeTest.java
@@ -183,14 +183,6 @@ public void testDropTableWithMissingManifestListFile()
.hasMessageContaining("Table location should not exist");
}
- @Test
- @Override
- public void testDropTableWithMissingDataFile()
- {
- assertThatThrownBy(super::testDropTableWithMissingDataFile)
- .hasMessageContaining("Table location should not exist");
- }
-
@Test
@Override
public void testDropTableWithNonExistentTableLocation()
diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/containers/NessieContainer.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/containers/NessieContainer.java
index db79a4e19d62..e633455d92ce 100644
--- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/containers/NessieContainer.java
+++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/containers/NessieContainer.java
@@ -28,9 +28,9 @@ public class NessieContainer
{
private static final Logger log = Logger.get(NessieContainer.class);
- public static final String DEFAULT_IMAGE = "projectnessie/nessie:0.71.1";
+ public static final String DEFAULT_IMAGE = "ghcr.io/projectnessie/nessie:0.77.1";
public static final String DEFAULT_HOST_NAME = "nessie";
- public static final String VERSION_STORE_TYPE = "INMEMORY";
+ public static final String VERSION_STORE_TYPE = "IN_MEMORY";
public static final int PORT = 19121;
diff --git a/plugin/trino-iceberg/src/test/java/org/apache/iceberg/jdbc/TestingTrinoIcebergJdbcUtil.java b/plugin/trino-iceberg/src/test/java/org/apache/iceberg/jdbc/TestingTrinoIcebergJdbcUtil.java
index f15d86b24b66..4967d9708188 100644
--- a/plugin/trino-iceberg/src/test/java/org/apache/iceberg/jdbc/TestingTrinoIcebergJdbcUtil.java
+++ b/plugin/trino-iceberg/src/test/java/org/apache/iceberg/jdbc/TestingTrinoIcebergJdbcUtil.java
@@ -16,8 +16,8 @@
public final class TestingTrinoIcebergJdbcUtil
{
- public static final String CREATE_CATALOG_TABLE = JdbcUtil.CREATE_CATALOG_TABLE;
- public static final String CREATE_NAMESPACE_PROPERTIES_TABLE = JdbcUtil.CREATE_NAMESPACE_PROPERTIES_TABLE;
+ public static final String CREATE_CATALOG_TABLE = JdbcUtil.V0_CREATE_CATALOG_SQL;
+ public static final String CREATE_NAMESPACE_PROPERTIES_TABLE = JdbcUtil.CREATE_NAMESPACE_PROPERTIES_TABLE_SQL;
private TestingTrinoIcebergJdbcUtil() {}
}
diff --git a/pom.xml b/pom.xml
index 42d8ed0988a8..8faa249247d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -189,7 +189,8 @@
2.25.0
10.8.1
1.44.1
- 1.4.3
+
+ 1.5.0
5.14.0
2.12.7
0.12.5
@@ -2261,6 +2262,14 @@
+
+
+ iceberg-release-candidate
+ Iceberg Release Candidate
+ https://repository.apache.org/content/repositories/orgapacheiceberg-1158/
+
+
+
diff --git a/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/env/environment/EnvSinglenodeSparkIcebergNessie.java b/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/env/environment/EnvSinglenodeSparkIcebergNessie.java
index b2c8634c79e4..7908428b5b00 100644
--- a/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/env/environment/EnvSinglenodeSparkIcebergNessie.java
+++ b/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/env/environment/EnvSinglenodeSparkIcebergNessie.java
@@ -43,7 +43,7 @@ public class EnvSinglenodeSparkIcebergNessie
private static final int SPARK_THRIFT_PORT = 10213;
private static final int NESSIE_PORT = 19120;
- private static final String NESSIE_VERSION = "0.71.1";
+ private static final String NESSIE_VERSION = "0.77.1";
private static final String SPARK = "spark";
private final DockerFiles dockerFiles;
@@ -99,8 +99,8 @@ private DockerContainer createSparkContainer()
private DockerContainer createNessieContainer()
{
- DockerContainer container = new DockerContainer("projectnessie/nessie:" + NESSIE_VERSION, "nessie-server")
- .withEnv("NESSIE_VERSION_STORE_TYPE", "INMEMORY")
+ DockerContainer container = new DockerContainer("ghcr.io/projectnessie/nessie:" + NESSIE_VERSION, "nessie-server")
+ .withEnv("NESSIE_VERSION_STORE_TYPE", "IN_MEMORY")
.withEnv("QUARKUS_HTTP_PORT", Integer.valueOf(NESSIE_PORT).toString())
.withStartupCheckStrategy(new IsRunningStartupCheckStrategy())
.waitingFor(forSelectedPorts(NESSIE_PORT));