Re: psql - better support pipe line - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: psql - better support pipe line
Date
Msg-id CAFj8pRDYZsjXqwARUvPdOVL_k3VoThuzQxRUw8xw5grUFni5Qg@mail.gmail.com
Whole thread Raw
In response to Re: psql - better support pipe line  ("Shulgin, Oleksandr" <oleksandr.shulgin@zalando.de>)
Responses Re: psql - better support pipe line
List pgsql-hackers


2015-08-27 11:54 GMT+02:00 Shulgin, Oleksandr <oleksandr.shulgin@zalando.de>:


On Wed, Aug 26, 2015 at 5:44 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
Hi

2015-08-25 17:21 GMT+02:00 Tom Lane <tgl@sss.pgh.pa.us>:
Jim Nasby <Jim.Nasby@bluetreble.com> writes:
> What I've had problems with is trying to correlate psql specified
> connection attributes with things like DBI. It would be nice if there
> was a way to get a fully formed connection URI for the current connection.

Yeah, although I'd think the capability to create such a URI is libpq's
province not psql's.  Maybe a PQgetConnectionURI(PGConn) function in
libpq, and some psql backslash command to access that?  Or maybe a nicer
API would be that there's a magic psql variable containing the URI; not
sure.

proof concept of PQGetConnectionUri and \uri command.

I like the idea, thanks!
 
missing:

connection options
uri encoding

Attached adds implementation of both.  Still missing:

- documentation

Maybe we should provide a bool parameter to this new function so that additional parameters could be ignored.  Right now it will print a few default values, that are of no great use anyway:

$ ./bin/psql -c '\uri' 'postgresql://username@/postgres'
postgresql:/username@:5432/postgres?client_encoding=UTF8&fallback_application_name=psql&sslmode=disable

I don't think we can detect and remove the default values from this output in a reliable way?

This is pretty difficult - any parameter can be important, and hard to identify default values on client side without connect to server side. I don't see any other way, than hold bitmap for identification entered values and default values from the input.

Pavel
 

--
Alex


pgsql-hackers by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: What does RIR as in fireRIRrules stand for?
Next
From: Tom Lane
Date:
Subject: Re: What does RIR as in fireRIRrules stand for?