MCPcopy Create free account
hub / github.com/apple/foundationdb / _compare_values

Function _compare_values

bindings/python/fdb/tuple.py:504–532  ·  view source on GitHub ↗
(value1, value2)

Source from the content-addressed store, hash-verified

502
503
504def _compare_values(value1, value2):
505 code1 = _code_for(value1)
506 code2 = _code_for(value2)
507
508 if code1 < code2:
509 return -1
510 elif code1 > code2:
511 return 1
512
513 # Compatible types.
514 if code1 == NULL_CODE:
515 return 0
516 elif code1 == STRING_CODE:
517 encoded1 = value1.encode('utf-8')
518 encoded2 = value2.encode('utf-8')
519 return -1 if encoded1 < encoded2 else 0 if encoded1 == encoded2 else 1
520 elif code1 == FLOAT_CODE:
521 f1 = value1 if isinstance(value1, SingleFloat) else SingleFloat(value1.value)
522 f2 = value2 if isinstance(value2, SingleFloat) else SingleFloat(value2.value)
523 return -1 if f1 < f2 else 0 if f1 == f2 else 1
524 elif code1 == DOUBLE_CODE:
525 d1 = value1.value if isinstance(value1, ctypes.c_double) else value1
526 d2 = value2.value if isinstance(value2, ctypes.c_double) else value2
527 return _compare_floats(d1, d2)
528 elif code1 == NESTED_CODE:
529 return compare(value1, value2)
530 else:
531 # Booleans, UUIDs, integers, and Versionstamps can just use standard comparison.
532 return -1 if value1 < value2 else 0 if value1 == value2 else 1
533
534
535# compare element by element and return -1 if t1 < t2 or 1 if t1 > t2 or 0 if t1 == t2

Callers 1

compareFunction · 0.85

Calls 5

_code_forFunction · 0.85
_compare_floatsFunction · 0.85
SingleFloatClass · 0.70
compareFunction · 0.70
encodeMethod · 0.45

Tested by

no test coverage detected