Fix validation of COPY FORCE_NOT_NULL/FORCE_NULL for the all-column cases

Michael Paquier <michael@paquier.xyz>

Commit: 089aac631b5ba53be0ecf8ea2e8d81388d69629c
Author: Michael Paquier <michael@paquier.xyz>
Date: 2024-10-16T23:44:50Z
Releases: 18.0
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

Files

PathChange+/−
src/backend/commands/copy.c modified +8 −4
src/test/regress/expected/copy2.out modified +12 −0
src/test/regress/sql/copy2.sql modified +6 −0

Discussion