On Sun, Dec 22, 2013 at 8:12 PM, Martijn van Oosterhout <klep...@svana.org>wrote:
> On Sun, Dec 22, 2013 at 07:38:05PM +0400, Alexander Korotkov wrote: > > Hi! > > > > Next revision. It expected to do better work with optimizer. It > introduces > > presorted_keys argument of cost_sort function which represent number of > > keys already sorted in Path. Then this function uses estimate_num_groups > to > > estimate number of groups with different values of presorted keys and > > assumes that dataset is uniformly divided by > > groups. get_cheapest_fractional_path_for_pathkeys tries to select the > path > > matching most part of path keys. > > You can see it's working pretty good on single table queries. > > Nice work! The plans look good and the calculated costs seem sane also. > > I suppose the problem with the joins is generating the pathkeys? > In general, problem is that partial sort is alternative to do less restrictive merge join and filter it's results. As far as I can see, taking care about it require some rework of merge optimization. For now, I didn't get what it's going to look like. I'll try to dig more into details. ------ With best regards, Alexander Korotkov.