On Sun, Jun 7, 2015 at 8:10 AM, Andreas Karlsson <andreas@proxel.se <mailto:andreas@proxel.se>> wrote: > Are you planning to work on this patch for 9.6?
FWIW I hope so. It's a nice patch.
I'm trying to to whisk dust. Rebased version of patch is attached. This patch isn't passing regression tests because of plan changes. I'm not yet sure about those changes: why they happens and are they really regression? Since I'm not very familiar with planning of INSERT ON CONFLICT and RLS, any help is appreciated.
Planner regression is fixed in the attached version of patch. It appears that get_cheapest_fractional_path_for_pathkeys() behaved wrong when no ordering is required.
Alexander, are you working on this patch? I'd like to look at the patch, but the last available version (v4) no longer applies - there's plenty of bitrot. Do you plan to send an updated / rebased version?
I'm sorry that I didn't found time for this yet. I'm certainly planning to get back to this in near future. The attached version is just rebased without any optimization.
The main thing I'm particularly interested in is how much is this coupled with the Sort node, and whether it's possible to feed partially sorted tuples into other nodes.
I'm particularly thinking about Hash Aggregate, because the partial sort allows to keep only the "current group" in a hash table, making it much more memory efficient / faster. What do you think?
This seems to me very reasonable optimization. And it would be nice to implement some generalized way of presorted group processing. For instance, we could have some special node, say "Group Scan" which have 2 children: source and node which process every group. For "partial sort" the second node would be Sort node. But it could be Hash Aggregate node as well.
------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company