pgsql: Fix validation of COPY FORCE_NOT_NULL/FORCE_NULL for the all-col - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Fix validation of COPY FORCE_NOT_NULL/FORCE_NULL for the all-col
Date
Msg-id E1t1DjP-0019mr-Aw@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/089aac631b5ba53be0ecf8ea2e8d81388d69629c

Modified Files
--------------
src/backend/commands/copy.c         | 12 ++++++++----
src/test/regress/expected/copy2.out | 12 ++++++++++++
src/test/regress/sql/copy2.sql      |  6 ++++++
3 files changed, 26 insertions(+), 4 deletions(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Rewrite some regression queries for option checks with COPY
Next
From: David Rowley
Date:
Subject: pgsql: Don't store intermediate hash values in ExprState->resvalue