Re: Identifying user-created objects

Поиск
Список
Период
Сортировка
От Kyotaro Horiguchi
Тема Re: Identifying user-created objects
Дата
Msg-id 20200213.102848.1725152441724436363.horikyota.ntt@gmail.com
обсуждение исходный текст
Ответ на Re: Identifying user-created objects  (Amit Langote <amitlangote09@gmail.com>)
Ответы Re: Identifying user-created objects  (Amit Langote <amitlangote09@gmail.com>)
Список pgsql-hackers
At Mon, 10 Feb 2020 14:32:44 +0900, Amit Langote <amitlangote09@gmail.com> wrote in 
> On Mon, Feb 10, 2020 at 2:23 PM Masahiko Sawada
> <masahiko.sawada@2ndquadrant.com> wrote:
> > On Mon, 10 Feb 2020 at 14:09, Michael Paquier <michael@paquier.xyz> wrote:
> > >
> > > On Mon, Feb 10, 2020 at 01:16:30PM +0900, Amit Langote wrote:
> > > > On Mon, Feb 10, 2020 at 1:06 PM Masahiko Sawada
> > > > <masahiko.sawada@2ndquadrant.com> wrote:
> > > >> How about having it as a macro like:
> > > >>
> > > >> #define ObjectIdIsUserObject(oid) ((Oid)(oid) >= FirstNormalObjectId)
> > > >
> > > > I'm fine with a macro.
> > >
> > > I am not sure that it is worth having one extra abstraction layer for
> > > that.
> >
> > Hmm I'm not going to insist on that but I thought that it could
> > somewhat improve readability at places where they already compares an
> > oid to FirstNormalObjectId as Amit mentioned:
> >
> > src/backend/catalog/pg_publication.c:       relid >= FirstNormalObjectId;
> > src/backend/utils/adt/json.c:               if (typoid >= FirstNormalObjectId)
> > src/backend/utils/adt/jsonb.c:              if (typoid >= FirstNormalObjectId)
> 
> Agree that ObjectIsUserObject(oid) is easier to read than oid >=
> FirstNormalObject.  I would have not bothered, for example, if it was
> something like oid >= FirstUserObjectId to begin with.

Aside from the naming, I'm not sure it's sensible to use
FirstNormalObjectId since I don't see a clear definition or required
characteristics for "user created objects" is.  If we did CREATE
TABLE, FUNCTION or maybe any objects during single-user mode before
the first object is created during normal multiuser operation, the
"user-created(or not?)" object has an OID less than
FirstNormalObjectId. If such objects are the "user created object", we
need FirstUserObjectId defferent from FirstNormalObjectId.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [PATCH] libpq improvements and fixes
Следующее
От: Thomas Munro
Дата:
Сообщение: Re: Getting rid of some more lseek() calls