Re: COPY: validate option presence rather than option values
От
Masahiko Sawada
Тема
Re: COPY: validate option presence rather than option values
Дата
Msg-id
CAD21AoCsbjvgk5tOarepYF28dW7P6NG8SLVDQ72A7AJ3yEjriw@mail.gmail.com
Ответ на
Список
Дерево обсуждения
COPY: validate option presence rather than option values Chao Li <li.evan.chao@gmail.com>
Re: COPY: validate option presence rather than option values Masahiko Sawada <sawada.mshk@gmail.com>
On Tue, May 5, 2026 at 9:26 PM Chao Li wrote: > > Hi, > > While testing COPY TO (FORMAT json), I noticed that the doc says FORCE_ARRAY is only allowed with FORMAT json: > ``` > > FORCE_ARRAY > > > Force output of square brackets as array decorations at the beginning > and end of output, and commas between the rows. It is allowed only in > COPY TO, and only when using > json format. The default is > false. > > > > ``` > > However, this succeeds: > ``` > evantest=# copy t1 to stdout (format csv, force_array false); > 1 > ``` > > So this is clearly validating the parsed value of force_array, rather than whether the option was specified at all. Hmm, I'm not sure this is actually a problem in practice. It seems straightforward to me that the documentation stating 'it is allowed only when...' can be interpreted as 'it is allowed to be enabled only when...'. My concern is that the proposed patch could make the command unnecessarily less flexible. This is especially true in cases where users programmatically generate a template COPY query and pass explicit boolean values (true/false) to the options. Also, other commands like VACUUM handle their boolean options in the exact same manner: =# vacuum (parallel 1, full) pg_class; ERROR: VACUUM FULL cannot be performed in parallel =# vacuum (parallel 1, full off) pg_class; VACUUM Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
В списке pgsql-hackers по дате отправления
От: Masahiko Sawada
Дата:
От: Bharath Rupireddy
Дата: