Search Postgresql Archives

Re: Enhancement to psql command, feedback.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 9, 2018 at 8:17 AM, Ron <ronljohnsonjr@xxxxxxxxx> 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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux