public inbox for [email protected]
help / color / mirror / Atom feedFrom: Haibo Yan <[email protected]>
To: SCHOEMANS Maxime <[email protected]>
Cc: vignesh C <[email protected]>
Cc: Tom Lane <[email protected]>
Cc: Damir Belyalov <[email protected]>
Cc: jian he <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Cc: SAKR Mahmoud <[email protected]>
Cc: Diogo Repas <[email protected]>
Cc: Andrey Lepikhov <[email protected]>
Subject: Re: Implement missing join selectivity estimation for range types
Date: Fri, 17 Apr 2026 21:02:36 -0700
Message-ID: <CABXr29HNiiDo9nU-iOgLgWjg_MS=ZheSaq+Waf2i5FDy4GL1rg@mail.gmail.com> (raw)
In-Reply-To: <AM0P190MB07243E890A7DFD6F24F70269F0232@AM0P190MB0724.EURP190.PROD.OUTLOOK.COM>
References: <CAB4o4asMq3k6HN9WfDsssQ5DDVfAziB4TpiFJ8RBJgZTVuwC7g@mail.gmail.com>
<[email protected]>
<[email protected]>
<CAB4o4aud47V_iRyWtA8+ZAmdXDjCF165R73AeCjx2RL0nzQzHA@mail.gmail.com>
<[email protected]>
<[email protected]>
<CAB4o4asvPN=NT7KvS9zVQjZbdsiRW5t8aQctEkW7mxc4hbBxVQ@mail.gmail.com>
<[email protected]>
<[email protected]>
<[email protected]>
<CALH1Lgurg1y1DTeFOXOkpP=+X7saVGCh8gSjDLoCBOcFFWhz-A@mail.gmail.com>
<[email protected]>
<[email protected]>
<[email protected]>
<CALDaNm29NMhpPvoM49qqfYzVcRJq0CPTd-xSUcTF7RZQO2TASQ@mail.gmail.com>
<[email protected]>
<CALDaNm3A4j7=rmY128Eb3v8zi=hHAnGizUcbSX5ekZKHy-wmMA@mail.gmail.com>
<CACJufxFhES7untAPmxJDrB-y_pNgah_1HNbXjcOj6g=yxh3kdA@mail.gmail.com>
<CABXr29HUT2m7YPpB4gOZHphYmwpwuEWFZ_p6oeyouhWw8Zc1Tw@mail.gmail.com>
<DB8P190MB0731FF1A358E9AB16FB1F14FF0252@DB8P190MB0731.EURP190.PROD.OUTLOOK.COM>
<CABXr29Gts+FuMRkeA=JNAxB700W1EQW2F=W2wAjtJrGZDGTxGw@mail.gmail.com>
<DB8P190MB0731EA1B8381F48AA15B9437F0222@DB8P190MB0731.EURP190.PROD.OUTLOOK.COM>
<CABXr29HuYbrtrThYaE8GYy-wMxtej8sG4Hw+2oSfQvuM+c0XVw@mail.gmail.com>
<AM0P190MB07243E890A7DFD6F24F70269F0232@AM0P190MB0724.EURP190.PROD.OUTLOOK.COM>
On Thu, Apr 16, 2026 at 8:13 AM SCHOEMANS Maxime <[email protected]>
wrote:
> Hi Haibo,
>
> Attached is v7 with the changes we discussed.
>
> Patch 2 now has an inline comment on the && case explaining the
> outer-bounds approximation and its consistency with existing restriction
> selectivity. The commit message mentions it as well.
>
> Patch 3 uses a separate backend-private header (rangetypes_selfuncs.h)
> instead of selfuncs.h.
>
> Regards,
> Maxime
>
Hi Maxime,
Thanks for the updated series. Overall I do not have major objections to
the direction here.
A few small nits on patch 2:
1. In the commit message, I wonder if “the core algorithm is identical”
is a bit stronger than necessary. Since the main point is that we are
reusing the same approximation based on outer bounds, something like “the
same outer-bounds-based estimator can be reused” might be a bit more
precise.
2. In a few comments, the wording still says just “range”, but in patch
2 we are really dealing with range/multirange combinations. I think it
would be a bit clearer to make that explicit where appropriate, and reserve
“range” for the underlying range-type/bound-comparison level.
3. I think it would be good to add the reverse mixed-direction test as
well, since patch 2 covers multirange × range in addition to range ×
multirange. Something like:
--------------------------------------------------------
explain (costs off)
select count(*)
from test_mr_join_mr a, test_mr_join_r b
where a.mr << b.r;
explain (costs off)
select count(*)
from test_mr_join_mr a, test_mr_join_r b
where a.mr >> b.r;
explain (costs off)
select count(*)
from test_mr_join_mr a, test_mr_join_r b
where a.mr && b.r;
--------------------------------------------------------
I think that would make the mixed-case coverage feel more complete.
Regards,
Haibo
view thread (16+ messages) latest in thread
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: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: Implement missing join selectivity estimation for range types
In-Reply-To: <CABXr29HNiiDo9nU-iOgLgWjg_MS=ZheSaq+Waf2i5FDy4GL1rg@mail.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 agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox