• Robert Haas's avatar
    Attempt to fix error recovery in COPY BOTH mode. · 91fa8532
    Robert Haas authored
    Previously, libpq and the backend had opposite ideas about whether
    it was necessary for the client to send a CopyDone message after
    receiving an ErrorResponse, making it impossible to cleanly exit
    COPY BOTH mode.  Fix libpq so that works correctly, adopting the
    backend's notion that an ErrorResponse kills the copy in both
    directions.
    
    Adjust receivelog.c to avoid a degradation in the quality of the
    resulting error messages.  libpqwalreceiver.c is already doing
    the right thing, so no adjustment needed there.
    
    Add an explicit statement to the documentation explaining how
    this part of the protocol is supposed to work, in the hopes of
    avoiding future confusion in this area.
    
    Since the consequences of all this confusion are very limited,
    especially in the back-branches where no client ever attempts
    to exit COPY BOTH mode without closing the connection entirely,
    no back-patch.
    91fa8532
fe-protocol3.c 53.5 KB