• Tom Lane's avatar
    Rethink the dependencies recorded for FieldSelect/FieldStore nodes. · 6784d7a1
    Tom Lane authored
    On closer investigation, commits f3ea3e3e et al were a few bricks
    shy of a load.  What we need is not so much to lock down the result
    type of a FieldSelect, as to lock down the existence of the column
    it's trying to extract.  Otherwise, we can break it by dropping that
    column.  The dependency on the result type is then held indirectly
    through the column, and doesn't need to be recorded explicitly.
    
    Out of paranoia, I left in the code to record a dependency on the
    result type, but it's used only if we can't identify the pg_class OID
    for the column.  That shouldn't ever happen right now, AFAICS, but
    it seems possible that in future the input node could be marked as
    being of type RECORD rather than some specific composite type.
    
    Likewise for FieldStore.
    
    Like the previous patch, back-patch to all supported branches.
    
    Discussion: https://postgr.es/m/22571.1509064146@sss.pgh.pa.us
    6784d7a1
alter_table.sql 87.9 KB