Hello All
in the wiki above and specifically in this commit :
https://wiki.postgresql.org/index.php?title=Don%27t_Do_This&type=revision&diff=33210&oldid=33082
someone added this section about inheritance :
"
Don't use table inheritance
Don't use table inheritance. If you think you want to, use foreign keys instead.
Why not?
Table inheritance was a part of a fad wherein the database was closely coupled to object-oriented code. It turned out that coupling things that closely didn't actually produce the desired results.
When should you?
Never …almost. Now that table partitioning is done natively, that common use case for table inheritance has been replaced by a native feature that handles tuple routing, etc., without bespoke code.
One of the very few exceptions would be temporal_tables
extension if you are in a pinch and want to use that for row
versioning in place of a lacking SQL 2011 support. Table
inheritance will provide a small shortcut instead of using UNION
ALL
to get both historical as well as current rows.
Even then you ought to be wary of caveats
while working with parent table.
"
I believe this text is false on too many accounts. So, what's the
consensus about Inheritance in PostgreSQL, I am going to give a
talk on it in November and I wouldn't like to
advertise/promote/teach something that the community has decided
to abandon or drop. Actually I proposed several topics and they
chose this one (Inheritance).