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

From Yugo Nagata
Subject Re: psql: tab-completion support for COPY ... TO/FROM STDIN, STDOUT, and PROGRAM
Date
Msg-id 20250718164928.f55ff231d8968c4cdeec6ac4@sraoss.co.jp
Whole thread Raw
In response to Re: psql: tab-completion support for COPY ... TO/FROM STDIN, STDOUT, and PROGRAM  (Yugo Nagata <nagata@sraoss.co.jp>)
List pgsql-hackers
On Thu, 17 Jul 2025 10:57:36 +0900
Yugo Nagata <nagata@sraoss.co.jp> wrote:

> On Tue, 17 Jun 2025 00:08:32 +0900
> Yugo Nagata <nagata@sraoss.co.jp> wrote:
> 
> > On Thu, 5 Jun 2025 16:52:00 +0900
> > Yugo Nagata <nagata@sraoss.co.jp> wrote:
> > 
> > > On Thu, 5 Jun 2025 10:08:35 +0900
> > > Yugo Nagata <nagata@sraoss.co.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.

The previous patch was broken failed to complie since I missed following
the required format of if-conditions in match_previous_words().
I've attached update patches.

Regards,
Yugo Nagata

-- 
Yugo Nagata <nagata@sraoss.co.jp>

Attachment

pgsql-hackers by date:

Previous
From: Ashutosh Bapat
Date:
Subject: Re: meson and check-tests
Next
From: "Michael J. Baars"
Date:
Subject: Lossless transmission of double precision floating point