Re: [HACKERS] Cache lookup errors with functions manipulation object addresses - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: [HACKERS] Cache lookup errors with functions manipulation object addresses
Date
Msg-id CAB7nPqRTUOJhZdwSNjn7MvT-mJrBhv7ax-y5==tZ4vP+ggmBog@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Cache lookup errors with functions manipulation object addresses  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: [HACKERS] Cache lookup errors with functions manipulation objectaddresses
List pgsql-hackers
On Wed, Jul 19, 2017 at 7:29 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Wed, Jul 19, 2017 at 2:25 AM, Michael Paquier
> <michael.paquier@gmail.com> wrote:
>> Would we want to improve the error handling of such objects?
>
> +1 for such an improvement.

Attached is a patch for all that. Here are some notes:
- format_type_be and friends use allow_invalid. I have added a flag to
control the NULL-ness as many code paths rely on existing APIs, and
introduced an _extended version of this API. I would argue for the
removal of allow_invalid to give more flexibility to callers, but this
impacts extensions :(
- A similar thing is needed for format_operator().
- We could really add a missing_ok to get_attname, but that does not
seem worth the refactoring with modules potentially calling it..
- GetForeignDataWrapper is extended with a missing_ok, unfortunately
not saving one cache lookup in GetForeignDataWrapperByName.
- Same remark as the previous one for GetForeignServer.
- get_publication_name and get_subscription_name gain a missing_ok.
- getObjectDescription and getObjectIdentity are called in quite a
couple of places. We could have those have a kind of missing_ok, but
as the status is just for adding cache lookup errors I have kept the
interface simple as this keeps the code in objectaddress.c more simple
as well. getObjectIdentity is used mainly in sepgsql, which I have not
compiled yet so I may have missed something :) getObjectDescription is
used in more places in the backend code, but I am not much into
complicating the objaddr API with this patch more.
- I have added tests for all the OCLASS objects, for a total more or
less 120 cache lookup errors that a user can face.
- Some docs are present as well, but I think that they are a bit
incomplete. I'll review them a bit later.
- The patch is large, 800 lines are used for the tests which is very mechanical:
 32 files changed, 1721 insertions(+), 452 deletions(-)

Thanks,
-- 
Michael

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] pg_upgrade failed if view contain natural left join condition
Next
From: Alvaro Herrera
Date:
Subject: Re: [HACKERS] Cache lookup errors with functions manipulation objectaddresses