Re: psql - better support pipe line

Поиск
Список
Период
Сортировка
От Shulgin, Oleksandr
Тема Re: psql - better support pipe line
Дата
Msg-id CACACo5QByeCcgb0tn_+J698vOEK9OJQ3YajX-=VAKVaKexjJ3Q@mail.gmail.com
обсуждение исходный текст
Ответ на Re: psql - better support pipe line  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
Ответы Re: psql - better support pipe line
Список pgsql-hackers
On Fri, Aug 28, 2015 at 9:52 PM, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
On 8/28/15 3:58 AM, Shulgin, Oleksandr wrote:
    It occurs to me the most flexible thing that could be done here
    would be providing a libpq function that spits out JSON connection
    parameters and have psql turn that into a variable. It would be easy
    to feed that to a SQL statement and do whatever you want with it at
    that point, including format it to a connection URI.


Hm... but that would mean that suddenly psql would need JSON parsing
capabilities and URI escaping code would have to be moved there too?  So
every client that links to libpq and wants to use this feature going as
far as reconstructing an URI would need both of the capabilities.

Anything that's doing this presumably has connected to the database, which on any recent version means you have plenty of ability to process JSON at the SQL layer.

*Cough*...  Well, the fact that it's technically not impossible, doesn't mean it's the right way to do it.  By the same reasoning we can also ask the server to calculate 1+1 for us in SQL. :-)

And that will work even with a 9.0 server, while parsing JSON -- not really.  Another point is that you don't need an *alive* connection to be able to extract its URI/conninfo string, while when offloading JSON parsing part to the server you suddenly do.  Bottom line for me: while still possible, this can't be portable.

Why instead of JSON not spit conninfo format, with proper escaping?
That could be a separate library call, e.g. PGgetConnectionString() and
a separate backslash command: \conninfo

Do you mean as a URI? The downside to that it's it's more difficult to parse than JSON. Another option might be an array.

Hm... actually why not just use the existing call:

PQconninfoOption *PQconninfo(PGconn *conn);

and move whatever code is needed to form an URI or conninfo string to psql itself?

The other issue is there's no way to capture \conninfo inside of psql and do something with it. If instead this was exposed as a variable, you could handle it in SQL if you wanted to.

Yeah, I forgot about the variable proposal, that would be a more useful way to expose it for sure.

--
Alex

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [BUGS] Compile fails on AIX 6.1
Следующее
От: "Shulgin, Oleksandr"
Дата:
Сообщение: Re: Proposal: Implement failover on libpq connect level.