• Tom Lane's avatar
    Allow adding values to an enum type created in the current transaction. · 7b90469b
    Tom Lane authored
    Normally it is unsafe to allow ALTER TYPE ADD VALUE in a transaction block,
    because instances of the value could be added to indexes later in the same
    transaction, and then they would still be accessible even if the
    transaction rolls back.  However, we can allow this if the enum type itself
    was created in the current transaction, because then any such indexes would
    have to go away entirely on rollback.
    
    The reason for allowing this is to support pg_upgrade's new usage of
    pg_restore --single-transaction: in --binary-upgrade mode, pg_dump emits
    enum types as a succession of ALTER TYPE ADD VALUE commands so that it can
    preserve the values' OIDs.  The support is a bit limited, so we'll leave
    it undocumented.
    
    Andres Freund
    7b90469b
utility.c 62.1 KB