Re: Q: limit the length of log file entries? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Q: limit the length of log file entries?
Date
Msg-id 6ec7306b-fa0d-49d1-9944-11cc934b7180@aklaver.com
Whole thread Raw
In response to Re: Q: limit the length of log file entries?  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: Q: limit the length of log file entries?
List pgsql-general
On 9/4/25 08:54, Adrian Klaver wrote:
> On 9/4/25 08:48, Albrecht Dreß wrote:
>> Am 03.09.25 21:07 schrieb(en) Tom Lane:
>>> There isn't any provision for limiting the length of source queries
>>> quoted in the log.
>>
>> I see, thanks for the clarification.  IMHO, it would be nice to have 
>> such an option, though…
>>
>>> Had your user sent the bytea value as a query
>>> parameter, then log_parameter_max_length[_on_error] would have
>>> applied, but this looks like the value was just inline in the query.
>>
>> I can confirm that the limitation is applied when I call 
>> PQexecParams() from a little c test application with the data included 
>> in the paramValues array.  The overlong log lines result from queries 
>> in a Python script using the psycopg2 module – no idea how this 
>> component formats the query.
> 
> The best explanation is found from the psycopg(3) docs:
> 
> https://www.psycopg.org/psycopg3/docs/basic/from_pg2.html
> 
> Differences from psycopg2
> 
> "Psycopg 3 sends the query and the parameters to the server separately, 
> instead of merging them on the client side. Server-side binding works 
> for normal SELECT and data manipulation statements (INSERT, UPDATE, 
> DELETE), but it doesn’t work with many other statements. For instance, 
> it doesn’t work with SET or with NOTIFY:"

As example:

import psycopg2
import psycopg

conpsyc2 = psycopg2.connect("dbname=test user=postgres")
conpsyc3 = psycopg.connect("dbname=test user=postgres")

cur2 = conpsyc2.cursor()
cur3 = conpsyc3.cursor()

cur2.execute("select * from csv_test where id = %s", [1])
cur3.execute("select * from csv_test where id = %s", [1])

yields:

--cur2
2025-09-04 11:17:30.246 PDT [29695] postgres@test LOG:  statement: BEGIN
2025-09-04 11:17:30.246 PDT [29695] postgres@test LOG:  statement: 
select * from csv_test where id = 1

--cur3
2025-09-04 11:18:07.158 PDT [29703] postgres@test LOG:  statement: BEGIN
2025-09-04 11:18:07.159 PDT [29703] postgres@test LOG:  execute 
<unnamed>: select * from csv_test where id = $1
2025-09-04 11:18:07.159 PDT [29703] postgres@test DETAIL:  Parameters: 
$1 = '1'

> 
> 
>>
>> Thanks again,
>> Albrecht.
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Debugging query performance in postgres
Next
From: Albrecht Dreß
Date:
Subject: Re: Q: limit the length of log file entries?