diff --git a/presto-iceberg/pom.xml b/presto-iceberg/pom.xml
index 75cb68b542462..b0b525b59cb51 100644
--- a/presto-iceberg/pom.xml
+++ b/presto-iceberg/pom.xml
@@ -12,8 +12,8 @@
${project.parent.basedir}
- 1.3.1
- 0.59.0
+ 1.4.1
+ 0.71.0
diff --git a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/IcebergDistributedSmokeTestBase.java b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/IcebergDistributedSmokeTestBase.java
index 434f70c0043d0..757879164ba8b 100644
--- a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/IcebergDistributedSmokeTestBase.java
+++ b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/IcebergDistributedSmokeTestBase.java
@@ -120,7 +120,7 @@ public void testShowCreateTable()
")\n" +
"WITH (\n" +
" format = 'PARQUET',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s'\n" +
")", getLocation("tpch", "orders")));
}
@@ -369,7 +369,7 @@ private void testCreatePartitionedTableAs(Session session, FileFormat fileFormat
")\n" +
"WITH (\n" +
" format = '" + fileFormat + "',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s',\n" +
" partitioning = ARRAY['order_status','ship_priority','bucket(order_key, 9)']\n" +
")",
@@ -415,7 +415,7 @@ public void testTableComments()
"COMMENT '%s'\n" +
"WITH (\n" +
" format = 'ORC',\n" +
- " format_version = '1'\n" +
+ " format_version = '2'\n" +
")";
assertUpdate(format(createTable, "test table comment"));
@@ -427,7 +427,7 @@ public void testTableComments()
"COMMENT '%s'\n" +
"WITH (\n" +
" format = 'ORC',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s'\n" +
")";
String createTableSql = format(createTableTemplate, "test table comment", getLocation("tpch", "test_table_comments"));
@@ -514,7 +514,7 @@ private void testCreateTableLike()
assertUpdate(session, "CREATE TABLE test_create_table_like_original (col1 INTEGER, aDate DATE) WITH(format = 'PARQUET', partitioning = ARRAY['aDate'])");
assertEquals(getTablePropertiesString("test_create_table_like_original"), format("WITH (\n" +
" format = 'PARQUET',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s',\n" +
" partitioning = ARRAY['adate']\n" +
")", getLocation("tpch", "test_create_table_like_original")));
@@ -527,7 +527,7 @@ private void testCreateTableLike()
assertUpdate(session, "CREATE TABLE test_create_table_like_copy1 (LIKE test_create_table_like_original)");
assertEquals(getTablePropertiesString("test_create_table_like_copy1"), format("WITH (\n" +
" format = 'PARQUET',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s'\n" +
")", getLocation("tpch", "test_create_table_like_copy1")));
dropTable(session, "test_create_table_like_copy1");
@@ -535,7 +535,7 @@ private void testCreateTableLike()
assertUpdate(session, "CREATE TABLE test_create_table_like_copy2 (LIKE test_create_table_like_original EXCLUDING PROPERTIES)");
assertEquals(getTablePropertiesString("test_create_table_like_copy2"), format("WITH (\n" +
" format = 'PARQUET',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s'\n" +
")", getLocation("tpch", "test_create_table_like_copy2")));
dropTable(session, "test_create_table_like_copy2");
@@ -543,7 +543,7 @@ private void testCreateTableLike()
assertUpdate(session, "CREATE TABLE test_create_table_like_copy3 (LIKE test_create_table_like_original INCLUDING PROPERTIES)");
assertEquals(getTablePropertiesString("test_create_table_like_copy3"), format("WITH (\n" +
" format = 'PARQUET',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s',\n" +
" partitioning = ARRAY['adate']\n" +
")", catalogType.equals(CatalogType.HIVE) ?
@@ -554,7 +554,7 @@ private void testCreateTableLike()
assertUpdate(session, "CREATE TABLE test_create_table_like_copy4 (LIKE test_create_table_like_original INCLUDING PROPERTIES) WITH (format = 'ORC')");
assertEquals(getTablePropertiesString("test_create_table_like_copy4"), format("WITH (\n" +
" format = 'ORC',\n" +
- " format_version = '1',\n" +
+ " format_version = '2',\n" +
" location = '%s',\n" +
" partitioning = ARRAY['adate']\n" +
")", catalogType.equals(CatalogType.HIVE) ?
diff --git a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergSystemTables.java b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergSystemTables.java
index 0a2d8217c1e90..b014730a0828d 100644
--- a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergSystemTables.java
+++ b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergSystemTables.java
@@ -26,12 +26,14 @@
import java.nio.file.Path;
import java.time.LocalDate;
+import java.util.List;
import java.util.Map;
import java.util.function.Function;
import static com.facebook.presto.iceberg.IcebergQueryRunner.ICEBERG_CATALOG;
import static com.facebook.presto.testing.TestingSession.testSessionBuilder;
import static com.google.common.collect.ImmutableMap.toImmutableMap;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.Assert.assertEquals;
public class TestIcebergSystemTables
@@ -189,8 +191,16 @@ public void testPropertiesTable()
{
assertQuery("SHOW COLUMNS FROM test_schema.\"test_table$properties\"",
"VALUES ('key', 'varchar', '', '')," + "('value', 'varchar', '', '')");
- assertQuery("SELECT COUNT(*) FROM test_schema.\"test_table$properties\"", "VALUES 1");
- assertQuery("SELECT * FROM test_schema.\"test_table$properties\"", "VALUES ('write.format.default', 'PARQUET')");
+ assertQuery("SELECT COUNT(*) FROM test_schema.\"test_table$properties\"", "VALUES 2");
+ List materializedRows = computeActual(getSession(),
+ "SELECT * FROM test_schema.\"test_table$properties\"").getMaterializedRows();
+
+ assertThat(materializedRows).hasSize(2);
+ assertThat(materializedRows)
+ .anySatisfy(row -> assertThat(row)
+ .isEqualTo(new MaterializedRow(MaterializedResult.DEFAULT_PRECISION, "write.format.default", "PARQUET")))
+ .anySatisfy(row -> assertThat(row)
+ .isEqualTo(new MaterializedRow(MaterializedResult.DEFAULT_PRECISION, "write.parquet.compression-codec", "zstd")));
}
@Test
diff --git a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java
index dfdda6608818b..1f3a859e2a342 100644
--- a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java
+++ b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java
@@ -50,10 +50,10 @@ public void testParse()
assertInvalid("bucket()", "Invalid partition field declaration: bucket()");
assertInvalid("abc", "Cannot find source column: abc");
assertInvalid("notes", "Cannot partition by non-primitive source field: list");
- assertInvalid("bucket(price, 42)", "Cannot bucket by type: double");
- assertInvalid("bucket(notes, 88)", "Cannot bucket by type: list");
- assertInvalid("truncate(ts, 13)", "Cannot truncate type: timestamp");
- assertInvalid("year(order_key)", "Cannot partition type long by year");
+ assertInvalid("bucket(price, 42)", "Invalid source type double for transform: bucket[42]");
+ assertInvalid("bucket(notes, 88)", "Cannot partition by non-primitive source field: list");
+ assertInvalid("truncate(ts, 13)", "Invalid source type timestamp for transform: truncate[13]");
+ assertInvalid("year(order_key)", "Invalid source type long for transform: year");
}
private static void assertParse(String value, PartitionSpec expected)
diff --git a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/nessie/TestIcebergSystemTablesNessie.java b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/nessie/TestIcebergSystemTablesNessie.java
index c8dbf773adfe5..20fc32f72838c 100644
--- a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/nessie/TestIcebergSystemTablesNessie.java
+++ b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/nessie/TestIcebergSystemTablesNessie.java
@@ -88,16 +88,20 @@ public void testPropertiesTable()
{
assertQuery("SHOW COLUMNS FROM test_schema.\"test_table$properties\"",
"VALUES ('key', 'varchar', '', '')," + "('value', 'varchar', '', '')");
- assertQuery("SELECT COUNT(*) FROM test_schema.\"test_table$properties\"", "VALUES 3");
+ assertQuery("SELECT COUNT(*) FROM test_schema.\"test_table$properties\"", "VALUES 5");
List materializedRows = computeActual(getSession(),
"SELECT * FROM test_schema.\"test_table$properties\"").getMaterializedRows();
// nessie writes a "nessie.commit.id" + "gc.enabled=false" to the table properties
- assertThat(materializedRows).hasSize(3);
+ assertThat(materializedRows).hasSize(5);
assertThat(materializedRows)
.anySatisfy(row -> assertThat(row)
.isEqualTo(new MaterializedRow(MaterializedResult.DEFAULT_PRECISION, "write.format.default", "PARQUET")))
.anySatisfy(row -> assertThat(row.getField(0)).isEqualTo("nessie.commit.id"))
- .anySatisfy(row -> assertThat(row).isEqualTo(new MaterializedRow(MaterializedResult.DEFAULT_PRECISION, "gc.enabled", "false")));
+ .anySatisfy(row -> assertThat(row).isEqualTo(new MaterializedRow(MaterializedResult.DEFAULT_PRECISION, "gc.enabled", "false")))
+ .anySatisfy(row -> assertThat(row)
+ .isEqualTo(new MaterializedRow(MaterializedResult.DEFAULT_PRECISION, "write.parquet.compression-codec", "zstd")))
+ .anySatisfy(row -> assertThat(row)
+ .isEqualTo(new MaterializedRow(MaterializedResult.DEFAULT_PRECISION, "write.metadata.delete-after-commit.enabled", "false")));
}
}
diff --git a/presto-testing-docker/src/main/java/com/facebook/presto/testing/containers/NessieContainer.java b/presto-testing-docker/src/main/java/com/facebook/presto/testing/containers/NessieContainer.java
index 4bffeef42148b..e4e75c734a76e 100644
--- a/presto-testing-docker/src/main/java/com/facebook/presto/testing/containers/NessieContainer.java
+++ b/presto-testing-docker/src/main/java/com/facebook/presto/testing/containers/NessieContainer.java
@@ -27,7 +27,7 @@ public class NessieContainer
{
private static final Logger log = Logger.get(NessieContainer.class);
- public static final String DEFAULT_IMAGE = "projectnessie/nessie:0.59.0";
+ public static final String DEFAULT_IMAGE = "projectnessie/nessie:0.71.0";
public static final String DEFAULT_HOST_NAME = "nessie";
public static final String VERSION_STORE_TYPE = "INMEMORY";