Re: [PG19] Bugs found comparing 19 with 18, list before I open threads

From: shihao zhong <zhong950419(at)gmail(dot)com>
To: Manu <manuelreyesbravo(at)gmail(dot)com>
Cc: Noah Misch <noah(at)leadboat(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: [PG19] Bugs found comparing 19 with 18, list before I open threads
Date: 2026-10-18 04:41:00
Message-ID: CAGRkXqTVqWx2uK-=qrCwh--R=H-BdbAqhkvAfuFQBic33iVB2Q@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Shubhankar Anand Kulkarni 2026-10-18 05:00:15 Re: PG19: flat-copied RelOptInfos share extension_state with the original rel
Previous Message shihao zhong 2026-10-18 04:39:40 Re: BUG #19686: Rolling back SET TABLESPACE