Re: ERROR: ExecutePlan: (junk) `ctid' is NULL! - Mailing list pgsql-general

From Dennis Gearon
Subject Re: ERROR: ExecutePlan: (junk) `ctid' is NULL!
Date
Msg-id 3EAFF73A.5080206@cvc.net
Whole thread Raw
In response to Re: ERROR: ExecutePlan: (junk) `ctid' is NULL!  ("Jim C. Nasby" <jim@nasby.net>)
List pgsql-general
That looks REALLY useful. I haven't gotten to the point of needing to set more than one field at a time, yet, but I bet
itwill happen. 

Jim C. Nasby wrote:
> On Tue, Apr 29, 2003 at 06:36:59PM -0400, Tom Lane wrote:
>
>>"Jim C. Nasby" <jim@nasby.net> writes:
>>
>>>stats=> UPDATE Tsummary
>>>stats->     SET participants = count(distinct credit_id)
>>>stats->             , teams = count(distinct team_id)
>>>stats->     FROM email_contrib_today ect
>>>stats->     WHERE ect.project_id = :ProjectID
>>>stats-> ;
>>>ERROR:  ExecutePlan: (junk) `ctid' is NULL!
>>
>>We really oughta reject UPDATE commands with aggregates at the top
>>level.  It's not well-defined, it's illegal per SQL spec, and it tends
>>to get the executor all confused ...
>
>
> The problem is that pgsql doesn't support
>
> UPDATE table
>     SET (field1, field2, field3) =
>             (SELECT min(blah), max(blah), count(*) FROM table2)
>
> This makes it a real pain to code this using subselects. UPDATE ... FROM
> is real handy to have, but I think there's also plenty of occasions
> where the ability to set multiple fields at once would be very useful
> too.


pgsql-general by date:

Previous
From: Dennis Gearon
Date:
Subject: Re: Bug(?) with cursors using aggregate functions.
Next
From: Steve Crawford
Date:
Subject: C-JDBC Clustering Solution