In PQexec() and also in parseInput() (both fe-exec.c) there is a provision for, if more than one result set is returned, to concatenate the error messages (while only returning the last result set). My question is how a backend can return more than one error message per query string? The description of the protocol indicates that an ErrorResponse will either cause a connection close or the end of a query cycle.
I am currently looking into extending the protocol so that more fields can be in an ErrorResponse (e.g., error codes). If this were to happen then we'd need a smarter way of handling more than one error message per cycle. However, I'd rather avoid that case in the first place.