Re: Buggy handling of redundant options in COPY

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Buggy handling of redundant options in COPY
Дата
Msg-id CAFj8pRA6kUxVcPOg-TD1iA_PXm7=R8CvaR_24q7=TKOzV0fmGw@mail.gmail.com
обсуждение исходный текст
Ответ на Buggy handling of redundant options in COPY  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: Buggy handling of redundant options in COPY
Список 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

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Fujii Masao
Дата:
Сообщение: Re: history file on replica and double switchover
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: Re: Support for NSS as a libpq TLS backend