On 03/26/2016 12:35 AM, David G. Johnston wrote:
On Friday, March 25, 2016, Andrew Dunstan <and...@dunslane.net <mailto:and...@dunslane.net>> wrote:

    On 03/25/2016 04:13 AM, Matthias Kurz wrote:

        Hopefully at the commitfest at least the transaction
        limitation will/could be tackled - that would help us a lot

    I don't believe anyone knows how to do that safely. Enums pose
    special problems here exactly because unlike all other types the
    set of valid values is mutable.

Yeah, I'm not sure there is much blue sky here as long as the definition of an enum is considered system data. It probably needs to be altered so that a user can create a table of class enum with a known layout that PostgreSQL can rely upon to perform optimizations and provide useful behaviors - at least internally. The most visible behavior being displaying the label while ordering using its position.

The system, seeing a data type of that class, would have an implicit reference between columns of that type and the source table. You have to use normal cascade update/delete/do-nothing while performing DML on the source table.

In some ways it would be a specialized composite type, and we could leverage that to you all the syntax available for those - but without having a different function for each differently named enum classed table since they all would share a common structure, differing only in name. But the tables would be in user space and not a preordained relation in pg_catalog. Maybe require they all inherit from some template but empty table...

We don't have the luxury of being able to redesign this as a green fields development.



Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to