Re: try_relation_open and relation_open behave different.

Xing Guo <higuoxing@gmail.com>

From: Xing GUO <higuoxing@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: pgsql-hackers@postgresql.org
Date: 2021-10-18T07:38:13Z
Lists: pgsql-hackers
On Mon, Oct 18, 2021 at 2:45 PM Michael Paquier <michael@paquier.xyz> wrote:

> On Mon, Oct 18, 2021 at 01:56:07PM +0800, Xing GUO wrote:
> > My question is, is it a deliberate design that makes try_relation_open
> and
> > relation_open different? Shall we mention it in the comment of
> > try_relation_open OR adding the checker to relation_open?
>
> I am not sure what you mean here, both functions are include comments
> to explain their differences, so..
>

The comments in try_relation_open says:

```
/* ----------------
 * try_relation_open - open any relation by relation OID
 *
 * Same as relation_open, except return NULL instead of failing
 * if the relation does not exist.
 * ----------------
 */
```

However, I can open an "uncommitted" relation using relation_open() and
cannot open it using try_relation_open().
Since Postgres doesn't write the "uncommitted" relation descriptor to
SysCache and try_relation_open() checks if the
relation exists in SysCache while relation_open() doesn't check it.


> --
> Michael
>

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Detect POLLHUP/POLLRDHUP while running queries.