Re: New function pg_stat_statements_reset_query() to reset statistics of a specific query

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, sk(at)zsrv(dot)org, vik(dot)fearing(at)2ndquadrant(dot)com, Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Magnus Hagander <magnus(at)hagander(dot)net>, Robert Haas <robertmhaas(at)gmail(dot)com>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>, Euler Taveira <euler(at)timbira(dot)com(dot)br>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Dave Page <dpage(at)pgadmin(dot)org>
Subject: Re: New function pg_stat_statements_reset_query() to reset statistics of a specific query
Date: 2018-11-29 03:16:39
Message-ID: 20181129031639.GJ626@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Nov 28, 2018 at 10:43:35AM -0300, Alvaro Herrera wrote:
> On 2018-Nov-28, Amit Kapila wrote:
>> The problem with this idea is that if someone specifies a particular
>> parameter using query and the query doesn't return any parameters,
>> then it can lead to inadvertent behavior. For example, if user uses
>> something like pg_stat_statements_reset(<valid_user_id>,
>> <valid_db_id>, SELECT s.queryid FROM pg_stat_statements AS s WHERE
>> s.query = 'SELECT $1 AS "ONE"'); now, if the query doesn't return any
>> row, we will remove the stats for all queries that belong to
>> (userid,dbid). It could be surprising for some users, that's why we
>> came up with option-4 where we keep the default value of parameters as
>> 0.
>
> Right, I think option 4 is a clear improvement over option 1. I can get
> behind that one. Since not many people care to vote, I think this tips
> the scales enough to that side.

With option 4 (as defined in [1]), the database ID or the user ID set to
0 means that we don't apply any filter on them, which is sensible. Now,
we have query IDs which can be set to 0, like parseable utility
statements. When a query ID is set to 0, does this mean that all query
IDs matching 0 are reset? Or does that mean that we don't filter out by
query ID?

[1]: https://www.postgresql.org/message-id/CAJrrPGfxtCUnbtWsyp_qLWb=U4diVrsA9RiEepffOm9_KOms3Q@mail.gmail.com),
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2018-11-29 03:39:48 Re: New function pg_stat_statements_reset_query() to reset statistics of a specific query
Previous Message Amit Kapila 2018-11-29 02:57:02 Re: New function pg_stat_statements_reset_query() to reset statistics of a specific query