Merlin Moncure <mmonc...@gmail.com> writes: >> On Mon, Mar 28, 2011 at 9:47 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: >>> I think the most straightforward and reliable fix for this would be to >>> forbid recursive containment of a rowtype in itself --- ie, the first >>> ALTER should have been rejected. Can anyone think of a situation where >>> it would be sane to allow such a thing?
>> Well, maybe. In fact, probably. That's like asking in C if it's sane >> to have a structure to contain a pointer back to itself, which of >> course it is. That said, if it doesn't work properly, it should >> probably be disabled until it does. > hm, you can work around lack of above at present using two vs one types: > postgres=# create table b (); > postgres=# create table c (); > postgres=# alter table b add c c; > postgres=# alter table c add b b; Well, that'd have to be disallowed too under what I have in mind. Indirect recursion is no safer than direct. If you try alter table b add k serial; at this point, you'll get the same crash or failure as for the direct recursion case. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers