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

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


The following commit(s) were added to refs/heads/master by this push:
     new 3057f1ad7b Add isEqualSet Function (#14313)
3057f1ad7b is described below

commit 3057f1ad7b256c0fedbdf293e8758d29f25a22a1
Author: ashishjayamohan <46698969+ashishjayamo...@users.noreply.github.com>
AuthorDate: Mon Oct 28 17:37:38 2024 -0700

    Add isEqualSet Function (#14313)
---
 .../main/java/org/apache/pinot/spi/utils/EqualityUtils.java | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git 
a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/EqualityUtils.java 
b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/EqualityUtils.java
index ab2a7249bd..03c04c2696 100644
--- a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/EqualityUtils.java
+++ b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/EqualityUtils.java
@@ -76,9 +76,9 @@ public class EqualityUtils {
 
   public static boolean isEqual(@Nullable Object left, @Nullable Object right) 
{
     if (left != null && right != null) {
-      // TODO: comparison of sets of arbitrary objects is not specifically 
supported since
-      // isEqualSet uses isEqualIgnoreOrder which requires sorting.
-      if ((left instanceof Map) && (right instanceof Map)) {
+      if ((left instanceof Set) && (right instanceof Set)) {
+        return EqualityUtils.isEqualSet((Set) left, (Set) right);
+      } else if ((left instanceof Map) && (right instanceof Map)) {
         return EqualityUtils.isEqualMap((Map) left, (Map) right);
       } else if ((left instanceof byte[]) && (right instanceof byte[])) {
         return Arrays.equals((byte[]) left, (byte[]) right);
@@ -156,9 +156,12 @@ public class EqualityUtils {
 
   public static boolean isEqualSet(@Nullable Set left, @Nullable Set right) {
     if (left != null && right != null) {
-      return isEqualIgnoreOrder(Arrays.asList(left.toArray()), 
Arrays.asList(right.toArray()));
+      if (left.size() != right.size()) {
+        return false;
+      }
+      return right.containsAll(left);
     }
-    return left == right;
+    return false;
   }
 
   public static boolean isNullOrNotSameClass(@Nonnull Object left, @Nullable 
Object right) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to