On Thu, Aug 03, 2017 at 06:59:44PM +0300, Alek Paunov wrote: > On 2017-08-02 20:24, Nico Williams wrote: > >I've implemented "inheritance" with triggers to map DMLs on "derived" > >tables onto "base" tables. That works and is much more general. If you > >need a rowid, however, the triggers have to do more work, first acquring > >the rowid from the base table, then setting it on the derived table > >rows, and this can get tricky. > > Yes. I meant exactly that usecase - where many logically "subclass" tables > share common "address" (rowid) space, so that, any object (or the rest of > the DB) could "reference" objects in the whole hierarchy (like unified value > references in script languages data-models).
It's so darned helpful, that one might expect SQL to support this. But no :( PG's INHERIT fails to inherit PRIMARY KEY and UNIQUE constraints! Inheriting those would have to also share the same namespaces, else INHERIT would be useless still. FOREIGN KEYs generally compile into triggers internally. INHERIT could as well, though there is more scope for space optimization here, as the trigger-based scheme I've used ends up creating a fair bit of duplication. It's "just a matter of code" :) Nico -- _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users