PostgresMain() has the following blurb for fastpath functions:

                                 * Note: we may at this point be inside an 
                                 * transaction.  We can't throw error for that 
until we've
                                 * finished reading the function-call message, 
                                 * 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:

 *              In protocol version 3, postgres.c has already read the message 
 *              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.

This largely seems to be damage from

commit 2b3a8b20c2da9f39ffecae25ab7c66974fbc0d3b
Author: Heikki Linnakangas <heikki.linnakan...@iki.fi>
Date:   2015-02-02 17:08:45 +0200

    Be more careful to not lose sync in the FE/BE protocol.


- Andres

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to