On Sun, Sep 22, 2019 at 7:47 AM Darafei "Komяpa" Praliaskouski <m...@komzpa.net> wrote: > A heuristic I believe should help my case (and I hardly imagine how it can > break others) is that in presence of Gather, all the function calls that are > parallel safe should be pushed into it.
The cost of pushing data through the Sort is not necessarily insignificant. Your functions are (IIUC) extremely expensive, so it's worth going to any length to reduce the time spent evaluating them. However, if someone has ||(text,text) in the tlist, that might be the wrong approach, because it's not saving much to compute that earlier and it might make the sort a lot wider, especially if de-TOASTing is involved. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company