Robert Haas <robertmhaas@gmail.com> writes:
> I thought the reason why this hasn't been implemented before now is
> that sending an ErrorResponse to the client will result in a loss of
> protocol sync.
Hmm ... you are right that this isn't as simple as an ereport(ERROR),
but I'm not sure it's impossible. We could for instance put the backend
into skip-till-Sync state so that it effectively ignored the next command
message. Causing that to happen might be impracticably messy, though.
I'm not sure whether cancel-transaction behavior is enough better than
cancel-session to warrant extra effort here.
regards, tom lane