Re: BUG #3459: Query Error : plan should not reference subplan's variable

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "David Sanchez i Gregori" <delkos_2000(at)yahoo(dot)es>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #3459: Query Error : plan should not reference subplan's variable
Date: 2007-07-18 21:44:21
Message-ID: 10497.1184795061@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

"David Sanchez i Gregori" <delkos_2000(at)yahoo(dot)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;

/*

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Wiktor Wodecki 2007-07-19 16:16:25 chr() function leads to OOM / killed connection with 8.1, 8.2
Previous Message Heikki Linnakangas 2007-07-18 11:55:51 Re: BUG #3469: SELECT QRY