This is an automated email from the ASF dual-hosted git repository.

blue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/master by this push:
     new 98da974  API: Use equals instead of reference equality (#2716)
98da974 is described below

commit 98da9749edee574b8ed673d69e0ef80ce7ae0272
Author: Eduard Tudenhöfner <[email protected]>
AuthorDate: Fri Jun 25 01:17:58 2021 +0200

    API: Use equals instead of reference equality (#2716)
---
 api/src/main/java/org/apache/iceberg/SortField.java        |  2 +-
 api/src/main/java/org/apache/iceberg/types/TypeUtil.java   |  3 ++-
 .../java/org/apache/iceberg/avro/BuildAvroProjection.java  | 11 ++++++-----
 .../main/java/org/apache/iceberg/avro/PruneColumns.java    | 14 ++++++++------
 core/src/main/java/org/apache/iceberg/avro/RemoveIds.java  |  3 ++-
 .../main/java/org/apache/iceberg/avro/SchemaToType.java    |  3 ++-
 .../java/org/apache/iceberg/flink/FlinkTypeToType.java     |  1 +
 .../main/java/org/apache/iceberg/parquet/PruneColumns.java |  2 +-
 .../main/java/org/apache/iceberg/spark/SparkTableUtil.java |  2 +-
 .../java/org/apache/iceberg/spark/SparkTypeToType.java     |  1 +
 10 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/api/src/main/java/org/apache/iceberg/SortField.java 
b/api/src/main/java/org/apache/iceberg/SortField.java
index 07131b8..f980d6f 100644
--- a/api/src/main/java/org/apache/iceberg/SortField.java
+++ b/api/src/main/java/org/apache/iceberg/SortField.java
@@ -80,7 +80,7 @@ public class SortField implements Serializable {
    * @return true if this order satisfies the given order
    */
   public boolean satisfies(SortField other) {
-    if (this == other) {
+    if (Objects.equals(this, other)) {
       return true;
     } else if (sourceId != other.sourceId || direction != other.direction || 
nullOrder != other.nullOrder) {
       return false;
diff --git a/api/src/main/java/org/apache/iceberg/types/TypeUtil.java 
b/api/src/main/java/org/apache/iceberg/types/TypeUtil.java
index 11c66f9..5185038 100644
--- a/api/src/main/java/org/apache/iceberg/types/TypeUtil.java
+++ b/api/src/main/java/org/apache/iceberg/types/TypeUtil.java
@@ -22,6 +22,7 @@ package org.apache.iceberg.types;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Predicate;
@@ -45,7 +46,7 @@ public class TypeUtil {
     Preconditions.checkNotNull(schema, "Schema cannot be null");
 
     Types.StructType result = select(schema.asStruct(), fieldIds);
-    if (schema.asStruct() == result) {
+    if (Objects.equals(schema.asStruct(), result)) {
       return schema;
     } else if (result != null) {
       if (schema.getAliases() != null) {
diff --git 
a/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java 
b/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java
index 5a95410..cd934dc 100644
--- a/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java
+++ b/core/src/main/java/org/apache/iceberg/avro/BuildAvroProjection.java
@@ -21,6 +21,7 @@ package org.apache.iceberg.avro;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.function.Supplier;
 import org.apache.avro.JsonProperties;
 import org.apache.avro.Schema;
@@ -133,7 +134,7 @@ class BuildAvroProjection extends 
AvroCustomOrderSchemaVisitor<Schema, Schema.Fi
     try {
       Schema schema = fieldResult.get();
 
-      if (schema != field.schema() || !expectedName.equals(field.name())) {
+      if (!Objects.equals(schema, field.schema()) || 
!expectedName.equals(field.name())) {
         // add an alias for the field
         return AvroSchemaUtil.copyField(field, schema, 
AvroSchemaUtil.makeCompatibleName(expectedName));
       } else {
@@ -153,7 +154,7 @@ class BuildAvroProjection extends 
AvroCustomOrderSchemaVisitor<Schema, Schema.Fi
     Schema nonNullOriginal = AvroSchemaUtil.fromOption(union);
     Schema nonNullResult = 
AvroSchemaUtil.fromOptions(Lists.newArrayList(options));
 
-    if (nonNullOriginal != nonNullResult) {
+    if (!Objects.equals(nonNullOriginal, nonNullResult)) {
       return AvroSchemaUtil.toOption(nonNullResult);
     }
 
@@ -174,7 +175,7 @@ class BuildAvroProjection extends 
AvroCustomOrderSchemaVisitor<Schema, Schema.Fi
         Schema.Field valueProjection = element.get().getField("value");
 
         // element was changed, create a new array
-        if (valueProjection.schema() != valueField.schema()) {
+        if (!Objects.equals(valueProjection.schema(), valueField.schema())) {
           return 
AvroSchemaUtil.createProjectionMap(keyValueSchema.getFullName(),
               AvroSchemaUtil.getFieldId(keyField), keyField.name(), 
keyField.schema(),
               AvroSchemaUtil.getFieldId(valueField), valueField.name(), 
valueProjection.schema());
@@ -199,7 +200,7 @@ class BuildAvroProjection extends 
AvroCustomOrderSchemaVisitor<Schema, Schema.Fi
         Schema elementSchema = element.get();
 
         // element was changed, create a new array
-        if (elementSchema != array.getElementType()) {
+        if (!Objects.equals(elementSchema, array.getElementType())) {
           return Schema.createArray(elementSchema);
         }
 
@@ -223,7 +224,7 @@ class BuildAvroProjection extends 
AvroCustomOrderSchemaVisitor<Schema, Schema.Fi
       Schema valueSchema = value.get();
 
       // element was changed, create a new map
-      if (valueSchema != map.getValueType()) {
+      if (!Objects.equals(valueSchema, map.getValueType())) {
         return Schema.createMap(valueSchema);
       }
 
diff --git a/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java 
b/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java
index 6176070..57e2c27 100644
--- a/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java
+++ b/core/src/main/java/org/apache/iceberg/avro/PruneColumns.java
@@ -21,6 +21,7 @@ package org.apache.iceberg.avro;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import org.apache.avro.JsonProperties;
 import org.apache.avro.Schema;
@@ -118,7 +119,7 @@ class PruneColumns extends AvroSchemaVisitor<Schema> {
     }
 
     if (pruned != null) {
-      if (pruned != AvroSchemaUtil.fromOption(union)) {
+      if (!Objects.equals(pruned, AvroSchemaUtil.fromOption(union))) {
         return AvroSchemaUtil.toOption(pruned);
       }
       return union;
@@ -149,13 +150,14 @@ class PruneColumns extends AvroSchemaVisitor<Schema> {
         Schema valueProjection = element.getField("value").schema();
         // it is possible that key is not selected, and
         // key schemas can be different if new field ids were assigned to them
-        if (keyProjectionField != null && keyValue.getField("key").schema() != 
keyProjectionField.schema()) {
+        if (keyProjectionField != null &&
+            !Objects.equals(keyValue.getField("key").schema(), 
keyProjectionField.schema())) {
           Preconditions.checkState(
               
SchemaNormalization.parsingFingerprint64(keyValue.getField("key").schema()) ==
                   
SchemaNormalization.parsingFingerprint64(keyProjectionField.schema()),
-                  "Map keys should not be projected");
+              "Map keys should not be projected");
           return AvroSchemaUtil.createMap(keyId, keyProjectionField.schema(), 
valueId, valueProjection);
-        } else if (keyValue.getField("value").schema() != valueProjection) {
+        } else if (!Objects.equals(keyValue.getField("value").schema(), 
valueProjection)) {
           return AvroSchemaUtil.createMap(keyId, 
keyValue.getField("key").schema(), valueId, valueProjection);
         } else {
           return complexMapWithIds(array, keyId, valueId);
@@ -171,7 +173,7 @@ class PruneColumns extends AvroSchemaVisitor<Schema> {
       if (selectedIds.contains(elementId)) {
         return arrayWithId(array, elementId);
       } else if (element != null) {
-        if (element != array.getElementType()) {
+        if (!Objects.equals(element, array.getElementType())) {
           // the element must be a projection
           return arrayWithId(Schema.createArray(element), elementId);
         }
@@ -199,7 +201,7 @@ class PruneColumns extends AvroSchemaVisitor<Schema> {
       // e.g if we are reading data not written by Iceberg writers
       return mapWithIds(map, keyId, valueId);
     } else if (value != null) {
-      if (value != map.getValueType()) {
+      if (!Objects.equals(value, map.getValueType())) {
         // the value must be a projection
         return mapWithIds(Schema.createMap(value), keyId, valueId);
       }
diff --git a/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java 
b/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java
index 1f929bf..b9e0d5c 100644
--- a/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java
+++ b/core/src/main/java/org/apache/iceberg/avro/RemoveIds.java
@@ -21,6 +21,7 @@ package org.apache.iceberg.avro;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.avro.Schema;
 import org.apache.iceberg.relocated.com.google.common.collect.Lists;
 
@@ -74,7 +75,7 @@ public class RemoveIds extends AvroSchemaVisitor<Schema> {
     Schema.Field copy = new Schema.Field(field.name(), newSchema, field.doc(), 
field.defaultVal(), field.order());
     for (Map.Entry<String, Object> prop : field.getObjectProps().entrySet()) {
       String key = prop.getKey();
-      if (key != AvroSchemaUtil.FIELD_ID_PROP) {
+      if (!Objects.equals(key, AvroSchemaUtil.FIELD_ID_PROP)) {
         copy.addProp(key, prop.getValue());
       }
     }
diff --git a/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java 
b/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java
index 577fa23..73c8622 100644
--- a/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java
+++ b/core/src/main/java/org/apache/iceberg/avro/SchemaToType.java
@@ -20,6 +20,7 @@
 package org.apache.iceberg.avro;
 
 import java.util.List;
+import java.util.Objects;
 import org.apache.avro.LogicalType;
 import org.apache.avro.LogicalTypes;
 import org.apache.avro.Schema;
@@ -83,7 +84,7 @@ class SchemaToType extends AvroSchemaVisitor<Type> {
     List<Schema.Field> fields = record.getFields();
     List<Types.NestedField> newFields = 
Lists.newArrayListWithExpectedSize(fields.size());
 
-    if (root == record) {
+    if (Objects.equals(root, record)) {
       this.nextId = 0;
     }
 
diff --git a/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java 
b/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java
index 2cc9771..88276d8 100644
--- a/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java
+++ b/flink/src/main/java/org/apache/iceberg/flink/FlinkTypeToType.java
@@ -171,6 +171,7 @@ class FlinkTypeToType extends FlinkTypeVisitor<Type> {
   }
 
   @Override
+  @SuppressWarnings("ReferenceEquality")
   public Type visit(RowType rowType) {
     List<Types.NestedField> newFields = 
Lists.newArrayListWithExpectedSize(rowType.getFieldCount());
     boolean isRoot = root == rowType;
diff --git a/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java 
b/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java
index fa784a5..acdda78 100644
--- a/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java
+++ b/parquet/src/main/java/org/apache/iceberg/parquet/PruneColumns.java
@@ -131,7 +131,7 @@ class PruneColumns extends ParquetTypeVisitor<Type> {
     } else if (value != null) {
       Integer mapId = getId(map);
       if (!Objects.equal(value, originalValue)) {
-        Type mapType =  Types.map(map.getRepetition())
+        Type mapType = Types.map(map.getRepetition())
             .key(originalKey)
             .value(value)
             .named(map.getName());
diff --git a/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java 
b/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java
index c9bfd49..29c71a8 100644
--- a/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java
+++ b/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java
@@ -372,7 +372,7 @@ public class SparkTableUtil {
     try {
       PartitionSpec spec = SparkSchemaUtil.specForTable(spark, 
sourceTableIdentWithDB.unquotedString());
 
-      if (spec == PartitionSpec.unpartitioned()) {
+      if (Objects.equal(spec, PartitionSpec.unpartitioned())) {
         importUnpartitionedSparkTable(spark, sourceTableIdentWithDB, 
targetTable);
       } else {
         List<SparkPartition> sourceTablePartitions = getPartitions(spark, 
sourceTableIdent);
diff --git a/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java 
b/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java
index 90c6129..f0b8b2a 100644
--- a/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java
+++ b/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java
@@ -64,6 +64,7 @@ class SparkTypeToType extends SparkTypeVisitor<Type> {
   }
 
   @Override
+  @SuppressWarnings("ReferenceEquality")
   public Type struct(StructType struct, List<Type> types) {
     StructField[] fields = struct.fields();
     List<Types.NestedField> newFields = 
Lists.newArrayListWithExpectedSize(fields.length);

Reply via email to