| From: | Dmitry Dolgov <9erthalion6(at)gmail(dot)com> |
|---|---|
| To: | David Rowley <dgrowleyml(at)gmail(dot)com> |
| Cc: | Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, rushabh(dot)lathia(at)gmail(dot)com |
| Subject: | Re: [PATCH] Keeps tracking the uniqueness with UniqueKey |
| Date: | 2020-05-23 16:16:34 |
| Message-ID: | 20200523161634.5dvo5s4hh2l76xwm@localhost |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
> On Fri, May 22, 2020 at 08:40:17AM +1200, David Rowley wrote:
>
> The way I picture the two working together is that the core UniqueKey
> patch adds UniqueKeys to RelOptInfos to allow us to have knowledge
> about what they're unique on based on the base relation's unique
> indexes.
Yep, I'm onboard with the idea.
> For Skipscans, that patch must expand on UniqueKeys to teach Paths
> about them.
That's already there.
> I imagine we'll set some required UniqueKeys during
> standard_qp_callback()
In standard_qp_callback, because pathkeys are computed at this point I
guess?
> and then we'll try to create some Skip Scan
> paths (which are marked with UniqueKeys) if the base relation does not
> already have UniqueKeys that satisfy the required UniqueKeys that were
> set during standard_qp_callback().
For a simple distinct query those UniqueKeys would be set based on
distinct clause. If I understand correctly, the very same is implemented
right now in create_distinct_paths, just after building all index paths,
so wouldn't it be just a duplication?
In general UniqueKeys in the skip scan patch were created from
distinctClause in build_index_paths (looks similar to what you've
described) and then based on them created index skip scan paths. So my
expectations were that the patch from this thread would work similar.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Pavel Stehule | 2020-05-23 16:23:27 | Re: Default gucs for EXPLAIN |
| Previous Message | Justin Pryzby | 2020-05-23 16:12:26 | Re: Default gucs for EXPLAIN |