Missing documentation
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.
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
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.
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
I am using a prometheus exporter:
https://github.com/prometheus-community/postgres_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.
You can see the related issue here:
https://github.com/prometheus-community/postgres_exporter/issues/694
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=offAgain, 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.
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
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/
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.6and 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.