Обсуждение: Missing documentation

Поиск
Список
Период
Сортировка

Missing documentation

От
PG Doc comments form
Дата:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/15/libpq-connect.html
Description:

On this page:
https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS

There is a list of keywords that can be specified as part of the connection
string.
Specifying `jit=off`  or `jit=on` is functional in practice, but `jit` is
not included in the documentation.

Re: Missing documentation

От
Tom Lane
Дата:
PG Doc comments form <noreply@postgresql.org> writes:
> On this page:
> https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS

> There is a list of keywords that can be specified as part of the connection
> string.
> Specifying `jit=off`  or `jit=on` is functional in practice, but `jit` is
> not included in the documentation.

Really?  Doesn't work for me:

$ psql "host=localhost port=5432 jit=off"
psql: error: invalid connection option "jit"

            regards, tom lane



Re: Missing documentation

От
Stefan Badenhorst
Дата:
This is working:
postgresql://USERNAME:PASSWORD@server:5432/the_database?sslmode=disable&jit=off
Maybe I was looking at the wrong documentation page?

On Thu, 3 Nov 2022 at 14:58, Tom Lane <tgl@sss.pgh.pa.us> wrote:
PG Doc comments form <noreply@postgresql.org> writes:
> On this page:
> https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS

> There is a list of keywords that can be specified as part of the connection
> string.
> Specifying `jit=off`  or `jit=on` is functional in practice, but `jit` is
> not included in the documentation.

Really?  Doesn't work for me:

$ psql "host=localhost port=5432 jit=off"
psql: error: invalid connection option "jit"

                        regards, tom lane

Email Disclaimer

This email is proprietary to MI-C3 and is intended only for the person to whom it is addressed. It may contain confidential and privileged  information. If you have received this email in error, please notify the sender and delete this email, which must not be copied, distributed or disclosed to any other person. Any views or opinions presented are solely those of the author and do not necessarily represent those of MI-C3. Since this communication was affected via email, MI-C3 cannot guarantee that it is secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. MI-C3 does not accept liability for any errors or omissions in the contents of this message or for any damage resulting from the opening of this message should it contain a virus.

Re: Missing documentation

От
Tom Lane
Дата:
Stefan Badenhorst <Stefan.Badenhorst@mi-c3.com> writes:
> This is working:
> postgresql://USERNAME:PASSWORD@server
> :5432/the_database?sslmode=disable&jit=off

Again, not for me:

$ psql 'postgresql://postgres@localhost:5432/mydb?sslmode=disable&jit=off'
psql: error: invalid URI query parameter: "jit"

I suspect something in your client environment is stripping off the &...
stuff.

            regards, tom lane



Re: Missing documentation

От
Stefan Badenhorst
Дата:
I am using a prometheus exporter:
Turning JIT off definitely made a big difference to all our environments.
When using JIT it causes OOM on postgres server after a few days. Adding jit=off resolved the issue.
I have tested this now for several weeks and memory usage stays stable when jit=off.

On Thu, 3 Nov 2022 at 16:01, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Stefan Badenhorst <Stefan.Badenhorst@mi-c3.com> writes:
> This is working:
> postgresql://USERNAME:PASSWORD@server
> :5432/the_database?sslmode=disable&jit=off

Again, not for me:

$ psql 'postgresql://postgres@localhost:5432/mydb?sslmode=disable&jit=off'
psql: error: invalid URI query parameter: "jit"

I suspect something in your client environment is stripping off the &...
stuff.

                        regards, tom lane

Email Disclaimer

This email is proprietary to MI-C3 and is intended only for the person to whom it is addressed. It may contain confidential and privileged  information. If you have received this email in error, please notify the sender and delete this email, which must not be copied, distributed or disclosed to any other person. Any views or opinions presented are solely those of the author and do not necessarily represent those of MI-C3. Since this communication was affected via email, MI-C3 cannot guarantee that it is secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. MI-C3 does not accept liability for any errors or omissions in the contents of this message or for any damage resulting from the opening of this message should it contain a virus.

Re: Missing documentation

От
Tom Lane
Дата:
Stefan Badenhorst <Stefan.Badenhorst@mi-c3.com> writes:
> I am using a prometheus exporter:
> https://github.com/prometheus-community/postgres_exporter/

Hmm, well, maybe prometheus is doing something with that part of the URL.
There's no such behavior in Postgres itself, though.

            regards, tom lane



Re: Missing documentation

От
Alvaro Herrera
Дата:
On 2022-Nov-03, Tom Lane wrote:

> Stefan Badenhorst <Stefan.Badenhorst@mi-c3.com> writes:
> > I am using a prometheus exporter:
> > https://github.com/prometheus-community/postgres_exporter/
> 
> Hmm, well, maybe prometheus is doing something with that part of the URL.
> There's no such behavior in Postgres itself, though.

Yeah, that part of the connection URI accepts libpq options, not
Postgres-server options.  The only way that you can pass options to the
backend is to use "options=-c foo=bar" in the URI, but both the
whitespace and the second equals sign need to be URI-escaped, so you end
up with something like this:

?sslmode=disable&options=-c%20jit%3Doff

This is explained (to some extent) in "34.1.1.2 Connection URIs",
https://www.postgresql.org/docs/current/libpq-connect.html#id-1.7.3.8.3.6

and later "34.1.2 Parameter Key Words" explains that the parameter
"options" is used to pass command-line (!!) options to the server.

Maybe this bit of documentation is not explicit enough; some additional
examples might clarify things.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/



Re: Missing documentation

От
Stefan Badenhorst
Дата:
Thanks! This helps. 

On Thu, Nov 3, 2022, 18:40 Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
On 2022-Nov-03, Tom Lane wrote:

> Stefan Badenhorst <Stefan.Badenhorst@mi-c3.com> writes:
> > I am using a prometheus exporter:
> > https://github.com/prometheus-community/postgres_exporter/
>
> Hmm, well, maybe prometheus is doing something with that part of the URL.
> There's no such behavior in Postgres itself, though.

Yeah, that part of the connection URI accepts libpq options, not
Postgres-server options.  The only way that you can pass options to the
backend is to use "options=-c foo=bar" in the URI, but both the
whitespace and the second equals sign need to be URI-escaped, so you end
up with something like this:

?sslmode=disable&options=-c%20jit%3Doff

This is explained (to some extent) in "34.1.1.2 Connection URIs",
https://www.postgresql.org/docs/current/libpq-connect.html#id-1.7.3.8.3.6

and later "34.1.2 Parameter Key Words" explains that the parameter
"options" is used to pass command-line (!!) options to the server.

Maybe this bit of documentation is not explicit enough; some additional
examples might clarify things.

--
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/

Email Disclaimer

This email is proprietary to MI-C3 and is intended only for the person to whom it is addressed. It may contain confidential and privileged  information. If you have received this email in error, please notify the sender and delete this email, which must not be copied, distributed or disclosed to any other person. Any views or opinions presented are solely those of the author and do not necessarily represent those of MI-C3. Since this communication was affected via email, MI-C3 cannot guarantee that it is secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. MI-C3 does not accept liability for any errors or omissions in the contents of this message or for any damage resulting from the opening of this message should it contain a virus.