Re: Remove vardata parameters from eqjoinsel_inner - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Remove vardata parameters from eqjoinsel_inner
Date
Msg-id 1901909.1743082816@sss.pgh.pa.us
Whole thread Raw
In response to Re: Remove vardata parameters from eqjoinsel_inner  (Richard Guo <guofenglinux@gmail.com>)
List pgsql-hackers
Richard Guo <guofenglinux@gmail.com> writes:
> On Fri, Feb 21, 2025 at 7:04 PM Ilia Evdokimov
> <ilya.evdokimov@tantorlabs.com> wrote:
>> When calculating selectivity for an inner equijoin, we call
>> eqjoinsel_inner, which uses unused parameters vardata1 and vardata2.
>> These parameters might have been left behind accidentally when we moved
>> getting sslots out of the function. I suggest removing them, as they can
>> be added back at any time if needed. I attached patch with fixes.

> Yeah, these parameters haven't been used since a314c3407, when we
> moved get_variable_numdistinct and get_attstatsslot out of
> eqjoinsel_inner and eqjoinsel_semi to avoid repetitive information
> lookup when we call both eqjoinsel_inner and eqjoinsel_semi.

> I'm wondering whether we should also remove parameter vardata1 from
> eqjoinsel_semi.  vardata2 is still needed though to clamp nd2 to be
> not more than the rel's row estimate.

I do not believe this change is worth the code churn.  In the first
place, we may well need those values again someday.  In the second
place, the savings would be negligible.  (In fact, since
eqjoinsel_inner probably gets inlined at its sole call site, the
savings would likely be completely nonexistent.)  If the caller
could avoid calculating the vardata info at all, that would be
worth thinking about, but I think it can't.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Yurii Rashkovskii
Date:
Subject: Re: Add Postgres module info
Next
From: Andres Freund
Date:
Subject: Re: Draft for basic NUMA observability