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-05T20:14:39Z
Lists: pgsql-hackers
Attachments
- psql-copy-var-2.patch (text/x-patch) patch
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