pg_stat_statements IN problem

2023-10-02 Thread byme
Hello,

I would like to ask about a problem that is bothering me for a while now. We 
have implemented monitoring of our queries using pg_stat_statements. The only 
problem we have with it is that expressions with
IN ('first', 'second', 'third')
get translated into a query as
IN ($1, $2, $3)
and not as
IN $1

This obfuscates our monitoring because the same query with different amount of 
arguments get translated into this:
IN ('first', 'second')
and so on.

I was trying to find some discussions about it, but could not find much. One 
suggestion was to use
= ANY
but that is a problem when using some third party framework for db operations, 
in our case for python, for example web2py's DAL or sqlalchemy.

Is there a possibility the pg_stat_statements will be improved with handling 
IN? This problem makes it so much less useful right now.

Or is there something I could do to have the statistics for such queries 
aggreageted? Or is there something else I am missing?

Best regards

Lukas Jerabek

Sent with [Proton Mail](https://proton.me/) secure email.

Re: pg_stat_statements IN problem

2023-10-03 Thread byme
Thank you for response. Unfortunately, I have to update one section which I 
wrote wrong, it should have
been this way:

"This obfuscates our monitoring because the same query with different amount of 
arguments gets translated into this:
IN ($1, $2)
and so on."

The questions are:
1. Shouldnt IN behave so that the query in pg_stat_statements would look like 
this:
IN $1
2. Shouldnt there be at least some flag to aggregate such queries into one?
3. Is there any workaround how to aggregate those queries except the "= ANY"?
4. How come no one is bothered by this if this makes pg_stat_statements 
unusable with lots of queries using IN, what others do with this problem?
5. what do you mean by changing pg_stat_statements with another view/table?

LJ

P.S.: The only serious discussion I was able to find about it was from 2015 
here, everyone basically stating that the improvement would be useful. 
https://postgrespro.com/list/thread-id/1880012



Sent with Proton Mail secure email.

--- Original Message ---
On Monday, October 2nd, 2023 at 8:50 PM, Wim Bertels  
wrote:


> byme@byme.email schreef op ma 02-10-2023 om 16:19 [+]:
> 
> > Is there a possibility the pg_stat_statements will be improved with
> > handling IN? This problem makes it so much less useful right now.
> 
> 
> not sure what the question is,
> but if you change pg_stat_statements with another view/table,
> the problem/answer would be the same
> 
> https://www.postgresql.org/docs/current/functions-comparisons.html#FUNCTIONS-COMPARISONS-IN-SCALAR




Re: pg_stat_statements IN problem

2023-10-03 Thread byme
Thank you very much Laurenz and David. Looking forward to it and unfortunatelly 
no, I am not in position to review that... 

So one last question, should I expect the patch to land in version 17 only or 
is there chance that it will also be in lower versions right away?

LJ



Sent with Proton Mail secure email.

--- Original Message ---
On Tuesday, October 3rd, 2023 at 10:54 AM, Laurenz Albe 
 wrote:


> On Tue, 2023-10-03 at 08:05 +0000, byme@byme.email wrote:
> 
> > "This obfuscates our monitoring because the same query with different 
> > amount of arguments gets translated into this:
> > IN ($1, $2)
> > and so on."
> > 
> > The questions are:
> > 1. Shouldnt IN behave so that the query in pg_stat_statements would look 
> > like this:
> > IN $1
> > 2. Shouldnt there be at least some flag to aggregate such queries into one?
> > 3. Is there any workaround how to aggregate those queries except the "= 
> > ANY"?
> > 4. How come no one is bothered by this if this makes pg_stat_statements 
> > unusable with lots of queries using IN, what others do with this problem?
> > 5. what do you mean by changing pg_stat_statements with another view/table?
> 
> 
> There is currently a patch for this very problem under review:
> 
> https://commitfest.postgresql.org/44/2837/
> 
> The discussion is here:
> 
> https://www.postgresql.org/message-id/flat/ca+q6zcwtubt_sxj0v6hy6ez89uv5wug5aefpe_9n0jr3vwn...@mail.gmail.com
> 
> You could comment on that patch or review it. Useful reviews and supporting
> comments help move the patch forward. That would best serve your interests.
> 
> Yours,
> Laurenz Albe