Thread: [doc] improve tableoid description

[doc] improve tableoid description

From
Ian Lawrence Barwick
Date:
[doc] improve tableoid description

Hi

Attached patch aims to improve the description of the tableoid system column [1]
by:

- mentioning it's useful for determining table names for partitioned tables as
  well as for those in inheritance hierarchies
- mentioning the possibility of casting tableoid to regclass (which is simpler
  than the currently suggested join on pg_class, which is only needed if
  the schema name is absolutely required)

[1] https://www.postgresql.org/docs/current/ddl-system-columns.html


Regards

Ian Barwick


-- 
EnterpriseDB: https://www.enterprisedb.com

Attachment

Re: [doc] improve tableoid description

From
Ashutosh Bapat
Date:
On Sat, Oct 17, 2020 at 6:35 PM Ian Lawrence Barwick <barwick@gmail.com> wrote:
>
> [doc] improve tableoid description
>
> Hi
>
> Attached patch aims to improve the description of the tableoid system column [1]
> by:
>
> - mentioning it's useful for determining table names for partitioned tables as
>   well as for those in inheritance hierarchies

This looks fine.

> - mentioning the possibility of casting tableoid to regclass (which is simpler
>   than the currently suggested join on pg_class, which is only needed if
>   the schema name is absolutely required)

Mentioning casting to regclass is worthwhile but it's not performance
efficient if there are many tableoids. In that case, joining with
pg_class.oid is quite efficient. That line further suggests using
regnamespace which is not as efficient as joining with
pg_namespace.oid. But pg_namespace won't have as many entries as
pg_class so casting to regnamespace might be fine. Should we suggest
both the methods somehow?

-- 
Best Wishes,
Ashutosh Bapat



Re: [doc] improve tableoid description

From
Ian Lawrence Barwick
Date:
2020年10月19日(月) 20:22 Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>:
>
> On Sat, Oct 17, 2020 at 6:35 PM Ian Lawrence Barwick <barwick@gmail.com> wrote:
> >
> > [doc] improve tableoid description
> >
> > Hi
> >
> > Attached patch aims to improve the description of the tableoid system column [1]
> > by:
> >
> > - mentioning it's useful for determining table names for partitioned tables as
> >   well as for those in inheritance hierarchies
>
> This looks fine.
>
> > - mentioning the possibility of casting tableoid to regclass (which is simpler
> >   than the currently suggested join on pg_class, which is only needed if
> >   the schema name is absolutely required)
>
> Mentioning casting to regclass is worthwhile but it's not performance
> efficient if there are many tableoids. In that case, joining with
> pg_class.oid is quite efficient.

True.

> That line further suggests using
> regnamespace which is not as efficient as joining with
> pg_namespace.oid. But pg_namespace won't have as many entries as
> pg_class so casting to regnamespace might be fine. Should we suggest
> both the methods somehow?

On further reflection, I think trying to explain all that is going to
end up as a
mini-tutorial which is beyond the scope of the explanation of a column, so
the existing reference to pg_class should be enough.

Revised patch attached just mentioning partitioned tables.


Regards

Ian Barwick


--
EnterpriseDB: https://www.enterprisedb.com

Attachment

Re: [doc] improve tableoid description

From
Ashutosh Bapat
Date:
On Mon, Oct 19, 2020 at 5:58 PM Ian Lawrence Barwick <barwick@gmail.com> wrote:
>
> > That line further suggests using
> > regnamespace which is not as efficient as joining with
> > pg_namespace.oid. But pg_namespace won't have as many entries as
> > pg_class so casting to regnamespace might be fine. Should we suggest
> > both the methods somehow?
>
> On further reflection, I think trying to explain all that is going to
> end up as a
> mini-tutorial which is beyond the scope of the explanation of a column, so
> the existing reference to pg_class should be enough.



>
> Revised patch attached just mentioning partitioned tables.

From a user's point of view, it makes sense to differentiate between
partitioning and inheritance, though internally the first uses the
later.

Maybe we could just generalize the sentence as "tableoid can be used
to obtain the table name either by joining against the oid column of
pg_class or casting it to regclass as appropriate." Or just ""tableoid
can be used to obtain the table name.". Probably the users would find
out how to do that from some other part of the document.

      <structfield>tableoid</structfield> can be joined against the
      <structfield>oid</structfield> column of
      <structname>pg_class</structname> to obtain the table name.

But even without that change, the current patch is useful. Please add
it to commitfest so it's not forgotten.

-- 
Best Wishes,
Ashutosh Bapat



Re: [doc] improve tableoid description

From
Peter Eisentraut
Date:
On 2020-10-19 14:28, Ian Lawrence Barwick wrote:
> On further reflection, I think trying to explain all that is going to
> end up as a
> mini-tutorial which is beyond the scope of the explanation of a column, so
> the existing reference to pg_class should be enough.
> 
> Revised patch attached just mentioning partitioned tables.

committed



Re: [doc] improve tableoid description

From
Ian Lawrence Barwick
Date:
2020年11月21日(土) 16:29 Peter Eisentraut <peter.eisentraut@enterprisedb.com>:
>
> On 2020-10-19 14:28, Ian Lawrence Barwick wrote:
> > On further reflection, I think trying to explain all that is going to
> > end up as a
> > mini-tutorial which is beyond the scope of the explanation of a column, so
> > the existing reference to pg_class should be enough.
> >
> > Revised patch attached just mentioning partitioned tables.
>
> committed

Thanks!


--
EnterpriseDB: https://www.enterprisedb.com