> > >> I think the testing discussion should be moved to a different thread.
> > >> What do you think?
> > > See v4.
> > >
> > > 0001 deals with reporting queryId in exec_execute_message and
> > > exec_bind_message.
> > > 0002 deals with reporting queryId after a cache invalidation.
> > >
> > > There are no tests as this requires more discussion in a separate thread(?)
> > At first, these patches look good.
> > But I have a feeling of some mess here:
> > queryId should be initialised at the top-level query. At the same time,
> > the RevalidateCachedQuery routine can change this value in the case of
> > the query tree re-validation.
> > You can say that this routine can't be called from a non-top-level query
> > right now, except SPI. Yes, but what about extensions or future usage?
> This is a valid point. RevalidatePlanCache is forcing a
> new queryId to be advertised ( 'true' as the second argument to
> pgstat_report_query_id) . This means,
> v4-0002-Report-new-queryId-after-plancache-re-validation.patch
> will result in a non top-level queryId being advertised.
An idea would be to add bool field called force_update_qid to
CachedPlanSource, and this field can be set to 'true' after a call
to CreateCachedPlan. RevalidateCachedQuery will only update
the queryId if this value is 'true'.
For now, only exec_parse_message will set this field to 'true',
but any caller can decide to set it to 'true' if there are other
cases in the future.
What do you think?
--
Sami