On Wed, 2 Feb 2000, Tom Lane wrote:
> > 2) Changing the sense of the default for getting inherited tuples.
> > Currently you only get inherited tuples if you specify "tablename*".
> > This would be changed so that you get all sub-class tuples too by
> > default unless you specify "ONLY tablename". There are several
> > rationale for this. Firstly this is what Illustra/Informix have
> > implemented. Secondly, I believe it is more logical from an OO
> > perspective as well as giving a more useful default.
>
> Well, mumble. That would be the cleanest choice if we were designing
> in a green field, but we aren't. You're talking about breaking every
> single extant Postgres application that uses inheritance, and possibly
> some that don't use it except as a shorthand for making their schemas
> more compact. (That's not a hypothetical case; I have DBs that use
> schema inheritance but never do SELECT FROM table*.) I think that's
> a mighty high price to pay for achieving a little more logical
> cleanliness.
>
> There is also a nontrivial performance penalty that would be paid
> for reversing this default, because then every ordinary SQL query
> would suffer the overhead of looking to see whether there are
> child tables for each table named in the query. That *really*
> doesn't strike me as a good idea.
>
> If Illustra were popular enough to have defined an industry standard
> about inheritance, I might think we should follow their lead --- but
> who else has followed their lead?
>
> In short, I vote for leaving well enough alone. It's not so badly
> wrong as to be intolerable, and the pain of changing looks high.
Could this be implemented/patched in using #ifdef's, so that you could
configure using --old-style-inheritance so that those that require it
still have it, giving applications a chance to catch up?
Marc G. Fournier ICQ#7615664 IRC Nick: Scrappy
Systems Administrator @ hub.org
primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org