Skip to content

Commit

Permalink
Update Iceberg to 1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Fokko authored and nastra committed Nov 30, 2022
1 parent 1e3e7c7 commit e501033
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 41 deletions.
8 changes: 8 additions & 0 deletions plugin/trino-iceberg/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,14 @@
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<configuration>
<ignoredDependencies>
<!-- ships google protobuf files -->
<dependency>
<groupId>org.apache.orc</groupId>
<artifactId>orc-core</artifactId>
<classifier>nohive</classifier>
</dependency>
</ignoredDependencies>
<ignoredResourcePatterns>
<!-- com.amazonaws:aws-java-sdk-core and software.amazon.awssdk:sdk-core MIME type file duplicate-->
<ignoredResourcePattern>mime.types</ignoredResourcePattern>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ public void testSelect()
assertUpdate("CREATE TABLE test_select AS SELECT 1 col_name", 1);
assertFileSystemAccesses("SELECT * FROM test_select",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -160,26 +160,26 @@ public void testSelectFromVersionedTable()
assertFileSystemAccesses("SELECT * FROM " + tableName + " FOR VERSION AS OF " + v2SnapshotId,
ImmutableMultiset.builder()
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName + " FOR VERSION AS OF " + v3SnapshotId,
ImmutableMultiset.builder()
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName,
ImmutableMultiset.builder()
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.build());
}

Expand All @@ -203,26 +203,26 @@ public void testSelectFromVersionedTableWithSchemaEvolution()
assertFileSystemAccesses("SELECT * FROM " + tableName + " FOR VERSION AS OF " + v2SnapshotId,
ImmutableMultiset.builder()
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName + " FOR VERSION AS OF " + v3SnapshotId,
ImmutableMultiset.builder()
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.build());
assertFileSystemAccesses("SELECT * FROM " + tableName,
ImmutableMultiset.builder()
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.build());
}

Expand All @@ -232,8 +232,8 @@ public void testSelectWithFilter()
assertUpdate("CREATE TABLE test_select_with_filter AS SELECT 1 col_name", 1);
assertFileSystemAccesses("SELECT * FROM test_select_with_filter WHERE col_name = 1",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -248,8 +248,8 @@ public void testJoin()

assertFileSystemAccesses("SELECT name, age FROM test_join_t1 JOIN test_join_t2 ON test_join_t2.id = test_join_t1.id",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 8)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 8)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 2)
Expand All @@ -266,8 +266,8 @@ public void testJoinWithPartitionedTable()

assertFileSystemAccesses("SELECT count(*) FROM test_join_partitioned_t1 t1 join test_join_partitioned_t2 t2 on t1.a = t2.foo",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 8)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 8)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 2)
Expand All @@ -281,8 +281,8 @@ public void testExplainSelect()

assertFileSystemAccesses("EXPLAIN SELECT * FROM test_explain",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -296,8 +296,8 @@ public void testShowStatsForTable()

assertFileSystemAccesses("SHOW STATS FOR test_show_stats",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -313,8 +313,8 @@ public void testShowStatsForPartitionedTable()

assertFileSystemAccesses("SHOW STATS FOR test_show_stats_partitioned",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -328,8 +328,8 @@ public void testShowStatsForTableWithFilter()

assertFileSystemAccesses("SHOW STATS FOR (SELECT * FROM test_show_stats_with_filter WHERE age >= 2)",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -345,8 +345,8 @@ public void testPredicateWithVarcharCastToDate()

assertFileSystemAccesses("SELECT * FROM test_varchar_as_date_predicate",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2)
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -355,8 +355,8 @@ public void testPredicateWithVarcharCastToDate()
// CAST to date and comparison
assertFileSystemAccesses("SELECT * FROM test_varchar_as_date_predicate WHERE CAST(a AS date) >= DATE '2005-01-01'",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1) // fewer than without filter
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -365,8 +365,8 @@ public void testPredicateWithVarcharCastToDate()
// CAST to date and BETWEEN
assertFileSystemAccesses("SELECT * FROM test_varchar_as_date_predicate WHERE CAST(a AS date) BETWEEN DATE '2005-01-01' AND DATE '2005-12-31'",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1) // fewer than without filter
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand All @@ -375,8 +375,8 @@ public void testPredicateWithVarcharCastToDate()
// conversion to date as a date function
assertFileSystemAccesses("SELECT * FROM test_varchar_as_date_predicate WHERE date(a) >= DATE '2005-01-01'",
ImmutableMultiset.builder()
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 2) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 2) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 1) // fewer than without filter
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 1) // fewer than without filter
.addCopies(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 1)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 1)
Expand Down Expand Up @@ -404,8 +404,8 @@ public void testRemoveOrphanFiles()
.add(new FileOperation(METADATA_JSON, INPUT_FILE_NEW_STREAM))
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_GET_LENGTH), 4)
.addCopies(new FileOperation(SNAPSHOT, INPUT_FILE_NEW_STREAM), 4)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 6)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 6)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_GET_LENGTH), 5)
.addCopies(new FileOperation(MANIFEST, INPUT_FILE_NEW_STREAM), 5)
.build());

assertUpdate("DROP TABLE " + tableName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import org.apache.iceberg.data.Record;
import org.apache.iceberg.data.parquet.GenericParquetWriter;
import org.apache.iceberg.deletes.EqualityDeleteWriter;
import org.apache.iceberg.deletes.PositionDelete;
import org.apache.iceberg.deletes.PositionDeleteWriter;
import org.apache.iceberg.hadoop.HadoopOutputFile;
import org.apache.iceberg.parquet.Parquet;
Expand Down Expand Up @@ -169,8 +170,10 @@ public void testV2TableWithPositionDelete()
.withSpec(PartitionSpec.unpartitioned())
.buildPositionWriter();

PositionDelete<Record> positionDelete = PositionDelete.create();
PositionDelete<Record> record = positionDelete.set(dataFilePath, 0, GenericRecord.create(icebergTable.schema()));
try (Closeable ignored = writer) {
writer.delete(dataFilePath, 0, GenericRecord.create(icebergTable.schema()));
writer.write(record);
}

icebergTable.newRowDelta().addDeletes(writer.toDeleteFile()).commit();
Expand Down Expand Up @@ -519,7 +522,7 @@ private void writeEqualityDeleteToNationTable(Table icebergTable, Optional<Parti

Record dataDelete = GenericRecord.create(deleteRowSchema);
try (Closeable ignored = writer) {
writer.delete(dataDelete.copy(overwriteValues));
writer.write(dataDelete.copy(overwriteValues));
}

icebergTable.newRowDelta().addDeletes(writer.toDeleteFile()).commit();
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
<dep.confluent.version>5.5.2</dep.confluent.version>
<dep.casandra.version>4.14.0</dep.casandra.version>
<dep.minio.version>7.1.4</dep.minio.version>
<dep.iceberg.version>1.0.0</dep.iceberg.version>
<dep.iceberg.version>1.1.0</dep.iceberg.version>
<dep.spotbugs-annotations.version>4.7.2</dep.spotbugs-annotations.version>
<dep.protobuf.version>3.21.6</dep.protobuf.version>
<dep.wire.version>3.2.2</dep.wire.version>
Expand Down
8 changes: 8 additions & 0 deletions testing/trino-faulttolerant-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,14 @@
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<configuration>
<ignoredDependencies>
<!-- ships google protobuf files -->
<dependency>
<groupId>org.apache.orc</groupId>
<artifactId>orc-core</artifactId>
<classifier>nohive</classifier>
</dependency>
</ignoredDependencies>
<ignoredResourcePatterns>
<!-- com.amazonaws:aws-java-sdk-core and software.amazon.awssdk:sdk-core MIME type file duplicate-->
<ignoredResourcePattern>mime.types</ignoredResourcePattern>
Expand Down
Loading

0 comments on commit e501033

Please sign in to comment.