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));