bug in plancache.c
| От | yamt@mwd.biglobe.ne.jp (YAMAMOTO Takashi) |
|---|---|
| Тема | bug in plancache.c |
| Дата | |
| Msg-id | 20110926101548.8FA8A14A143@mail.netbsd.org обсуждение исходный текст |
| Ответы |
Re: bug in plancache.c
|
| Список | pgsql-bugs |
hi,
GetCachedPlan can pass the 'qlist' to the planner twice.
if i understand the code correctly, it's unsafe because the planner is
destructive wrt the input tree. for my application, it often causes
a crash in executor.
YAMAMOTO Takashi
diff --git a/src/backend/utils/cache/plancache.c b/src/backend/utils/cache/plancache.c
index cfeb824..78c2c31 100644
--- a/src/backend/utils/cache/plancache.c
+++ b/src/backend/utils/cache/plancache.c
@@ -949,6 +949,7 @@ GetCachedPlan(CachedPlanSource *plansource, ParamListInfo boundParams,
{
/* Build a new generic plan */
plan = BuildCachedPlan(plansource, qlist, NULL);
+ qlist = NIL;
/* Just make real sure plansource->gplan is clear */
ReleaseGenericPlan(plansource);
/* Link the new generic plan into the plansource */
В списке pgsql-bugs по дате отправления: