On Mon, Oct 18, 2021 at 2:45 PM Michael Paquier <mich...@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 >