Re: Query with aggregate over subselects fails with ERROR: plan should not reference subplan's variable

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Daniel Grace <dgrace(at)wingsnw(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Query with aggregate over subselects fails with ERROR: plan should not reference subplan's variable
Date: 2009-04-25 02:19:40
Message-ID: 24263.1240625980@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

I wrote:
> I'm talking about the underlined SELECT, not the one inside the
> aggregate. AFAICS this one is totally useless.

Oh, wait. It is useless in the query as written, but now that I think
twice about what you're trying to accomplish, you do need three levels
of SELECT keywords. Just not like that. I think what you actually
want is

SELECT
...
(SELECT GROUP_CONCAT(t.fname, '; ') FROM
(SELECT s2.fname FROM student AS s2
WHERE s2.id=s.id ORDER BY fname) AS t) AS students,
...
FROM
student AS s

What you wrote instead is just wrong --- it would fail if there were
multiple students with the same id (can that actually happen?
Maybe there's more wrong with this query...), because what you
wrote is a scalar sub-SELECT inside an aggregate call that belongs
to the outermost query.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Daniel Grace 2009-04-25 02:38:03 Re: Query with aggregate over subselects fails with ERROR: plan should not reference subplan's variable
Previous Message Tom Lane 2009-04-25 01:58:03 Re: Query with aggregate over subselects fails with ERROR: plan should not reference subplan's variable