UNDER and INHERITS
От | Robert B. Easter |
---|---|
Тема | UNDER and INHERITS |
Дата | |
Msg-id | 00052609014300.30714@comptechnews обсуждение исходный текст |
Список | pgsql-hackers |
Rather than going on and on about the subject in little emails, I've put together some information about UNDER and INHERITS, as I see them, on a webpage at: http://www.comptechnews.com/~reaster/pgoo.html People might consider what it says in deciding the fate of INHERITS and of how to implement SQL's UNDER. I'm of the feeling that UNDER should be implemented according to official standard SQL-1999. INHERITS should be left as the PostgreSQL multiple inheritance language extension, rather than implementing nonstandard draft proposals of UNDER, which would amount to replacing one PostgreSQL language extension for multiple inheritance for just another PostgreSQL language extension for the same thing, just under a different name. It would only disrupt any userbase of INHERITS and introduce all the problems the designers of SQL sought to avoid. INHERITS, the way it stands, is a good, simple inheritance mechanism. It does not transfer attribute (as far as I know) constraints like UNIQUE and PRIMARY KEY, nor does it allow an index to be shared on those because such things create issues in multiple inheritance. ALTER TABLE ADD can be used to reestablish constraints on inherited attributes though, but without an ability share an index like supertable and subtable is intended (I think) to do. The official single inheritance UNDER, is designed to support inheritance of constraints and the sharing of indices from the maximal supertable down into its subtables. The maximal supertable is required to have some UNIQUE NOT NULL attribute for this purpose (SQL-1999 Foundation, Section 11.3, Syntax Rule 7.g). I feel that maybe standard single-inheritance UNDER and the current PostgreSQL extension, INHERITS, can be used together to complement each other. INHERITS provides a simple multiple inherit ability. UNDER provides a feature-rich single inheritance container where subtables are extensions the maximal supertable. One change I think is not unreasonable, is that INHERITS allow parent tables to be dropped. I'd like to know the reason why its not allowed now. -- Robert B. Easter reaster@comptechnews.com
В списке pgsql-hackers по дате отправления: