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

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix validation of COPY FORCE_NOT_NULL/FORCE_NULL for the all-col
Date: 2024-10-16 23:47:06
Message-ID: E1t1DjP-0019mr-Aw@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(-)

Browse pgsql-committers by date

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