Alvaro Herrera wrote: > Can we fix that by adding some syntax to allow command aliases? > So you could add to your .psqlrc something like > > \alias \gcsv \pset push all \; \cbuf; \; \pset pop > > where the \cbuf is a hypothetical "function" that expands to the current > query buffer. This needs some refining I guess, but it'd allow you to > create your own shortcuts for the most common features you want without > excessive typing effort.
Since variables can contain metacommands, they can be abused as macros. For instance I think a declaration like this would work: \set gcsv '\\pset push all \\pset format csv \\g \\pset pop' or with another pset with embedded single quotes: \set gcsv '\\pset push all \\pset format csv \\pset csv_fieldsep ''\\t'' \\g \\pset pop' This kind of usage is not mentioned explicitly in the doc, so it might be hard to discover, but without the push/pop feature that doesn't exist, we can already do that: test=> \set gcsv '\\pset format csv \\pset csv_fieldsep ''\\t'' \\g' test=> select 1,2 :gcsv | (echo "START OF OUTPUT"; cat) Output format is csv. Field separator for CSV is " ". START OF OUTPUT ?column? ?column? 1 2 Best regards, -- Daniel Vérité PostgreSQL-powered mailer: http://www.manitou-mail.org Twitter: @DanielVerite