From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Gavin Wahl <gavinwahl(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: BRIN indexes for MAX, MIN, ORDER BY? |
Date: | 2015-09-27 21:13:06 |
Message-ID: | 20150927211306.GS295765@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Gavin Wahl wrote:
> It seems trivial to accelerate a MAX or MIN query with a BRIN index. You
> just find the page range with the largest/smallest value, and then only
> scan that one. Would that be hard to implement? I'm interested in working
> on it if someone can give me some pointers.
I think this means you need to represent this operation as a specific
Path in some way. See build_minmax_path() and its callers in planagg;
you probably need to tweak preprocess_minmax_aggregates() to consider
this.
This doesn't look like a simple project to me, mind.
> Somewhat harder but still possible would be using BRIN indexes to
> accelerate ORDER BY. This would require a sorting algorithm that can take
> advantage of mostly-sorted inputs. You would sort the page ranges by their
> minimum or maximum value, then feed the sorting algorithm in that order.
I wouldn't know where to start for this. Maybe once Tom is done with
planner rejiggering it would make sense to consider looking at how to do
it.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Munro | 2015-09-27 21:22:01 | Re: BRIN indexes for MAX, MIN, ORDER BY? |
Previous Message | Gavin Wahl | 2015-09-27 20:58:27 | BRIN indexes for MAX, MIN, ORDER BY? |