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

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>, Magnus Hagander <magnus(at)hagander(dot)net>, sk(at)zsrv(dot)org, Michael Paquier <michael(at)paquier(dot)xyz>, 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-17 13:18:01
Message-ID: CAA4eK1Kg47JJ=cTX9sv8i8JX3JvtQaTqcYEMUrpDscAgRTQ-pg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Nov 17, 2018 at 4:46 PM Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:
>
> On 2018-Nov-17, Haribabu Kommi wrote:
>
> > > Okay, but you haven't answered my question:
> > > "how is able to remove the correct statement from hash (it seems
> > > statement intended to remove 'SELECT $1 AS "ONE"', but it removed
> > > 'SELECT $1 + $2 AS "TWO"')"?
> >
> > I missed to check that question.
> >
> > SELECT s.queryid FROM pg_stat_statements AS s WHERE s.query =
> > 'SELECT $1 AS "ONE"'
> >
> > With the above query to get the queryid, but there are no such queries
> > present in the pg_stat_statements, so the above query returns NULL as
> > output, and with NULL as input to the _reset() function, it takes the
> > default value of 0, and the reset query compares with rest of the two
> > parameters of userid and dbid.
>
> Uh, ouch! Seems to me that this is a high-caliber foot-gun, and will
> cause nasty suprises when production stats data disappear inadvertently!
>

What is the alternative in your mind? AFAICS, we have below alternatives:

a) Return an error for the NULL value of any argument?
b) Silently ignore if there is any NULL value argument and don't
remove any stats.
c) Just ignore the NULL value parameter and remove the stats based on
other parameters.

Currently, patch implements option (c), but we can do (a) or (b) as
well, however, that can make the API usage bit awkward. I mean the
user has to pass the valid value for all parameters or alternatively
we need to keep some other default value of parameters which say that
ignore this particular parameter and remove stats based on other
parameters.

--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2018-11-17 14:11:33 Re: New function pg_stat_statements_reset_query() to reset statistics of a specific query
Previous Message Alvaro Herrera 2018-11-17 12:55:27 Re: fix psql \conninfo & \connect when using hostaddr