Re: [Refactor]Avoid to handle FORCE_NOT_NULL/FORCE_NULL options when COPY TO

Richard Guo <guofenglinux@gmail.com>

From: Richard Guo <guofenglinux@gmail.com>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: zmlpostgres@gmail.com, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2022-07-27T06:37:40Z
Lists: pgsql-hackers
On Wed, Jul 27, 2022 at 12:55 PM Kyotaro Horiguchi <horikyota.ntt@gmail.com>
wrote:

> ProcessCopyOptions previously rejects force_quote_all for COPY FROM
> and copyfrom.c is not even conscious of the option (that is, even no
> assertion on it). The two options are rejected for COPY TO by the same
> function so it seems like a thinko of the commit. Getting rid of the
> code would be good in the view of code coverage and maintenance.


Yeah, ProcessCopyOptions() does have the check for force_notnull and
force_null whether it is using COPY FROM and whether it is in CSV mode.
So the codes in copyto.c processing force_notnull/force_null are
actually dead codes.


> On the otherhand I wonder if it is good that we have assertions on the
> option values.


Agree. Assertions would be better.

Thanks
Richard

Commits

  1. Remove code handling FORCE_NULL and FORCE_NOT_NULL for COPY TO

  2. Add more tests for COPY with incorrect option combinations

  3. Split copy.c into four files.