Re: BUG #3459: Query Error : plan should not reference subplan's variable
От | Tom Lane |
---|---|
Тема | Re: BUG #3459: Query Error : plan should not reference subplan's variable |
Дата | |
Msg-id | 10497.1184795061@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #3459: Query Error : plan should not reference subplan's variable ("David Sanchez i Gregori" <delkos_2000@yahoo.es>) |
Список | pgsql-bugs |
"David Sanchez i Gregori" <delkos_2000@yahoo.es> writes: > Description: Query Error : plan should not reference subplan's > variable If it helps, I've applied the attached patch to fix this. > I found these error in all 8.x on Windows XP SP 2 (32 bits) , Linux 32 bits, > and Linux AMD64. AFAICT the bug is new in 8.1. If you can reproduce something of the sort in 8.0.x, please submit a test case. regards, tom lane Index: src/backend/optimizer/plan/subselect.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/optimizer/plan/subselect.c,v retrieving revision 1.112.2.1 diff -c -r1.112.2.1 subselect.c *** src/backend/optimizer/plan/subselect.c 6 Dec 2006 19:40:08 -0000 1.112.2.1 --- src/backend/optimizer/plan/subselect.c 18 Jul 2007 21:23:41 -0000 *************** *** 1306,1315 **** Param *prm; /* ! * Set up for a new level of subquery. This is just to keep ! * SS_finalize_plan from becoming confused. */ - PlannerQueryLevel++; PlannerInitPlan = NIL; /* --- 1306,1319 ---- Param *prm; /* ! * We must run SS_finalize_plan(), since that's normally done before a ! * subplan gets put into the initplan list. However it will try to attach ! * any pre-existing initplans to this one, which we don't want (they are ! * siblings not children of this initplan). So, a quick kluge to hide ! * them. (This is something else that could perhaps be cleaner if we did ! * extParam/allParam processing in setrefs.c instead of here? See notes ! * for materialize_finished_plan.) */ PlannerInitPlan = NIL; /* *************** *** 1317,1324 **** */ SS_finalize_plan(plan, root->parse->rtable); ! /* Return to outer subquery context */ ! PlannerQueryLevel--; PlannerInitPlan = saved_initplan; /* --- 1321,1327 ---- */ SS_finalize_plan(plan, root->parse->rtable); ! /* Restore outer initplan list */ PlannerInitPlan = saved_initplan; /*
В списке pgsql-bugs по дате отправления: