Re: Pathify RHS unique-ification for semijoin planning

Richard Guo <guofenglinux@gmail.com>

From: Richard Guo <guofenglinux@gmail.com>
To: Alexandra Wang <alexandra.wang.oss@gmail.com>
Cc: Álvaro Herrera <alvherre@kurilemu.de>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>, Andy Fan <zhihuifan1213@163.com>, wenhui qiu <qiuwenhuifx@gmail.com>
Date: 2025-08-18T06:07:42Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Simplify relation_has_unique_index_for()

  2. Pathify RHS unique-ification for semijoin planning

  3. Convert varatt.h access macros to static inline functions.

  4. Re-export a few of createplan.c's make_xxx() functions.

Attachments

On Tue, Aug 12, 2025 at 10:43 AM Richard Guo <guofenglinux@gmail.com> wrote:
> On Mon, Aug 4, 2025 at 11:08 AM Richard Guo <guofenglinux@gmail.com> wrote:
> > The v5 patch does not apply anymore, and here is a new rebase.  There
> > are two main changes in v6:
> >
> > * I choose to use the check I proposed earlier to determine whether a
> > relation has been unique-ified in costsize.c.
> >
> > * Now that the only call to relation_has_unique_index_for() that
> > supplied an exprlist and oprlist has been removed, the loop handling
> > those lists is effectively dead code.  0002 removes that loop and
> > simplifies the function accordingly.

> Does anyone plan to review this patch further?  I intend to push it in
> two weeks unless there are any objections or additional comments.

Here's the updated version of the patch, which renames the macro
IS_UNIQUEIFIED_REL to RELATION_WAS_MADE_UNIQUE, and includes some
comment updates as well.  I plan to push it soon, barring any
objections.

This patch removes the last call to make_sort_from_sortclauses(), so
I'm wondering if we can safely remove the function itself.  Or should
we keep it around in case it's used by extensions or might be needed
in the future?

Thanks
Richard