mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
Fix another Assert issue exposed by CLOBBER_CACHE_ALWAYS.
plpgsql's exec_stmt_execsql was Assert'ing that a CachedPlanSource was is_valid immediately after exec_prepare_plan. The risk factor in this case is that after building the prepared statement, exec_prepare_plan calls exec_simple_check_plan, which might try to generate a generic plan --- and with CLOBBER_CACHE_ALWAYS or other unusual causes of invalidation, that could result in an invalidation. However, that path could only be taken for a SELECT query, for which we need not set mod_stmt. So in this case I think it's best to just remove the Assert; it's okay to look at a slightly-stale querytree for what we need here. Per buildfarm testing.
This commit is contained in:
parent
c4ae968633
commit
faf5cee7f0
@ -3027,7 +3027,6 @@ exec_stmt_execsql(PLpgSQL_execstate *estate,
|
||||
CachedPlanSource *plansource = (CachedPlanSource *) lfirst(l);
|
||||
ListCell *l2;
|
||||
|
||||
Assert(plansource->is_valid);
|
||||
foreach(l2, plansource->query_list)
|
||||
{
|
||||
Query *q = (Query *) lfirst(l2);
|
||||
|
Loading…
Reference in New Issue
Block a user