Re: Declarative partitioning vs. sql_inheritance
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Dmitry Ivanov <d.ivanov@postgrespro.ru>
Cc: Michael Paquier <michael.paquier@gmail.com>,
Andres Freund <andres@anarazel.de>, Erik Rijkers <er@xs4all.nl>, Amit Langote <amitlangote09@gmail.com>, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Rajkumar Raghuwanshi <rajkumar.raghuwanshi@enterprisedb.com>, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>,
Pg Hackers <pgsql-hackers@postgresql.org>, pgsql-hackers-owner@postgresql.org
Date: 2016-12-16T16:05:21Z
Lists: pgsql-hackers
On Thu, Dec 15, 2016 at 10:40 AM, Dmitry Ivanov <d.ivanov@postgrespro.ru> wrote: > Hi everyone, > > Looks like "sql_inheritance" GUC is affecting partitioned tables: > > explain (costs off) select * from test; > QUERY PLAN ------------------------------ > Append > -> Seq Scan on test > -> Seq Scan on test_1 > -> Seq Scan on test_2 > -> Seq Scan on test_1_1 > -> Seq Scan on test_1_2 > -> Seq Scan on test_1_1_1 > -> Seq Scan on test_1_2_1 > (8 rows) > > > set sql_inheritance = off; > > > explain (costs off) select * from test; > QUERY PLAN ------------------ > Seq Scan on test > (1 row) > > > I might be wrong, but IMO this should not happen. Queries involving update, > delete etc on partitioned tables are basically broken. Moreover, there's no > point in performing such operations on a parent table that's supposed to be > empty at all times. An earlier version of Amit's patches tried to handle this by forcing sql_inheritance on for partitioned tables, but it wasn't well-implemented and I don't see the point anyway. Sure, turning off sql_inheritance off for partitioned tables produces stupid results. But turning off sql_inheritance for inheritance hierarchies also produces stupid results. If we were going to do anything about this, my vote would be to remove sql_inheritance. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Replace enum InhOption with simple boolean.
- fe591f8bf68d 10.0 landed
-
Remove sql_inheritance GUC.
- e13486eba05c 10.0 landed