On 2020-11-18 11:35, Fujii Masao wrote:
Thanks for your comment!
> On 2020/11/18 11:04, torikoshia wrote:
>> Hi,
>>
>> AFAIU, when the planner statistics are updated, generic plans are
>> invalidated and PostgreSQL recreates. However, the manual doesn't seem
>> to explain it explicitly.
>>
>> https://www.postgresql.org/docs/devel/sql-prepare.html
>>
>> I guess this case is included in 'whenever database objects used in
>> the statement have definitional (DDL) changes undergone', but I feel
>> it's hard to infer.
>>
>> Since updates of the statistics can often happen, how about describing
>> this case explicitly like an attached patch?
>
> +1 to add that note.
>
> - statement. Also, if the value of <xref linkend="guc-search-path"/>
> changes
> + statement. For example, when the planner statistics of the
> statement
> + are updated, <productname>PostgreSQL</productname> re-analyzes and
> + re-plans the statement.
>
> I don't think "For example," is necessary.
>
> "planner statistics of the statement" sounds vague? Does the statement
> is re-analyzed and re-planned only when the planner statistics of
> database
> objects used in the statement are updated? If yes, we should describe
> that to make the note a bit more explicitly?
Yes. As far as I confirmed, updating statistics which are not used in
prepared statements doesn't trigger re-analyze and re-plan.
Since plan invalidations for DDL changes and statistcal changes are
caused
by PlanCacheRelCallback(Oid 'relid'), only the prepared statements using
'relid' relation seem invalidated.
Attached updated patch.
Regards,
-
Atsushi Torikoshi