Re: Add partial :-variable expansion to psql \copy
Fabien COELHO <coelho@cri.ensmp.fr>
From: Fabien Coelho <coelho@cri.ensmp.fr>
To: Tom Lane <tgl@sss.pgh.pa.us>, Corey Huinker <corey.huinker@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-04-16T07:40:52Z
Lists: pgsql-hackers
Attachments
- psql-copy-var-3.patch (text/x-patch) patch
Hello, Here is a rebased and updated version of adding \gi: - improved documentation - some refactoring to share one function - signal trap disabled on \gi as well The thread subject is now a misnomer, I'm not sure whether I should update it or start a new thread. On 05/04/2025 22:14, Fabien Coelho wrote: > Hello Tom and Corey, > >> [...] Anyway, my feeling about it is that \copy parsing is a huge hack >> right now, and I'd rather see it become less of a hack, that is >> more like other psql commands, instead of getting even hackier. > > After giving it some thoughts, I concluded that trying to salvage > \copy is not the > way to go and I have followed Corey's suggestion to extend the > standard SQL COPY > handling by providing an alternate input stream with "\gi file" or > "\gi cmd|". > > This has lead to significant restructuring so as to simplify \copy > handling to use > the \g and \gi existing infrastructure. I've moved checked performed > only for \copy > so that they are now also done with \g, and error messages are more > systematically > shown. The pipe char used to mark a command instead of a file is > switched to a > boolean, which is more consistent with other places and how it can be > managed with > "\gi command|" as the pipe char is at the end instead of the start. > The patch also > includes tests and some doc. > > If this is accepted, ISTM that \copy could be retired and even removed > at a > later stage, which would solve elegantly its debatable implementation. > -- Fabien.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix psql's "\g target" meta-command to work with COPY TO STDOUT.
- 6d3ede5f1c65 12.0 cited