• Tom Lane's avatar
    Prevent a rowtype from being included in itself. · eb51af71
    Tom Lane authored
    Eventually we might be able to allow that, but it's not clear how many
    places need to be fixed to prevent infinite recursion when there's a direct
    or indirect inclusion of a rowtype in itself.  One such place is
    CheckAttributeType(), which will recurse to stack overflow in cases such as
    those exhibited in bug #5950 from Alex Perepelica.  If we were sure it was
    the only such place, we could easily modify the code added by this patch to
    stop the recursion without a complaint ... but it probably isn't the only
    such place.  Hence, throw error until such time as someone is excited
    enough about this type of usage to put work into making it safe.
    
    Back-patch as far as 8.3.  8.2 doesn't have the recursive call in
    CheckAttributeType in the first place, so I see no need to add code there
    in the absence of clear evidence of a problem elsewhere.
    eb51af71
heap.c 82.2 KB