Re: UPDATE using query; per-row function calling problem - Mailing list pgsql-general

From Rory Campbell-Lange
Subject Re: UPDATE using query; per-row function calling problem
Date
Msg-id 20110905205501.GA13235@campbell-lange.net
Whole thread Raw
In response to Re: UPDATE using query; per-row function calling problem  (David Johnston <polobo@yahoo.com>)
Responses Re: UPDATE using query; per-row function calling problem  ("David Johnston" <polobo@yahoo.com>)
List pgsql-general
On 02/09/11, David Johnston (polobo@yahoo.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

pgsql-general by date:

Previous
From: Ron Peterson
Date:
Subject: Re: alter column appears to work, but doesn't?
Next
From: Adrian Klaver
Date:
Subject: Re: alter column appears to work, but doesn't?