Class AtomicValueComparison

java.lang.Object
org.rumbledb.runtime.misc.AtomicValueComparison

public final class AtomicValueComparison extends Object
Atomic equivalence semantics for operations such as distinct-values and grouping. This uses atomic deep equality, including NaN equality. It is intentionally separate from Java equality and map op:same-key: numeric comparison applies type promotion and is not transitive across mixed numeric types.
  • Method Details

    • equal

      public static boolean equal(Item left, Item right)
      Returns whether two atomic values belong to the same distinct/grouping equivalence class.
    • equal

      public static boolean equal(Item left, Item right, String collationUri, ExceptionMetadata metadata)
    • hash

      public static int hash(Item item)
      A hash compatible with atomic value comparison. Numeric values are reduced to float because float is the lowest-precision promotion target: any pair equal after decimal/float/double promotion necessarily has the same float value. Gregorian and duration hashes are deliberately coarse because their comparison depends on timezone normalization or subtype promotion.
    • hash

      public static int hash(Item item, String collationUri, ExceptionMetadata metadata)