Re: psql: tab-completion support for COPY ... TO/FROM STDIN, STDOUT, and PROGRAM

From: Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>
To: Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>
Cc: Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: psql: tab-completion support for COPY ... TO/FROM STDIN, STDOUT, and PROGRAM
Date: 2025-06-16 15:08:32
Message-ID: 20250617000832.ab7744e5626783c27c921074@sraoss.co.jp
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 5 Jun 2025 16:52:00 +0900
Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp> wrote:

> On Thu, 5 Jun 2025 10:08:35 +0900
> Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp> wrote:
>
> > Hi,
> >
> > Currently, tab completion for COPY only suggests filenames after TO or
> > FROM, even though STDIN, STDOUT, and PROGRAM are also valid syntax options.
> >
> > I'd like to propose improving the tab completion behavior as described in
> > the subject, so that these keywords are suggested appropriately, and filenames
> > are offered as potential command names after the PROGRAM keyword.
> >
> > I've attached this proposal as a patch series with the following three parts:
>
> I'm sorry but the previous patches were accidentally broken and didn't work.
> I've attached fixed patches.
>
> >
> > 0001: Refactor match_previous_words() to remove direct use of rl_completion_matches()
> >
> > This is a preparatory cleanup. Most completions in match_previous_words() already use
> > COMPLETE_WITH* macros, which wrap rl_completion_matches(). However, some direct calls
> > still remain.
> >
> > This patch replaces the remaining direct calls with COMPLETE_WITH_FILES or
> > COMPLETE_WITH_GENERATOR, improving consistency and readability.
> >
> > 0002: Add tab completion support for COPY ... TO/FROM STDIN, STDOUT, and PROGRAM
> >
> > This is the main patch. It extends tab completion to suggest STDIN, STDOUT, and PROGRAM
> > after TO or FROM. After PROGRAM, filenames are suggested as possible command names.
> >
> > To support this, a new macro COMPLETE_WITH_FILES_PLUS is introduced. This allows
> > combining literal keywords with filename suggestions in the completion list.
> >
> > 0003: Improve tab completion for COPY option lists
> >
> > Currently, only the first option in a parenthesized list is suggested during completion,
> > and nothing is suggested after a comma.
> >
> > This patch enables suggestions after each comma, improving usability when specifying
> > multiple options.
> >
> > Although not directly related to the main proposal, I believe this is a helpful enhancement
> > to COPY tab completion and included it here for completeness.
> >
> > I’d appreciate your review and feedback on this series.

I've attached rebased patches.

Best regards,
Yugo Nagata

--
Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>

Attachment Content-Type Size
v3-0003-Improve-tab-completion-for-COPY-option-lists.patch text/x-diff 3.6 KB
v3-0002-Add-tab-completion-support-for-COPY-.-TO-FROM-STD.patch text/x-diff 7.7 KB
v3-0001-Refactor-match_previous_words-to-remove-direct-us.patch text/x-diff 4.1 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2025-06-16 15:11:29 Re: Non-reproducible AIO failure
Previous Message Melanie Plageman 2025-06-16 14:58:21 Re: Vacuum ERRORs out considering freezing dead tuples from before OldestXmin