• Andrew Gierth's avatar
    Force tuple conversion when the source has missing attributes. · bf6cc19e
    Andrew Gierth authored
    Tuple conversion incorrectly concluded that no conversion was needed
    as long as all the attributes lined up. But if the source tuple has a
    missing attribute (from addition of a column with default), then the
    destination tupdesc might not reflect the same default. The typical
    symptom was that the affected columns would be unexpectedly NULL.
    
    Repair by always forcing conversion if the source has missing
    attributes, which will be filled in by the deform operation. (In
    theory we could optimize for when the destination has the same
    default, but that seemed overkill.)
    
    Backpatch to 11 where missing attributes were added.
    
    Per bug #16242.
    
    Vik Fearing (discovery, code, testing) and me (analysis, testcase).
    
    Discussion: https://postgr.es/m/16242-d1c9fca28445966b@postgresql.org
    bf6cc19e
alter_table.out 179 KB