On Thu, Jul 23, 2026 at 4:02 PM Ewan Young <[email protected]> wrote:
> +1 from me.

+1

I have one comment:

  /* Completed parsing this message, keep going */
  pqParseDone(conn, conn->inStart + 5 + msgLength);
  needInput = false;
+
+ /*
+ * An error may have been triggered while processing the message, bail
+ * out
+ */
+ if (conn->error_result && conn->status == CONNECTION_BAD)
+ return pqPrepareAsyncResult(conn);

getCopyDataMessage() checks for the fatal error before pqParseDone(),
but pqFunctionCall3() does it after pqParseDone().  Shouldn't
pqFunctionCall3() use the same ordering?

If getNotify() or getParameterStatus() calls handleFatalError(), the input
buffer has already been flushed, so calling pqParseDone() afterwards seems
unnecessary and a bit confusing.

Regards,

-- 
Fujii Masao


Reply via email to