Обсуждение: Re: Outdated comments around HandleFunctionRequest

Поиск
Список
Период
Сортировка

Re: Outdated comments around HandleFunctionRequest

От
Heikki Linnakangas
Дата:
On 04/05/2017 04:05 AM, Andres Freund wrote:
> PostgresMain() has the following blurb for fastpath functions:
>
>                 /*
>                  * Note: we may at this point be inside an aborted
>                  * transaction.  We can't throw error for that until we've
>                  * finished reading the function-call message, so
>                  * HandleFunctionRequest() must check for it after doing so.
>                  * Be careful not to do anything that assumes we're inside a
>                  * valid transaction here.
>                  */
> and in HandleFunctionRequest() there's:
>
>  * INPUT:
>  *        In protocol version 3, postgres.c has already read the message body
>  *        and will pass it in msgBuf.
>  *        In old protocol, the passed msgBuf is empty and we must read the
>  *        message here.
>
> which is not true anymore.  Followed by:
>
>     /*
>      * Now that we've eaten the input message, check to see if we actually
>      * want to do the function call or not.  It's now safe to ereport(); we
>      * won't lose sync with the frontend.
>      */
>
> which is also not really meaningful, because there's no previous code in
> the function.

You're right, I missed those comments in commit 2b3a8b20c2.

In fact, HandleFunctionRequest() now always return 0, so we can also 
remove the dead code to check the return value from the caller. Barring 
objections, I'll commit the attached to do that and fix the comments.

- Heikki


Вложения

Re: Outdated comments around HandleFunctionRequest

От
Heikki Linnakangas
Дата:
On 04/05/2017 10:58 AM, Heikki Linnakangas wrote:
> On 04/05/2017 04:05 AM, Andres Freund wrote:
>> PostgresMain() has the following blurb for fastpath functions:
>>
>>                 /*
>>                  * Note: we may at this point be inside an aborted
>>                  * transaction.  We can't throw error for that until we've
>>                  * finished reading the function-call message, so
>>                  * HandleFunctionRequest() must check for it after doing so.
>>                  * Be careful not to do anything that assumes we're inside a
>>                  * valid transaction here.
>>                  */
>> and in HandleFunctionRequest() there's:
>>
>>  * INPUT:
>>  *        In protocol version 3, postgres.c has already read the message body
>>  *        and will pass it in msgBuf.
>>  *        In old protocol, the passed msgBuf is empty and we must read the
>>  *        message here.
>>
>> which is not true anymore.  Followed by:
>>
>>     /*
>>      * Now that we've eaten the input message, check to see if we actually
>>      * want to do the function call or not.  It's now safe to ereport(); we
>>      * won't lose sync with the frontend.
>>      */
>>
>> which is also not really meaningful, because there's no previous code in
>> the function.
>
> You're right, I missed those comments in commit 2b3a8b20c2.
>
> In fact, HandleFunctionRequest() now always return 0, so we can also
> remove the dead code to check the return value from the caller. Barring
> objections, I'll commit the attached to do that and fix the comments.

Committed, thanks!

- Heikki