| From: | Rory Campbell-Lange <rory(at)campbell-lange(dot)net> |
|---|---|
| To: | David Johnston <polobo(at)yahoo(dot)com> |
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: UPDATE using query; per-row function calling problem |
| Date: | 2011-09-05 20:55:01 |
| Message-ID: | 20110905205501.GA13235@campbell-lange.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 02/09/11, David Johnston (polobo(at)yahoo(dot)com) wrote:
> > In my "-1" example, am I right in assuming that I created a correlated
> > subquery rather than an correlated one? I'm confused about the
> > difference.
> >
> Correlated: has a where clause that references the outer query
> Un-correlated: not correlated
>
> Because of the where clause a correlated sub-query will return a
> different record for each row whereas an un-correlated sub-query will
> return the same record for all rows since the where clause (if any) is
> constant.
Hi David -- thanks for the clarification. However I'm still a little
confused. As I understand it the following is a un-correlated sub-query:
UPDATE
slots
SET
a = 'a'
,b = (SELECT uuid_generate_v1())
WHERE
c = TRUE;
and the following, without a 'WHERE', is a correlated sub-query:
UPDATE
slots
SET
a = 'a'
,b = uuid_generate_v1()
WHERE
c = TRUE;
Is the point that the lower is not a sub-query at all?
Regards
Rory
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Adrian Klaver | 2011-09-05 20:57:33 | Re: alter column appears to work, but doesn't? |
| Previous Message | Bruce Momjian | 2011-09-05 20:53:12 | Re: [GENERAL] pg_upgrade problem |