[doc] improve tableoid description

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[doc] improve tableoid description

Ian Lawrence Barwick
[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

doc-tableoid-regclass.v1.patch (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [doc] improve tableoid description

Ashutosh Bapat-2
On Sat, Oct 17, 2020 at 6:35 PM Ian Lawrence Barwick <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: [doc] improve tableoid description

Ian Lawrence Barwick
2020年10月19日(月) 20:22 Ashutosh Bapat <[hidden email]>:

>
> On Sat, Oct 17, 2020 at 6:35 PM Ian Lawrence Barwick <[hidden email]> 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

doc-tableoid-regclass.v2.patch (956 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [doc] improve tableoid description

Ashutosh Bapat-2
On Mon, Oct 19, 2020 at 5:58 PM Ian Lawrence Barwick <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: [doc] improve tableoid description

Peter Eisentraut-7
In reply to this post by Ian Lawrence Barwick
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


Reply | Threaded
Open this post in threaded view
|

Re: [doc] improve tableoid description

Ian Lawrence Barwick
2020年11月21日(土) 16:29 Peter Eisentraut <[hidden email]>:

>
> 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