• Tom Lane's avatar
    Weaken type-OID-matching checks in array_recv and record_recv. · 670c0a1d
    Tom Lane authored
    Rather than always insisting on an exact match of the type OID in the
    data to the element type or column type we expect, complain only when
    both OIDs fall within the manually-assigned range.  This acknowledges
    the reality that user-defined types don't have stable OIDs, while
    still preserving some of the mistake-detection value of the old test.
    
    (It's not entirely clear whether to error if one OID is manually
    assigned and the other isn't.  But perhaps that case could arise in
    cross-version cases where a former extension type has been imported
    into core, so I let it pass.)
    
    This change allows us to remove the prohibition on binary transfer
    of user-defined arrays and composites in the recently-landed support
    for binary logical replication (commit 9de77b54).  We can just
    unconditionally drop that check, since if the client has asked for
    binary transfer it must be >= v14 and must have this change.
    
    Discussion: https://postgr.es/m/CADK3HH+R3xMn=8t3Ct+uD+qJ1KD=Hbif5NFMJ+d5DkoCzp6Vgw@mail.gmail.com
    670c0a1d
proto.c 16.4 KB