Fix validation of COPY FORCE_NOT_NULL/FORCE_NULL for the all-column cases
authorMichael Paquier
Wed, 16 Oct 2024 23:45:56 +0000 (08:45 +0900)
committerMichael Paquier
Wed, 16 Oct 2024 23:45:56 +0000 (08:45 +0900)
commitc06a4746b1be841dee998a75f9a52b2d06348ca7
tree30718279efc060d4b552a8457e2787b330552c8c
parenta30c1ca21c584cb0917a5e6fbe086164cd8bec6a
Fix validation of COPY FORCE_NOT_NULL/FORCE_NULL for the all-column cases

This commit adds missing checks for COPY FORCE_NOT_NULL and FORCE_NULL
when applied to all columns via "*".  These options now correctly
require CSV mode and are disallowed in COPY TO, making their behavior
consistent with FORCE_QUOTE.

Some regression tests are added to verify the correct behavior for the
all-columns case, including FORCE_QUOTE, which was not tested.

Backpatch down to 17, where support for the all-column grammar with
FORCE_NOT_NULL and FORCE_NULL has been added.

Author: Joel Jacobson
Reviewed-by: Zhang Mingli
Discussion: https://postgr.es/m/65030d1d-5f90-4fa4-92eb-f5f50389858e@app.fastmail.com
Backpatch-through: 17
src/backend/commands/copy.c
src/test/regress/expected/copy2.out
src/test/regress/sql/copy2.sql