Re: How to retain lesser paths at add_path()?
От | Tom Lane |
---|---|
Тема | Re: How to retain lesser paths at add_path()? |
Дата | |
Msg-id | 18219.1570463856@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: How to retain lesser paths at add_path()? (Robert Haas <robertmhaas@gmail.com>) |
Список | pgsql-hackers |
Robert Haas <robertmhaas@gmail.com> writes: > On Mon, Oct 7, 2019 at 9:56 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> We could imagine, maybe, that a hook for the purpose of allowing an >> additional dimension to be considered would be essentially a path >> comparison function, returning -1, +1, or 0 depending on whether >> path A is dominated by path B (on this new dimension), dominates >> path B, or neither. However, I do not see how multiple extensions >> could usefully share use of such a hook. > ... if we want to stick with the ad-hoc method, we could also just > have four possible return values: dominates, dominated-by, both, or > neither. Right, and then *each* user of the hook would have to be prepared to merge its result with the result from the previous user(s), which is a complicated bit of logic that somebody would surely get wrong, especially if (a) there's no prototype to copy from and (b) testing only their own extension would not exercise it. [ thinks a bit... ] Maybe that could be improved if we can express the result as a bitmask, defined in such a way that OR'ing (or maybe AND'ing? haven't worked it out) the results from different comparisons does the right thing. > Still, this doesn't feel like very scalable paradigm, because this > code gets called a lot. Unless both calling the hook functions and > the hook functions themselves are dirt-cheap, it's going to hurt, and > TBH, I wonder if even the cost of detecting that the hook is unused > might be material. Yeah, I'm worried about that too. This is quite a hot code path, and so I don't think we can just assume that changes are free. Still, if we could come up with a cleaner paradigm, maybe we could buy back a few cycles in the core-code comparison logic, and thus not come out behind from adding a hook. regards, tom lane
В списке pgsql-hackers по дате отправления: