Re: Buggy handling of redundant options in COPY
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>, Rémi Lapeyre <remi.lapeyre@lenstra.fr>
Date: 2020-09-29T07:35:39Z
Lists: pgsql-hackers
út 29. 9. 2020 v 9:24 odesílatel Michael Paquier <michael@paquier.xyz> napsal: > Hi all, > > While diving into the CF, I have noticed the following message from > Remy (in CC): > > https://www.postgresql.org/message-id/0B55BD07-83E4-439F-AACC-FA2D7CF50532@lenstra.fr > > The following two cases should fail the same way, but the second does > not because we check directly the flag value extracted from the > DefElem to see if the option is repeated or not: > =# copy (select 1) to '/tmp/data.txt' (header on, header off); > ERROR: 42601: conflicting or redundant options > =# copy (select 1) to '/tmp/data.txt' (header off, header on); > ERROR: 0A000: COPY HEADER available only in CSV mode > > Looking quickly at the usages of defGetBoolean() across the code, it > seems that we are rather consistent on a command-basis to handle such > cases (EXPLAIN does not care, subscriptions do, etc.), while COPY is > a mixed bag that clearly aims at checking for redundant options > correctly. So, attached is a patch to do that, with tests for the > various options while on it. This is not something worth a > back-patch in my opinion. > > Any thoughts? > +1 Pavel -- > Michael >
Commits
-
Fix handling of redundant options with COPY for "freeze" and "header"
- 10c5291cc2c6 14.0 landed