Re: error_severity of brin work item - Mailing list pgsql-hackers

From Justin Pryzby
Subject Re: error_severity of brin work item
Date
Msg-id 20201120005151.GD24784@telsasoft.com
Whole thread Raw
In response to Re: error_severity of brin work item  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: error_severity of brin work item  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
List pgsql-hackers
On Thu, Nov 19, 2020 at 03:15:21PM -0300, Alvaro Herrera wrote:
> On 2020-Nov-19, Justin Pryzby wrote:
> 
> > On Fri, Nov 13, 2020 at 12:11:21PM -0600, Justin Pryzby wrote:
> 
> > > Your patch didn't actually say "try_relation_open", so didn't work.
> > > But it does works if I do that, and close the table.
> 
> Thanks for fixing and testing.
> 
> > That patch broke the case that a non-index is passed, which I addressed here.
> 
> Hmm, I think the reaction to that should be the same as before, so
> rather than return 0, the patch should raise the same error that
> index_open() would.

The resulting logic is not very clear and requires a lot of commentary..

BTW I saw that in tablecmds.c, RangeVarCallbackForAttachIndex() does this:

        if (classform->relkind != RELKIND_PARTITIONED_INDEX &&
                classform->relkind != RELKIND_INDEX)
                ereport(ERROR,
                                (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
                                 errmsg("\"%s\" is not an index", rv->relname)));

Is it wrong to use ERRCODE_INVALID_OBJECT_DEFINITION ?
Most other places say ERRCODE_WRONG_OBJECT_TYPE

Likewise, transformPartitionCmd() in parse_utilcmd.c:
        (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
         errmsg("\"%s\" is not a partitioned table",
                RelationGetRelationName(parentRel))));

-- 
Justin

Attachment

pgsql-hackers by date:

Previous
From: Joshua Drake
Date:
Subject: Re: Should we document IS [NOT] OF?
Next
From: James Hilliard
Date:
Subject: Re: [PATCH 1/1] Fix compilation on mac with Xcode >= 11.4.