Thread: Is it wise to include table inheritence in the tutorial?

Is it wise to include table inheritence in the tutorial?

From
PG Doc comments form
Date:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/11/tutorial-inheritance.html
Description:

Hello,

I was reading the tutorial here:
https://www.postgresql.org/docs/11/tutorial-inheritance.html

But on the "don't do this" Wiki, it is strongly advised not to use this:
https://wiki.postgresql.org/wiki/Don't_Do_This#Don.27t_use_table_inheritance

It seems to me that there should at least be a warning, or the entire
section could possible be removed? The tutorial is intended for people new
to PostgreSQL and/or SQL, and introducing features with a large "don't use
this caveat" doesn't strike me as especially helpful?

Cheers,
Martin

Re: Is it wise to include table inheritence in the tutorial?

From
Tom Lane
Date:
PG Doc comments form <noreply@postgresql.org> writes:
> I was reading the tutorial here:
> https://www.postgresql.org/docs/11/tutorial-inheritance.html
> But on the "don't do this" Wiki, it is strongly advised not to use this:
> https://wiki.postgresql.org/wiki/Don't_Do_This#Don.27t_use_table_inheritance

That wiki entry is just some random person's opinion, it's not
project policy.

Having said that, the partitioning feature is approaching the
point of being mature enough to recommend to novices, so maybe
we should start thinking about adjusting the tutorial with that
in mind.  I wouldn't necessarily remove the inheritance section;
it's talking about OOP-style inheritance, which you can't get
with partitioning.

            regards, tom lane



Re: Is it wise to include table inheritence in the tutorial?

From
David Fetter
Date:
On Mon, Aug 05, 2019 at 10:17:40AM -0400, Tom Lane wrote:
> PG Doc comments form <noreply@postgresql.org> writes:
> > I was reading the tutorial here:
> > https://www.postgresql.org/docs/11/tutorial-inheritance.html But
> > on the "don't do this" Wiki, it is strongly advised not to use
> > this:
> > https://wiki.postgresql.org/wiki/Don't_Do_This#Don.27t_use_table_inheritance
> 
> That wiki entry is just some random person's opinion, it's not
> project policy.

It may not be project policy, but I have yet[1] to run into a use of it
that wouldn't be done better some other way.

> Having said that, the partitioning feature is approaching the point
> of being mature enough to recommend to novices, so maybe we should
> start thinking about adjusting the tutorial with that in mind.  I
> wouldn't necessarily remove the inheritance section; it's talking
> about OOP-style inheritance, which you can't get with partitioning.

Table inheritance was part of the ORDBMS experiment, which in turn was
marcom in the context of a time when OO was the new hotness, as were
New Wave, the Oprah Winfrey Show, and smoking bans on airplanes.

That experiment produced a decisive result, namely "don't."

Our tutorial should be rewritten in its entirety with emphasis on
cut'n'paste-ability, the examples being checked via 'make check' or
close friends.

Best,
David.

[1] Modulo misusing exactly one feature of it, combined with a large
engineering effort, to simulate table partitioning
-- 
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate