From: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
---|---|
To: | Daniel Gustafsson <daniel(at)yesql(dot)se> |
Cc: | Claudio Freire <klaussfreire(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Making clausesel.c Smarter |
Date: | 2017-09-06 05:13:58 |
Message-ID: | CAKJS1f9WoCckGxKYg_uFzQPkJuxPFjcq2Z3WEX80azcS4VsYSQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 6 September 2017 at 00:43, Daniel Gustafsson <daniel(at)yesql(dot)se> wrote:
> This patch was moved to the currently open Commitfest. Given the above
> comment, is the last patch in this thread still up for review, or are you
> working on a new version? Just to avoid anyone reviewing an outdated version.
Hi Daniel,
I've not had time to work on a new version yet and I can't imagine
that I will for quite some time.
The idea I had to remove the quadratic search on the list was to add
to or modify equal() in equalfuncs.c to have it return -1, 0, +1 and
use that as a comparison function in a binary search tree. The Btree
would complement List as a way of storing Nodes in no particular
order, but in a way that a Node can be found quickly. There's likely
more than a handful of places in the planner that would benefit from
this already.
It's not a 5-minute patch and it probably would see some resistance,
so won't have time to look at this soon.
If the possibility of this increasing planning time in corner cases is
going to be a problem, then it might be best to return this with
feedback for now and I'll resubmit if I get time later in the cycle.
--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Ashutosh Bapat | 2017-09-06 05:19:21 | Re: Replacing lfirst() with lfirst_node() appropriately in planner.c |
Previous Message | Michael Paquier | 2017-09-06 04:54:38 | Re: Coverage improvements of src/bin/pg_basebackup and pg_receivewal --endpos |