pub fn fingerprint(c: &Core) -> StringExpand description
An expression’s shape as a string, so two that are the same expression share one index.
The plan’s hash-consing keys on a string, and the collection alone is not enough for
arrange_by: two joins over one collection by different keys are two indexes, and two by the
same key are one. Core is not Eq, and the parts of it that are not the expression — spans,
and the annotations crate::liveness, crate::fields and crate::frames leave — would
make two identical expressions look different, so this writes down what a reader would call the
expression and nothing else.
Being wrong in the safe direction costs an index rather than an answer: two fingerprints that differ where the expressions agree build two indexes that hold the same thing.