rdblue commented on a change in pull request #3459:
URL: https://github.com/apache/iceberg/pull/3459#discussion_r744335207



##########
File path: 
spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java
##########
@@ -298,6 +317,97 @@ public void deleteWhere(Filter[] filters) {
     }
   }
 
+  @Override
+  public StructType partitionSchema() {
+    List<Types.NestedField> fields = 
icebergTable.spec().partitionType().fields();
+    StructField[] structFields = new StructField[fields.size()];
+    int index = 0;
+    for (Types.NestedField field : fields) {
+      StructField structField = new StructField(field.name(), 
SparkSchemaUtil.convert(field.type()), true,
+          Metadata.empty());
+      structFields[index] = structField;
+      ++index;
+    }
+    return new StructType(structFields);
+  }
+
+  @Override
+  public void createPartition(InternalRow ident, Map<String, String> 
properties)
+      throws PartitionAlreadyExistsException, UnsupportedOperationException {
+    throw new UnsupportedOperationException("not support create partition, use 
addFile procedure to refresh");
+  }
+
+  @Override
+  public boolean dropPartition(InternalRow ident) {
+    throw new UnsupportedOperationException("not support drop partition, use 
delete sql instead of it");
+  }
+
+  @Override
+  public void replacePartitionMetadata(InternalRow ident, Map<String, String> 
properties)
+      throws NoSuchPartitionException, UnsupportedOperationException {
+    throw new UnsupportedOperationException("not support replace partition 
metadata");
+  }
+
+  @Override
+  public Map<String, String> loadPartitionMetadata(InternalRow ident) throws 
UnsupportedOperationException {
+    throw new UnsupportedOperationException("not support load partition 
metadata");
+  }
+
+  @Override
+  public InternalRow[] listPartitionIdentifiers(String[] names, InternalRow 
ident) {
+    Table table = this.table();
+
+    // get possition by partition name
+    StructType partitionSchema = this.partitionSchema();
+    StructField[] partitionFileds = partitionSchema.fields();
+    Map<String, Integer> fieldToPosition = new HashMap<>(8);

Review comment:
       Maps should be created using `Maps.newHashMap` and similar factory 
methods from Guava. Also, I don't think it is a good idea to use a constant, 8. 
If you want to initialize the size of the map, then I recommend calculating the 
target size using something like `partitionSchema().size()`.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to