RE: How to get the content of Bind variables - Mailing list pgsql-performance

From ROS Didier
Subject RE: How to get the content of Bind variables
Date
Msg-id 7781a0148ea04dd481c309f69d4897af@PCYINTPEXMU001.NEOPROD.EDF.FR
Whole thread Raw
In response to Re: How to get the content of Bind variables  (Justin Pryzby <pryzby@telsasoft.com>)
List pgsql-performance
Hi

I have executed grep command on the entire logfile for pid 24803. See the attached file
NB : I have no DETAIL section in my entire log file. Is it normal ?

Best Reagrds

Didier ROS

-----Message d'origine-----
De : pryzby@telsasoft.com [mailto:pryzby@telsasoft.com]
Envoyé : samedi 2 mars 2019 16:57
À : ROS Didier <didier.ros@edf.fr>
Cc : tgl@sss.pgh.pa.us; pgsql-performance@postgresql.org; legrand_legrand@hotmail.com
Objet : Re: How to get the content of Bind variables

On Fri, Mar 01, 2019 at 06:47:06PM +0000, ROS Didier wrote:
> log_line_prefix = '%t [%p]: [%l-1] [%x] user=%u,db=%d,client=%h'

On Sat, Mar 02, 2019 at 01:14:44PM +0000, ROS Didier wrote:
> 2019-03-01 14:53:37 CET [24803]: [129-1] [3686]
> user=pgbd_preint_sg2,db=pgbd_preint_sg2 LOG:  process 24803 still
> waiting for ShareLock on transaction 3711 after 1000.476 ms
> 2019-03-01 14:53:37 CET [24803]: [130-1] [3686] user=pgbd_preint_sg2,db=pgbd_preint_sg2 DETAIL:  Process holding the
lock:24786. Wait queue: 24803. 
> 2019-03-01 14:53:37 CET [24803]: [131-1] [3686] user=pgbd_preint_sg2,db=pgbd_preint_sg2 CONTEXT:  while rechecking
updatedtuple (3,33) in relation "t_shared_liste_valeurs" 
> 2019-03-01 14:53:37 CET [24803]: [132-1] [3686]
> user=pgbd_preint_sg2,db=pgbd_preint_sg2 STATEMENT:  update
> t_shared_liste_valeurs set deletion_date=$1, deletion_login=$2,
> modification_date=$3, modification_login=$4, administrable=$5,
> libelle=$6, niveau=$7 where code=$8

I just realized that your log is showing "STATEMENT:  [...]" which I think means that's using libpq PQexec (simple
queryprotocol), which means it doesn't use or support bind parameters at all.  If it were using PQexecParams (protocol 
2.0 "extended" query), it would show "execute <unnamed>: [...]", with any bind params in DETAIL.  And if you were using
PQexecPrepared,it'd show "execute 
FOO: [...]" where FOO is the name of the statement "prepared" by PQprepare (plus bind params).

https://www.postgresql.org/docs/current/libpq-exec.html
https://www.postgresql.org/docs/current/protocol.html

What client application is this ?  It looks like it's going to set deletion_date to the literal string "$1" .. except
thatit's not quoted, so the statement will just cause an error.  Am I wrong ? 

Could you grep the entire logfile for pid 24803 and post the output on dropbox or pastebin or show 10 lines of context
byemail ? 

I've just used my messages and test cases on this patch as a reference to check what I wrote above is accurate.
https://www.postgresql.org/message-id/flat/20190210015707.GQ31721%40telsasoft.com#037d17567f4c84a5f436960ef1ed8c49

On Fri, Mar 01, 2019 at 06:47:06PM +0000, ROS Didier wrote:
> *) -> suggestion : It would be nice to have the content of bind
> variable of a query in a table of pg_catalog. (cf ORACLE)

As I mentioned, you can set log_destination=csvlog,stderr and import them with COPY (and add indices and analysis and
monitoring..). It look like DETAILs are being logged, so that's not the issue, but CSV also has the nice benefit of
beingeasily imported to SQL where escaping and linebreaks and similar are not confusing the issue, which I think can be
thecase for text logs. 

Justin



Ce message et toutes les pièces jointes (ci-après le 'Message') sont établis à l'intention exclusive des destinataires
etles informations qui y figurent sont strictement confidentielles. Toute utilisation de ce Message non conforme à sa
destination,toute diffusion ou toute publication totale ou partielle, est interdite sauf autorisation expresse. 

Si vous n'êtes pas le destinataire de ce Message, il vous est interdit de le copier, de le faire suivre, de le
divulguerou d'en utiliser tout ou partie. Si vous avez reçu ce Message par erreur, merci de le supprimer de votre
système,ainsi que toutes ses copies, et de n'en garder aucune trace sur quelque support que ce soit. Nous vous
remercionségalement d'en avertir immédiatement l'expéditeur par retour du message. 

Il est impossible de garantir que les communications par messagerie électronique arrivent en temps utile, sont
sécuriséesou dénuées de toute erreur ou virus. 
____________________________________________________

This message and any attachments (the 'Message') are intended solely for the addressees. The information contained in
thisMessage is confidential. Any use of information contained in this Message not in accord with its purpose, any
disseminationor disclosure, either whole or partial, is prohibited except formal approval. 

If you are not the addressee, you may not copy, forward, disclose or use any part of it. If you have received this
messagein error, please delete it and all copies from your system and notify the sender immediately by return message. 

E-mail communication cannot be guaranteed to be timely secure, error or virus-free.

Attachment

pgsql-performance by date:

Previous
From: Sergei Kornilov
Date:
Subject: Re: How to get the content of Bind variables
Next
From: ROS Didier
Date:
Subject: RE: How to get the content of Bind variables