| From: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | bashtanov(at)imap(dot)cc, PostgreSQL mailing lists <pgsql-bugs(at)postgresql(dot)org> |
| Subject: | Re: BUG #14642: Excessive sorting node appears in the plan |
| Date: | 2017-05-04 14:34:10 |
| Message-ID: | CAKJS1f9WFSoyGrT=qMaiMwvnu2tsy2VPqQUtC=Q++nYSZt7hrA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On 5 May 2017 at 02:12, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> bashtanov(at)imap(dot)cc writes:
>> Do blackbox-style subplans, such as subqueries with grouping, share only the
>> resulting stream order info with the enclosing query, not the equivalence
>> classes?
>
> Yes, see convert_subquery_pathkeys().
Not as a back-patchable fix, but I wonder if we couldn't improve this
situation by having pathkey_is_redundant() not throw pathkeys with a
constant in their eclass away, but rather keep these around as "no-op
pathkeys".
It would make the logic in compare_pathkeys() a bit more tricky, but
maybe it could be manageable if we kept the no-op pathkeys in a
separate list, and only lookup the pathkey in that list when the
pathkeys being compared are not the same. If it's in the no-op list,
then we can skip to the next path key after the no-op one. Although
I'm not quite sure in what cases PATHKEYS_EQUAL would be returned.
--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2017-05-04 14:36:02 | Re: BUG #14641: Segfault on searching KNN using btree_gist |
| Previous Message | Tom Lane | 2017-05-04 14:12:57 | Re: BUG #14642: Excessive sorting node appears in the plan |