MCPcopy Create free account
hub / github.com/apache/datafusion / eq

Method eq

datafusion/common/src/scalar/mod.rs:454–584  ·  view source on GitHub ↗
(&self, other: &Self)

Source from the content-addressed store, hash-verified

452// manual implementation of `PartialEq`
453impl PartialEq for ScalarValue {
454 fn eq(&self, other: &Self) -> bool {
455 use ScalarValue::*;
456 // This purposely doesn't have a catch-all "(_, _)" so that
457 // any newly added enum variant will require editing this list
458 // or else face a compile error
459 match (self, other) {
460 (Decimal32(v1, p1, s1), Decimal32(v2, p2, s2)) => {
461 v1.eq(v2) && p1.eq(p2) && s1.eq(s2)
462 }
463 (Decimal32(_, _, _), _) => false,
464 (Decimal64(v1, p1, s1), Decimal64(v2, p2, s2)) => {
465 v1.eq(v2) && p1.eq(p2) && s1.eq(s2)
466 }
467 (Decimal64(_, _, _), _) => false,
468 (Decimal128(v1, p1, s1), Decimal128(v2, p2, s2)) => {
469 v1.eq(v2) && p1.eq(p2) && s1.eq(s2)
470 }
471 (Decimal128(_, _, _), _) => false,
472 (Decimal256(v1, p1, s1), Decimal256(v2, p2, s2)) => {
473 v1.eq(v2) && p1.eq(p2) && s1.eq(s2)
474 }
475 (Decimal256(_, _, _), _) => false,
476 (Boolean(v1), Boolean(v2)) => v1.eq(v2),
477 (Boolean(_), _) => false,
478 (Float32(v1), Float32(v2)) => match (v1, v2) {
479 (Some(f1), Some(f2)) => f1.to_bits() == f2.to_bits(),
480 _ => v1.eq(v2),
481 },
482 (Float16(v1), Float16(v2)) => match (v1, v2) {
483 (Some(f1), Some(f2)) => f1.to_bits() == f2.to_bits(),
484 _ => v1.eq(v2),
485 },
486 (Float32(_), _) => false,
487 (Float16(_), _) => false,
488 (Float64(v1), Float64(v2)) => match (v1, v2) {
489 (Some(f1), Some(f2)) => f1.to_bits() == f2.to_bits(),
490 _ => v1.eq(v2),
491 },
492 (Float64(_), _) => false,
493 (Int8(v1), Int8(v2)) => v1.eq(v2),
494 (Int8(_), _) => false,
495 (Int16(v1), Int16(v2)) => v1.eq(v2),
496 (Int16(_), _) => false,
497 (Int32(v1), Int32(v2)) => v1.eq(v2),
498 (Int32(_), _) => false,
499 (Int64(v1), Int64(v2)) => v1.eq(v2),
500 (Int64(_), _) => false,
501 (UInt8(v1), UInt8(v2)) => v1.eq(v2),
502 (UInt8(_), _) => false,
503 (UInt16(v1), UInt16(v2)) => v1.eq(v2),
504 (UInt16(_), _) => false,
505 (UInt32(v1), UInt32(v2)) => v1.eq(v2),
506 (UInt32(_), _) => false,
507 (UInt64(v1), UInt64(v2)) => v1.eq(v2),
508 (UInt64(_), _) => false,
509 (Utf8(v1), Utf8(v2)) => v1.eq(v2),
510 (Utf8(_), _) => false,
511 (Utf8View(v1), Utf8View(v2)) => v1.eq(v2),

Callers 5

find_indicesFunction · 0.45
partial_cmpMethod · 0.45

Calls 1

to_bitsMethod · 0.80

Tested by

no test coverage detected