Rindle docs and package mapSkip to main content

values_identical

Function values_identical 

pub fn values_identical(a: Value<'_>, b: Value<'_>) -> bool
Expand description

PREDICATE identity comparison — the third comparator (07 §4.2/§8.1). A compiled where predicate’s = / != / IN evaluates with this, NOT with values_equal: a filter treats null as identical to null (so col = null matches a null cell), the opposite of join semantics. It is distinct from all three of:

  • compare_values (sort): same null-handling (null == null) but total and panicking on a cross-type pair — wrong for a predicate, which must never crash the pipeline on a literal/column type mismatch.
  • values_equal (join): null != null — the explicitly-forbidden one here.

So values_identical is the total, non-panicking, null-identical equality. Numeric Int/Float cross-comparison is exact (design 226 §5.1) because SQLite number columns vend as Float while AST literals often lower to integral Int; below 2^53 this is indistinguishable from the old f64 widening, and above it two distinct Ints no longer collapse onto one Float.