Re: ERROR: ExecutePlan: (junk) `ctid' is NULL!

Поиск
Список
Период
Сортировка
От Jim C. Nasby
Тема Re: ERROR: ExecutePlan: (junk) `ctid' is NULL!
Дата
Msg-id 20030430005926.S66185@flake.decibel.org
обсуждение исходный текст
Ответ на Re: ERROR: ExecutePlan: (junk) `ctid' is NULL!  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: ERROR: ExecutePlan: (junk) `ctid' is NULL!  (Dennis Gearon <gearond@cvc.net>)
Список pgsql-general
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.
--
Jim C. Nasby (aka Decibel!)                    jim@nasby.net
Member: Triangle Fraternity, Sports Car Club of America
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"


В списке pgsql-general по дате отправления:

Предыдущее
От: "Jim C. Nasby"
Дата:
Сообщение: Re: Optimizer not using index on 120M row table
Следующее
От: Shridhar Daithankar
Дата:
Сообщение: Re: Performance problems