On Wed, 9 May 2018 at 04:00, John McKown <john.archie.mckown@xxxxxxxxx> wrote: > To me this looks similar to a UNIX shell script. Now, going sideways for a second, if someone wanted to create a "self contained" awk script. It would look something like: > #!/bin/awk -f > ... awk code ... I have found it convenient when Lisp implementations (that use ; as the comment indicator, and where # tends to mean something quite different) have provided something like this. I'd quite like it if I could start a script with #!psql or similar and have it be, yes, indeed, directly executable via psql. There are several complications that leap out at me... 1. Would want to run the apropos psql It's a common thing in Perl to have an idiom where a suitable script prefix goes off and finds the appropriate Perl instance. It's possible to have multiple versions of psql, it would be kinda nice if the script could choose the right one to run. But that could easily be trying too hard. 2. Specifying database connection parameters Making use of PGDATABASE and other environment parameters is well and good; it would also be a fine thing for something in the first line to be able to specify values. Thus, something like... #!psql -d postgresql://postgres@localhost:5432/some_db_name The not-so-nice is that perhaps that first line provides some defaults, and one could override slices of that via PGDATABASE/PGHOST/PGUSER/... What overrides what is an excellent question, and perhaps a horrible bikeshedding debate. 3. Nesting is a funny thing; I'm not sure if \i should simply ignore the first line if it begins with #!, or if it should become a "subshell" perhaps in another psql session. In effect, is \i like a C #include (ergo, perhaps strip leading line beginning with #!), or is it a separate psql session, with separate connection/transaction? I imagine it's more like #include, but both seem potentially useful. There's certainly a danger of bikeshedding. -- When confronted by a difficult problem, solve it by reducing it to the question, "How would the Lone Ranger handle this?"