• Tom Lane's avatar
    Add text-vs-name cross-type operators, and unify name_ops with text_ops. · 2ece7c07
    Tom Lane authored
    Now that name comparison has effectively the same behavior as text
    comparison, we might as well merge the name_ops opfamily into text_ops,
    allowing cross-type comparisons to be processed without forcing a
    datatype coercion first.  We need do little more than add cross-type
    operators to make the opfamily complete, and fix one or two places
    in the planner that assumed text_ops was a single-datatype opfamily.
    
    I chose to unify hash name_ops into hash text_ops as well, since the
    types have compatible hashing semantics.  This allows marking the
    new cross-type equality operators as oprcanhash.
    
    (Note: this doesn't remove the name_ops opclasses, so there's no
    breakage of index definitions.  Those opclasses are just reparented
    into the text_ops opfamily.)
    
    Discussion: https://postgr.es/m/15938.1544377821@sss.pgh.pa.us
    2ece7c07
varlena.c 145 KB