Could someone (Chris Mead?) post an update on the status of fixing
PostgreSQL's inheritance semantics in the following ways:
Has a decision been made to implementing true inheritance via INHERITS or an
alternative keyword?
By true inheritance, I mean first and foremost that any query on a super-class
should query *all members* of that class by default regardless of which table
they are stored in. Any other behavior violates the very natural expectation
that a table called "PERSON" actually implements the class of all persons.
Second, for performance reasons, there needs to be a way for an index on a
parent class attribute to be shared by all the tables that implement or
inherit from that parent class. This is also necessary to enforce unique
constraints on all members of a class.
I imagine that the current implementation of "SELECT column FROM table*" is a
logical UNION ALL of the select statement applied to each sub table, using
different indexes for each one - Is this correct?
Third, all declarative constraints on a parent class should be enforced
against all members of all sub-classes without exception.
Fourth, someday it would be nice to be able to create object methods & member
functions that operate in the context of a single object. Does anyone know if
the OQL supports this capability?
I understand the backwards compatibility issue with the current semantics.
Rather than adding some sort of run-time setting, I think it would be much
better to add a new keyword / extension to the DDL syntax so that true ODMG
style inheritance can be implemented correctly without breaking old
applications.
Any comments would be appreciated.
- Mark Butler
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])