Re: Better testing coverage and unified coding for plpgsql loops

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Better testing coverage and unified coding for plpgsql loops
Дата
Msg-id 20911.1515005602@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Better testing coverage and unified coding for plpgsql loops  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: Better testing coverage and unified coding for plpgsql loops
Re: Better testing coverage and unified coding for plpgsql loops
Список pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Tue, Jan 2, 2018 at 10:08 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> It could be converted into a function returning bool, a la
>>     if (!loop_rc_processing(...))
>>         break;

> I prefer writing this sort of thing using a function call and
> dispatching on the return value, as you suggest in the text quoted
> here. Long macros that involve a zillion continuation lines are hard
> to edit, and often hard to step through properly in a debugger.

I thought about this a bit harder and realized that if we make it
a function, we will have to pass "rc" by reference since the function
needs to change it in some cases.  That might have no impact if the
compiler is smart enough, but I expect on at least some compilers
it would end up forcing rc into memory with an attendant speed hit.

I really think we should stick with the macro implementation, unless
somebody wants to do some actual investigation to prove that a
function implementation imposes negligible cost.  I'm not prepared
to just assume that, especially not after the work I just did on
plpgsql record processing --- I initially thought that an extra
function call or three wouldn't matter in those code paths either,
but I found out differently.

            regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Better testing coverage and unified coding for plpgsql loops
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Better testing coverage and unified coding for plpgsql loops