Thread: release notes: tids & self-joins

release notes: tids & self-joins

From
Robert Haas
Date:
The release notes say:

      <listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2018-12-30 [b5415e3c2] Support parameterized TidPaths.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2018-12-30 [0a6ea4001] Add a hash opclass for type "tid".
-->

       <para>
        Improve optimization of self-joins (Tom Lane)
       </para>
      </listitem>

I don't think that's an accurate summary of those two items.  It's
true that they could make self-joins more efficient, but my reading is
that it would only do so if the self-join happened to use the ctid
column.  If you're writing SELECT * FROM foo a, foo b WHERE a.ctid =
b.ctid, it might very well help; but if you write SELECT * FROM foo a,
foo b WHERE a.x = b.x, it won't, not even if there is a unique index
on x.  Or so I think.

So I think that this should probably be changed to say something like
"Improve optimization of self-joins on ctid columns" or "Improve
optimization of joins involving columns of type tid."

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: release notes: tids & self-joins

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> The release notes say:
>       <listitem>
> <!--
> Author: Tom Lane <tgl@sss.pgh.pa.us>
> 2018-12-30 [b5415e3c2] Support parameterized TidPaths.
> Author: Tom Lane <tgl@sss.pgh.pa.us>
> 2018-12-30 [0a6ea4001] Add a hash opclass for type "tid".
> -->

>        <para>
>         Improve optimization of self-joins (Tom Lane)
>        </para>
>       </listitem>

> I don't think that's an accurate summary of those two items.  It's
> true that they could make self-joins more efficient, but my reading is
> that it would only do so if the self-join happened to use the ctid
> column.

Yeah.  I think Bruce misread the commit messages, which commented that
joining on TID is only likely to be useful in a self-join.

> So I think that this should probably be changed to say something like
> "Improve optimization of self-joins on ctid columns" or "Improve
> optimization of joins involving columns of type tid."

The latter seems fine to me.

            regards, tom lane



Re: release notes: tids & self-joins

From
David Rowley
Date:
On Fri, 14 Jun 2019 at 05:22, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Robert Haas <robertmhaas@gmail.com> writes:
> > So I think that this should probably be changed to say something like
> > "Improve optimization of self-joins on ctid columns" or "Improve
> > optimization of joins involving columns of type tid."
>
> The latter seems fine to me.

The latter seems a bit inaccurate to me given the fact that a column
with the type tid could exist elsewhere in the table.  Perhaps
"columns of type tid" can be swapped with "a table's ctid column".

-- 
 David Rowley                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services



Re: release notes: tids & self-joins

From
Tom Lane
Date:
David Rowley <david.rowley@2ndquadrant.com> writes:
> On Fri, 14 Jun 2019 at 05:22, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Robert Haas <robertmhaas@gmail.com> writes:
>>> So I think that this should probably be changed to say something like
>>> "Improve optimization of self-joins on ctid columns" or "Improve
>>> optimization of joins involving columns of type tid."

>> The latter seems fine to me.

> The latter seems a bit inaccurate to me given the fact that a column
> with the type tid could exist elsewhere in the table.  Perhaps
> "columns of type tid" can be swapped with "a table's ctid column".

It's true that the parameterized-tidscan patch only helps for joins
to CTID, but the other patch helps for joins to any tid column.
So I still say Robert's wording is fine.

            regards, tom lane



Re: release notes: tids & self-joins

From
Bruce Momjian
Date:
On Thu, Jun 13, 2019 at 01:22:16PM -0400, Tom Lane wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
> > The release notes say:
> >       <listitem>
> > <!--
> > Author: Tom Lane <tgl@sss.pgh.pa.us>
> > 2018-12-30 [b5415e3c2] Support parameterized TidPaths.
> > Author: Tom Lane <tgl@sss.pgh.pa.us>
> > 2018-12-30 [0a6ea4001] Add a hash opclass for type "tid".
> > -->
> 
> >        <para>
> >         Improve optimization of self-joins (Tom Lane)
> >        </para>
> >       </listitem>
> 
> > I don't think that's an accurate summary of those two items.  It's
> > true that they could make self-joins more efficient, but my reading is
> > that it would only do so if the self-join happened to use the ctid
> > column.
> 
> Yeah.  I think Bruce misread the commit messages, which commented that
> joining on TID is only likely to be useful in a self-join.
> 
> > So I think that this should probably be changed to say something like
> > "Improve optimization of self-joins on ctid columns" or "Improve
> > optimization of joins involving columns of type tid."
> 
> The latter seems fine to me.

I have updated to use the later wording.

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +