Re: [v9.2] DROP Reworks Part.0 - 'missing_ok' support of get_object_address

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Kohei KaiGai <kaigai(at)kaigai(dot)gr(dot)jp>, PgHacker <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [v9.2] DROP Reworks Part.0 - 'missing_ok' support of get_object_address
Date: 2011-06-22 03:11:41
Message-ID: BANLkTinioMG8sFQoAwzmLGPQYM5LH=xUHg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jun 21, 2011 at 11:04 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> Some of the refactoring you've done here seems likely to break things,
>> because you're basically making the relation locking happen later than
>> it does not, and that's going to cause problems.
>> get_object_address_relobject() is a particularly egregious
>> rearrangement.  It seems to me that the right formula is to call
>> relation_openrv() if missing_ok is false, and try_relation_openrv() if
>> missing_ok is true.  But that's sort of a pain, so I propose to first
>> apply the attached patch, which gets rid of try_relation_openrv() and
>> try_heap_openrv() and instead adds a missing_ok argument to
>> relation_openrv() and heap_openrv().  If we do this, then the
>> missing_ok argument can just be passed through all the way down.
>
>> Thoughts?  Comments?  Objections?
>
> At least the last hunk (in pltcl.c) seems to have the flag backwards.

Ah, nuts. Sorry. I think that and parse_relation.c are the only
places where the try variants are used; nobody else is willing to
fail, and everyone else is passing false.

Revised patch attached.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Attachment Content-Type Size
there-is-no-try-v2.patch application/octet-stream 21.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2011-06-22 03:15:43 Re: WIP pgindent replacement
Previous Message Tom Lane 2011-06-22 03:10:53 Re: pg_upgrade using appname to lock out other users