"Marko Tiikkaja" <marko.tiikkaja@2ndquadrant.com> writes:
> CREATE TABLE IF NOT EXISTS duplicates some constraints if the new table
> isn't created:
What this means is that the feature was implemented in the wrong place,
ie the short-circuit is after rather than before parse_utilcmds.c splits
up the CREATE TABLE command into multiple primitive actions.
I have stated previously my opinion that this is a misconceived feature,
and it's now apparent that the implementation is as poorly thought
through as the definition. My recommendation is to revert that patch
altogether.
(BTW, before anyone suggests that s/continue/break/ would fix it,
I suggest experimenting with a table containing a serial column.)
regards, tom lane