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_kom...@mail.gmail.com), -- Michael
signature.asc
Description: PGP signature