• Peter Geoghegan's avatar
    Add equalimage B-Tree support functions. · 612a1ab7
    Peter Geoghegan authored
    Invent the concept of a B-Tree equalimage ("equality implies image
    equality") support function, registered as support function 4.  This
    indicates whether it is safe (or not safe) to apply optimizations that
    assume that any two datums considered equal by an operator class's order
    method must be interchangeable without any loss of semantic information.
    This is static information about an operator class and a collation.
    
    Register an equalimage routine for almost all of the existing B-Tree
    opclasses.  We only need two trivial routines for all of the opclasses
    that are included with the core distribution.  There is one routine for
    opclasses that index non-collatable types (which returns 'true'
    unconditionally), plus another routine for collatable types (which
    returns 'true' when the collation is a deterministic collation).
    
    This patch is infrastructure for an upcoming patch that adds B-Tree
    deduplication.
    
    Author: Peter Geoghegan, Anastasia Lubennikova
    Discussion: https://postgr.es/m/CAH2-Wzn3Ee49Gmxb7V1VJ3-AC8fWn-Fr8pfWQebHe8rYRxt5OQ@mail.gmail.com
    612a1ab7
alter_generic.out 38.9 KB