Re: pg_partition_tree crashes for a non-defined relation

Amit Langote <amitlangote09@gmail.com>

From: Amit Langote <amitlangote09@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Postgres hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-08T03:28:53Z
Lists: pgsql-hackers
Hi,

Sorry for not replying sooner.

On Sat, Dec 8, 2018 at 8:06 Michael Paquier <michael@paquier.xyz> wrote:

> 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.


Thanks for noticing it and creating the patch.  The fix makes sense.

Regards,
Amit

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