Re: Query Jumbling for CALL and SET utility statements

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>
To: Fujii Masao <masao.fujii@oss.nttdata.com>, Julien Rouhaud <rjuju123@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Jeremy Schneider <schnjere@amazon.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Pavel Stehule <pavel.stehule@gmail.com>, Andres Freund <andres@anarazel.de>, "Imseih (AWS), Sami" <simseih@amazon.com>
Date: 2022-09-19T06:29:22Z
Lists: pgsql-hackers

Attachments

Hi,

On 9/16/22 5:47 PM, Drouvot, Bertrand wrote:
> Hi,
> 
> On 9/16/22 2:53 PM, Fujii Masao wrote:
>>
>>
>>> Attached v5 to normalize 2PC commands too, so that we get things like:
>>
>> +        case T_VariableSetStmt:
>> +            {
>> +                VariableSetStmt *stmt = (VariableSetStmt *) node;
>> +
>> +                /* stmt->name is NULL for RESET ALL */
>> +                if (stmt->name)
>> +                {
>> +                    APP_JUMB_STRING(stmt->name);
>> +                    JumbleExpr(jstate, (Node *) stmt->args);
>>
>> With the patch, "SET ... TO DEFAULT" and "RESET ..." are counted as 
>> the same query.
>> Is this intentional? 
> 
> Thanks for looking at the patch!
> No, it is not intentional, good catch!
> 
>> Which might be ok because their behavior is basically the same.
>> But I'm afaid which may cause users to be confused. For example, they 
>> may fail to
>> find the pgss entry for RESET command they ran and just wonder why the 
>> command was
>> not recorded. To avoid such confusion, how about appending stmt->kind 
>> to the jumble?
>> Thought?
> 
> I think that's a good idea and will provide a new version taking care of 
> it (and also Sami's comments up-thread).

Please find attached v6 taking care of the remarks mentioned above.

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

Commits

  1. Show values of SET statements as constants in pg_stat_statements

  2. Teach contrib/pg_stat_statements to handle multi-statement commands better.