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

From John McKown
Subject Re: Enhancement to psql command, feedback.
Date
Msg-id CAAJSdjharezyXFWKDrW=uiwG6EWLYes_Z19CNUimf=qGmq2A2g@mail.gmail.com
Whole thread Raw
In response to Re: Enhancement to psql command, feedback.  (Ron <ronljohnsonjr@gmail.com>)
Responses Re: Enhancement to psql command, feedback.
Re: Enhancement to psql command, feedback.
List pgsql-general
On Wed, May 9, 2018 at 8:17 AM, Ron <ronljohnsonjr@gmail.com> wrote:
On 05/09/2018 02:59 AM, John McKown wrote:
I just wanted to throw this out to the users before I made a complete fool of myself by formally requesting it. But I would like what I hope would be a minor change (enhancement) to the psql command. If you look on this page, https://wiki.postgresql.org/wiki/Shared_Database_Hosting ,
you will see a number of example which look like:

psql -U postgres template1 -f - << EOT

REVOKE ALL ON DATABASE template1 FROM public;
REVOKE ALL ON SCHEMA public FROM public;
GRANT ALL ON SCHEMA public TO postgres;
CREATE LANGUAGE plpgsql;

EOT

To me this looks similar to a UNIX shell script.

Because it is a Unix shell script.  The "<< EOT" is part of a heredoc, which is designed to keep everything in one place instead of needing a second file for the SQL commands.

https://en.wikipedia.org/wiki/Here_document

(The concept is as old as computing.  Anyone who's worked on mainframes or proprietary minicomputers from DEC will instantly recognize it.)

​Yes, I use HERE docs in my shell scripts. I was just, sort of, wanting to avoid that by making a "slight" change to the psql program to ignore the first (and only the first) line of any file referenced​ via a "-f". This is NOT any kind of critical necessity. I just think it would be "nice" simply because _I_ have a habit of use the "magic" #! at the start of the first like in order to have other "languages" (such as python, perl, gawk), be invoked with the script file name as a parameter. One reason to avoid a HERE doc is from what I've learned about how BASH at least implements them. The BASH shell sees the HERE document and copies it into a "temporary" disk file. It then opens this file and supplies that file descriptor to whatever is being fed the HERE document as input. So, in effect, using a HERE document, at least in BASH, does a lot more I/O to the disk system. 

Again, this is just a discussion point. And I'm quite willing to admit defeat if most people don't think that it is worth the effort.

 


--
Angular momentum makes the world go 'round.



--
We all have skeletons in our closet.
Mine are so old, they have osteoporosis.

Maranatha! <><
John McKown

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: issues when installing postgres
Next
From: Stephen Frost
Date:
Subject: Re: Enhancement to psql command, feedback.