Re: [HACKERS] ERROR: pull_var_clause: Cannot handle node type 108 - Mailing list pgsql-hackers

From José Soares
Subject Re: [HACKERS] ERROR: pull_var_clause: Cannot handle node type 108
Date
Msg-id 37C68614.657B9ABB@sferacarta.com
Whole thread Raw
In response to Re: [HACKERS] ERROR: pull_var_clause: Cannot handle node type 108  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] ERROR: pull_var_clause: Cannot handle node type 108
List pgsql-hackers

Tom Lane ha scritto:

> José Soares <jose@sferacarta.com> writes:
> > What does it mean?
> > prova=> select nome from prova group by nome having count(*) > 1;
> > [ OK ]
>
> > prova=> select oid,* from prova where nome in (select nome from prova
> > group by nome having 1 < count(*));
> > ERROR:  pull_var_clause: Cannot handle node type 108
>
> > prova=> select * from prova where nome in (select nome from prova group
> > by nome having  count(*) > 1);
> > ERROR:  rewrite: aggregate column of view must be at rigth side in qual
>
> I take it you are using 6.4, because 6.5 generates different failure
> messages.  But it's not any less broken :-(.  The rewriter seems to have
> a bunch of bugs associated with aggregate functions in HAVING clauses of
> sub-selects.  Or maybe it's just several manifestations of the same bug.
> I have notes about this problem but do not understand it well enough to
> fix it.  Perhaps Jan has a clue about it...
>
>                         regards, tom lane

You are right Tom. I installed v6.5.1 and now the message is different, but I
can't understand it again:

hygea=> select nome from prova group by nome having 1<count(*);
nome
------
carlos
jose
(2 rows)

hygea=> select oid,nome from prova where nome in (select nome from prova
group by nome having 1<count(*));
ERROR:  SELECT/HAVING requires aggregates to be valid

José




pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: PG FAQ in PDF format
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] ERROR: pull_var_clause: Cannot handle node type 108