Re: PG10 Partitioned tables and relation_is_updatable()
Joe Conway <mail@joeconway.com>
From: Joe Conway <mail@joeconway.com>
To: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>,
Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>,
Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2017-06-12T14:40:09Z
Lists: pgsql-hackers
On 06/12/2017 01:49 AM, Amit Langote wrote: >> On Sun, Jun 11, 2017 at 5:02 PM, Dean Rasheed <dean.a.rasheed@gmail.com> wrote: >>> It looks like relation_is_updatable() didn't get the message about >>> partitioned tables. Thus, for example, information_schema.views and >>> information_schema.columns report that simple views built on top of >>> partitioned tables are non-updatable, which is wrong. Attached is a >>> patch to fix this. > > Thanks for the patch, Dean. > >>> I think this kind of omission is an easy mistake to make when adding a >>> new relkind, so it might be worth having more pairs of eyes looking >>> out for more of the same. I did a quick scan of the rewriter code >>> (prompted by the recent similar omission for RLS on partitioned >>> tables) and I didn't find any more problems there, but I haven't >>> looked elsewhere yet. > > As he mentioned in his reply, Ashutosh's proposal to abstract away the > relkind checks is interesting in this regard. > > On 2017/06/12 17:29, Ashutosh Bapat wrote: >> Changes look good to me. In order to avoid such instances in future, I >> have proposed to bundle the conditions as macros in [1]. > > It seems that Ashutosh forgot to include the link: > > https://www.postgresql.org/message-id/CAFjFpRcfzs+yst6YBCseD_orEcDNuAr9GUTraZ5GC=AvCYh55Q@mail.gmail.com I have not looked at Ashutosh's patch yet, but it sounds like a good idea to me. Joe -- Crunchy Data - http://crunchydata.com PostgreSQL Support for Secure Enterprises Consulting, Training, & Open Source Development
Commits
-
Teach PL/pgSQL about partitioned tables.
- d3c3f2b1e25c 10.0 landed
-
Teach RemoveRoleFromObjectPolicy() about partitioned tables.
- f356ec57444e 10.0 landed
-
Teach relation_is_updatable() about partitioned tables.
- b6263cd851ef 10.0 landed