Re: Notes on implementing URI syntax for libpq

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: Notes on implementing URI syntax for libpq
Дата
Msg-id CA+TgmoaR-VyniJnk80ScoT8zvZyoEbUnNq90nZOm2KEFAAsDLw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Notes on implementing URI syntax for libpq  (Alexander Shulgin <ash@commandprompt.com>)
Ответы Re: Notes on implementing URI syntax for libpq  (Alexander Shulgin <ash@commandprompt.com>)
Список pgsql-hackers
On Thu, Nov 24, 2011 at 9:40 AM, Alexander Shulgin
<ash@commandprompt.com> wrote:
>> Another idea is to use local:/dir/name for UNIX domain socket instead of hostname:port, like it's displayed in the
psqlprompt. 
>
> So the whole thing would look like this:
>
>  postgresql://local:/dir/name/dbname?param1=val1&...
>
> Where "/dir/name" is the absolute path to the directory containing the socket file.  If one wants to use the default
directorythe following syntax may serve the need: 
>
>   postgresql://local:/dbname

I think this is just weird.  libpq treats any hostname that starts
with a slash as hostname.  And there's a standard way of URL-encoding
characters that would otherwise be treated as terminators: you write a
percent sign followed by two hex digits.  So if you want the host to
be /tmp, you just should just write:

postgresql://%2Ftmp/fred

Which is the equivalent of the connection string:

host=/tmp dbname=fred

This may appear to be slightly inconvenient notation, but there is
little reason to reinvent syntax that the URL gods have already
devised, and in practice specifying an explicit pathname in a
connection string is quite rare.  One normally specifies a local
socket connection by omitting to specify a hostname at all, and that
can work here, too.  That is, postgresql:///fred should be equivalent
to the connection string:

dbname=fred

...which means it will use the default socket directory on UNIX, and a
loopback connection on Windows.  And postgresql:/// should be
equivalent to an empty connection string, defaulting everything.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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

Предыдущее
От: Florian Weimer
Дата:
Сообщение: Re: Notes on implementing URI syntax for libpq
Следующее
От: Yoann Moreau
Дата:
Сообщение: tsvector term positions and character offset