pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andrei Lepikhov <lepihov@gmail.com>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>
Cc: Richard Guo <guofenglinux@gmail.com>
Cc: Alexander Lakhin <exclusion@gmail.com>
Cc: Gregory Stark (as CFM) <stark.cfm@gmail.com>
Cc: Michał Kłeczek <michal@kleczek.org>
Cc: Dean Rasheed <dean.a.rasheed@gmail.com>
Subject: Re: Removing unneeded self joins
Date: Mon, 10 Feb 2025 06:19:49 +0100
Message-ID: <5934ce1e-be02-4640-904c-f7fec3962784@gmail.com> (raw)
In-Reply-To: <CAPpHfdvHzExyROoxvVQz6JR4tGVOjgNyHnu8xJmGcx-bMxWvqw@mail.gmail.com>
References: <64486b0b-0404-e39e-322d-0801154901f3@postgrespro.ru>
	<CAMbWs49Q8g1LPVCeNHYv-Y-gFo826ertrg6nYNC9LL=8=zHP3g@mail.gmail.com>
	<CAPpHfdsUiwbGLbBwtdL+UCT5GCUVEU+SqQaaZjtcje3znU2JgQ@mail.gmail.com>
	<2422119.1714691974@sss.pgh.pa.us>
	<CAPpHfdv6B8HCLdj8WidBryRrX0+X3F1rrR8uAuMQmp6rvPdscg@mail.gmail.com>
	<24e93efd-eeac-43a6-a75a-ad68eacb32ee@postgrespro.ru>
	<CA+TgmoZ66x=uWasH+O40a=G=fpbXN1ANEdGVunvR8BKuekqa2g@mail.gmail.com>
	<3622801.1715010885@sss.pgh.pa.us>
	<CAPpHfduRB9oW3YRDpvPGcDSAbH4iu0LSRhxpRRAzBh7euC9amQ@mail.gmail.com>
	<CAEZATCUeJ93gWCEzK1eRxyZakvv5PVG9LfF3PkSGMsNBC7h9kA@mail.gmail.com>
	<CAPpHfdsj1WdqoCg+g4oq1XQ_=KOj0U4pXqhauBc7e+0msHu66A@mail.gmail.com>
	<CAPpHfds16a7bjQHv-jCLMNzwdukJ_i3da2e0OJFB9L5rTCWEEg@mail.gmail.com>
	<ac7d7334-7ebb-4330-a894-12ba12ffa4ae@gmail.com>
	<CAPpHfdsuc524-BkXNZ+iz9dH=-KiU8qx9CSyE-Nip4Wjz5pGgg@mail.gmail.com>
	<ac34e44e-f8e1-4601-8bb8-fa5e65578832@gmail.com>
	<CAPpHfdvHzExyROoxvVQz6JR4tGVOjgNyHnu8xJmGcx-bMxWvqw@mail.gmail.com>

On 9/2/2025 18:41, Alexander Korotkov wrote:
> Regarding adjust_relid_set() and replace_relid().  I think they are
> now strictly equivalent, except for the case then old relid is given
> and not found.  In this case adjust_relid_set() returns the original
> relids while replace_relid() returns a copy.  The behavior of
> adjust_relid_set() appears more desirable as we don't need extra
> copying when no modification is done.  So, I've replaced all
> replace_relid() with adjust_relid_set().
Ok, I glanced into it, and it makes sense to merge these routines.
I think the comment to adjust_relid_set() should be arranged, too. See 
the attachment for a short variant of such modification.
> 
> Also, I did some grammar correction to your new comment in tests.
Thanks!

-- 
regards, Andrei Lepikhov

Attachments:

comment.diff (text/plain, 833B) download diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index 6d56b65a4b..38c3e4e225 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -794,12 +794,10 @@ ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up) } /* - * Substitute newrelid for oldrelid in a Relid set - * + * Remove oldrelid from a Relid set and replace it with newrelid in case it is + * not a special varno. * Note: some extensions may pass a special varno such as INDEX_VAR for * oldrelid. bms_is_member won't like that, but we should tolerate it. - * (Perhaps newrelid could also be a special varno, but there had better - * not be a reason to inject that into a nullingrels or phrels set.) */ Relids adjust_relid_set(Relids relids, int oldrelid, int newrelid)

view thread (247+ messages)  latest in thread

Message-ID: <5934ce1e-be02-4640-904c-f7fec3962784@gmail.com>
Permalink:  ../5934ce1e-be02-4640-904c-f7fec3962784@gmail.com/
Also on:    postgresql.org/message-id/5934ce1e-be02-4640-904c-f7fec3962784@gmail.com

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: lepihov@gmail.com, aekorotkov@gmail.com, pgsql-hackers@lists.postgresql.org, tgl@sss.pgh.pa.us, robertmhaas@gmail.com, guofenglinux@gmail.com, exclusion@gmail.com, stark.cfm@gmail.com, michal@kleczek.org, dean.a.rasheed@gmail.com
  Subject: Re: Removing unneeded self joins
  In-Reply-To: <5934ce1e-be02-4640-904c-f7fec3962784@gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox