[...]
> I've taken a look at your patch. I agree that having a plan identifier
> would be great, but I'm not a big fan of the jumbling. That's a lot of
> hashing that needs to be done to decide wether two plans are
> essentially equivalent or not.

As there is no planid available yet in core, I reused jumbling from 
pg_stat_plans, and I agree : it seems quite complicated (its not even 
sure that it is compatible with all the new partitioning stuff) and 
I won't be able to maintain it.

> Maybe, in the future, in a different patch, we could add functionality
> that would allow us to compare two plan trees. There is even a remark
> in the header of src/backend/nodes/equalfuncs.c regarding this:
>  * Currently, in fact, equal() doesn't know how to compare Plan trees
>  * either.  This might need to be fixed someday. 

It would be so helpfull if a planid was included in core Query / plan tree, 
it could be reused here in equal(), in explain commands, 
in pg_stat_activity, in pg_stat_statements ...


>> May be your view pg_stat_statements_plans could be transformed :
>> same key as pgss: dbid,userid,queryid,planid 
>> and THE plan column to store explain result (no more need for
>> plan_time nor
>> tz that 
>> are already available in modified pgss).

> The documentation [of pg_stat_statements] gives no clear indication
> which fields qualify as primary keys, mainly because the hashing that
> generates the queryid isn't guaranteed to produce unique results...
> So I'm not sure which columns should be used to create associations
> between pg_stat_statements and pg_stat_statements_plans.


Yes I understand, to choose between
  dbid,userid,queryid,planid 
and
  dbid,userid,planid 

(planid alone seems not acceptable regarding privacy policies).

Regards
PAscal



--
Sent from: http://www.postgresql-archive.org/PostgreSQL-hackers-f1928748.html

Reply via email to