Re: pg_partition_tree crashes for a non-defined relation

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Postgres hackers <pgsql-hackers@postgresql.org>
Cc: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Date: 2018-12-07T23:05:40Z
Lists: pgsql-hackers
On Fri, Dec 07, 2018 at 10:04:06AM +0900, Michael Paquier wrote:
> While testing another patch, I have bumped into the issue of
> $subject...  I should have put some more negative testing from the start
> on this stuff, here is a culprit query when passing directly an OID:
> select pg_partition_tree(0);
> 
> I think that we should make the function return NULL if the relation
> defined does not exist, as we usually do for system-facing functions.
> It is also easier for the caller to know that the relation does not
> exist instead of having a plpgsql try/catch wrapper or such.
> 
> Thoughts?

Are there any objections about fixing this issue?  I would rather fix it
sonner than later.
--
Michael

Commits

  1. Test partition functions with legacy inheritance children, too

  2. Consider only relations part of partition trees in partition functions

  3. Make pg_partition_tree return no rows on unsupported and undefined objects

  4. Tweak pg_partition_tree for undefined relations and unsupported relkinds