This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 2f7c11f5f [spark] Add hashcode for PaimonBatch (#2488)
2f7c11f5f is described below
commit 2f7c11f5f774723ee39af31d18f5341fdac90397
Author: Zouxxyy <[email protected]>
AuthorDate: Tue Dec 12 15:51:01 2023 +0800
[spark] Add hashcode for PaimonBatch (#2488)
---
.../main/java/org/apache/paimon/predicate/CompoundPredicate.java | 5 +++++
.../src/main/java/org/apache/paimon/table/source/RawFile.java | 5 +++++
.../main/java/org/apache/paimon/spark/SparkInputPartition.java | 7 +++++++
.../src/main/java/org/apache/paimon/spark/SparkReaderFactory.java | 6 ++++++
.../src/main/scala/org/apache/paimon/spark/PaimonBatch.scala | 8 +++++++-
5 files changed, 30 insertions(+), 1 deletion(-)
diff --git
a/paimon-common/src/main/java/org/apache/paimon/predicate/CompoundPredicate.java
b/paimon-common/src/main/java/org/apache/paimon/predicate/CompoundPredicate.java
index 9d9c2259e..1f13f24d2 100644
---
a/paimon-common/src/main/java/org/apache/paimon/predicate/CompoundPredicate.java
+++
b/paimon-common/src/main/java/org/apache/paimon/predicate/CompoundPredicate.java
@@ -82,6 +82,11 @@ public class CompoundPredicate implements Predicate {
return Objects.equals(function, that.function) &&
Objects.equals(children, that.children);
}
+ @Override
+ public int hashCode() {
+ return Objects.hash(function, children);
+ }
+
/** Evaluate the predicate result based on multiple {@link Predicate}s. */
public abstract static class Function implements Serializable {
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/source/RawFile.java
b/paimon-core/src/main/java/org/apache/paimon/table/source/RawFile.java
index 5f1a41ffa..9967586dc 100644
--- a/paimon-core/src/main/java/org/apache/paimon/table/source/RawFile.java
+++ b/paimon-core/src/main/java/org/apache/paimon/table/source/RawFile.java
@@ -119,6 +119,11 @@ public class RawFile {
&& schemaId == other.schemaId;
}
+ @Override
+ public int hashCode() {
+ return Objects.hash(path, offset, length, format, schemaId);
+ }
+
@Override
public String toString() {
return String.format(
diff --git
a/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkInputPartition.java
b/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkInputPartition.java
index 47f32ab42..3b02c61a6 100644
---
a/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkInputPartition.java
+++
b/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkInputPartition.java
@@ -22,6 +22,8 @@ import org.apache.paimon.table.source.Split;
import org.apache.spark.sql.connector.read.InputPartition;
+import java.util.Objects;
+
/** A Spark {@link InputPartition} for paimon. */
public class SparkInputPartition implements InputPartition {
@@ -50,4 +52,9 @@ public class SparkInputPartition implements InputPartition {
SparkInputPartition that = (SparkInputPartition) o;
return this.split.equals(that.split);
}
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(split);
+ }
}
diff --git
a/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkReaderFactory.java
b/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkReaderFactory.java
index 986183832..69a029715 100644
---
a/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkReaderFactory.java
+++
b/paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkReaderFactory.java
@@ -29,6 +29,7 @@ import
org.apache.spark.sql.connector.read.PartitionReaderFactory;
import java.io.IOException;
import java.io.UncheckedIOException;
+import java.util.Objects;
import static org.apache.paimon.spark.SparkUtils.createIOManager;
@@ -75,4 +76,9 @@ public class SparkReaderFactory implements
PartitionReaderFactory {
SparkReaderFactory that = (SparkReaderFactory) o;
return this.readBuilder.equals(that.readBuilder);
}
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(readBuilder);
+ }
}
diff --git
a/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/PaimonBatch.scala
b/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/PaimonBatch.scala
index b356cf90e..f1aa4a353 100644
---
a/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/PaimonBatch.scala
+++
b/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/PaimonBatch.scala
@@ -21,7 +21,9 @@ import org.apache.paimon.table.source.{ReadBuilder, Split}
import org.apache.spark.sql.connector.read.{Batch, InputPartition,
PartitionReaderFactory}
-/** A Spark {@link Batch} for paimon. */
+import java.util.Objects
+
+/** A Spark [[Batch]] for paimon. */
case class PaimonBatch(splits: Array[Split], readBuilder: ReadBuilder) extends
Batch {
override def planInputPartitions(): Array[InputPartition] =
@@ -38,4 +40,8 @@ case class PaimonBatch(splits: Array[Split], readBuilder:
ReadBuilder) extends B
case _ => false
}
}
+
+ override def hashCode(): Int = {
+ Objects.hashCode(splits.toSeq, readBuilder)
+ }
}