Hi,

Every item here is now posted except Low 4, which I am dropping.

The problem. With under 16 bytes left, the SIMD parser from e0a3a3fd536
reads ahead. From a client, it waits for the next CopyData message. When
a message ends with a full line of 17 bytes or more, 19 processes that
line only when more data or CopyDone arrives. 18 processes it at once.

Why drop it. Every line is still processed before COPY ends, so no
result changes. libpq, psql and most drivers buffer 8 kB or more before
they send. Only an error, trigger or NOTICE for the last line before a
pause comes later. A client waiting on one before sending more would
hang, I found none.

I have a patch, a check like the backslash one in d1895a11c8f. If anyone
has a use case where this matters, I will post it.

Thanks,
Shihao

Reply via email to