From: | Jobin Augustine <jobinau(at)gmail(dot)com> |
---|---|
To: | Oleksandr Shulgin <oleksandr(dot)shulgin(at)zalando(dot)de> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: libpq parameter parsing problem |
Date: | 2020-01-08 08:48:12 |
Message-ID: | CANaTPsrgsrVK2nb6bPym-fZcQvL7aJErMCXek7LBp-QFDQt-RQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Thanks Alex and Heikki,
Encoding works and it solved the problem. I find the documentation is not
very clear about it.
Heikki's single line comment was more clear to me than documentation :)
A statement like "PostgreSQL URI string need to be encoded with
Percent-encoding <https://en.wikipedia.org/wiki/Percent-encoding> " would
have been much better
On Tue, Jan 7, 2020 at 7:54 PM Oleksandr Shulgin <
oleksandr(dot)shulgin(at)zalando(dot)de> wrote:
> On Tue, Jan 7, 2020 at 2:17 PM Jobin Augustine <jobinau(at)gmail(dot)com> wrote:
>
>> Hello hackers,
>> User can pass session-level settings as a parameter in the connection
>> string like:
>> psql "host=localhost user=postgres options='-c synchronous_commit=off'"
>> Which sets the synchronous_commit off for the session.
>>
>> However, URI spec is not allowing it,
>> psql postgresql://postgres(at)localhost:5432/postgres?options="-c
>> synchronous_commit=off"
>> psql: error: could not connect to server: extra key/value separator "="
>> in URI query parameter: "options"
>>
>> psql postgresql://postgres(at)localhost:5432/postgres?options="-c
>> synchronous_commit off"
>> psql: error: could not connect to server: FATAL: -c synchronous_commit
>> requires a value
>>
>
> Jobin,
>
> As already pointed out by Heikki, and per documentation:
>
> > Percent-encoding may be used to include symbols with special meaning in
> any of the URI parts, e.g. replace = with %3D.
> https://www.postgresql.org/docs/current/libpq-connect.html
>
> Moreover session just hangs forever:
>> psql postgresql://postgres(at)localhost:5432/postgres?application_name=hello&options='-c
>> synchronous_commit=off'
>> provided that the connection works without the 'options' parameter
>> specification
>>
>
> What you observe here is most likely the result of your shell interpreting
> the ampersand sign (&) in the middle of the URI and triggering asynchronous
> execution of the command before the sign. Please try escaping the sign or
> using appropriate quoting, e.g. extend the single quote to start before the
> URI:
>
> psql 'postgresql://postgres(at)localhost:5432/postgres?application_name=hello&options=-c
> synchronous_commit%3Doff'
>
Yes, That was too silly. my bad
>
> Cheers,
> --
> Alex
>
Thanks and Regards,
Jobin
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2020-01-08 09:06:35 | Re: libpq parameter parsing problem |
Previous Message | Michael Paquier | 2020-01-08 08:19:30 | Re: REINDEX CONCURRENTLY unexpectedly fails |