Hi!
This is a follow up on
https://www.postgresql.org/message-id/17948-fcace7557e449957@postgresql.org.
Libpq in pipeline mode considers '< 2TDCEZ' a sufficient response to
'> BDESS', when according to specification one more 'Z' is expected.
This leads to client <-> server desynchronization, when libpq parses the
very next message server sends (which is Z, as expected).
A bit more context and a MRE:
https://github.com/itrofimow/libpq_protocol_desync
I'm pretty sure that this branch
https://github.com/postgres/postgres/blob/3af101ce8be8eeb0e8adc61e293b5d12989f68be/src/interfaces/libpq/fe-exec.c#L2124
should be adjusted to handle the case and do not match error response
against sync query.