Re: Enhancement to psql command, feedback. - Mailing list pgsql-general

From David G. Johnston
Subject Re: Enhancement to psql command, feedback.
Date
Msg-id CAKFQuwYqQAn5MVgXtCqbj0gBo2jZoWhAzf6-bt9amd3YCYFkPg@mail.gmail.com
Whole thread Raw
In response to Re: Enhancement to psql command, feedback.  (Christopher Browne <cbbrowne@gmail.com>)
List pgsql-general
On Wed, May 9, 2018 at 9:04 AM, Christopher Browne <cbbrowne@gmail.com> wrote:
On Wed, 9 May 2018 at 04:00, John McKown <john.archie.mckown@gmail.com>
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...

​Frankly, none of those are complications.  For all the areas of concern you described the decision for desired behavior has already been made.  They seem to limit the extent to which a shebang would be useful...

1. O/S PATH determines what a bare "psql" invocation finds
2. arguments override environment variables
3. \i means include, no transaction semantics

And trying harder for #1 doesn't seem worthwhile - or maybe is a feature in its own right.  Something like:

--@ client-version >= 9.6
--@ server-version >= 9.4

If those comments are found in a file psql is evaluating it should error out if the condition doesn't match.  That should apply regardless of invocation method.

David J.

pgsql-general by date:

Previous
From: Bruce Harold
Date:
Subject: RE: Error creating plpython3u extension
Next
From: Jan Claeys
Date:
Subject: Re: Enhancement to psql command, feedback.