Hi,

I noticed that psql's tab completion suggests the JSON format for both
directions of COPY.

For example:

  COPY t1 FROM STDIN WITH (FORMAT <TAB><TAB>
  binary  csv  json  text

However, the documentation says that the JSON format is allowed only
for COPY TO.  If a user selects the suggested "json" candidate, the
command fails:

  COPY t1 FROM STDIN WITH (FORMAT JSON);
  ERROR:  COPY FORMAT JSON is not supported for COPY FROM

I think it is misleading for tab completion to suggest syntax that is
explicitly unsupported by the documentation and rejected by the
server.

The attached patch checks the COPY direction and offers "json" only
for COPY TO.  This applies to both COPY and \copy completion.

There is already a separate discussion proposing support for COPY FROM
with FORMAT json [1].  If that support is committed, the completion can
of course be extended at the same time.  However, in the current tree
COPY FROM does not support JSON, so I think tab completion should
reflect the currently implemented and documented behavior.

[1]
https://www.postgresql.org/message-id/CAEG8a3%2BwxMXGLcnrDzSF0qTDzH%2BK7_x0FWNAcu-H_j8gKiwFVw%40mail.gmail.com

Regards,


Taiki Koshino<[email protected]>
SRA OSS K.K.
TEL: 03-5979-2701 FAX: 03-5979-2702
URL: https://www.sraoss.co.jp/

Attachment: v1-0001-psql-Do-not-complete-JSON-format-for-COPY-FROM.patch
Description: v1-0001-psql-Do-not-complete-JSON-format-for-COPY-FROM.patch

Reply via email to