Re: [HACKERS] having bug report

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: José Soares <jose(at)sferacarta(dot)com>
Cc: hackers <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] having bug report
Date: 1999-06-16 15:06:34
Message-ID: 25041.929545594@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

=?iso-8859-1?Q?Jos=E9?= Soares <jose(at)sferacarta(dot)com> writes:
> * subqueries containing HAVING return incorrect results
> select istat from comuni where istat in (
> select istat from comuni group by istat having count(istat) > 1
> );
> ERROR: rewrite: aggregate column of view must be at rigth side in qual
> select istat from comuni where istat in (
> select istat from comuni group by istat having 1 < count(istat)
> );
> ERROR: pull_var_clause: Cannot handle node type 108

These are both known problems (at least, I had both in my todo list).

The first one appears to be a rewriter bug --- it seems to want to
implement count(istat) as a second nested sublink, and then it falls
over because it doesn't handle "subselect op something" as opposed to
"something op subselect". But pushing count(istat) into a subselect
is not merely inefficient, it's *wrong* in this case because then the
group by won't affect it.

The second one is a problem in the planner/optimizer; it falls over on
sublinks in HAVING clauses (of course, this particular example wouldn't
trigger the problem were it not for the upstream rewriter bug, but it's
still a planner bug). I think union_planner's handling of sublinks
needs considerable work, but was putting it off till after 6.5.

I will work on the second problem; I think the first one is in Jan's
turf...

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jackson, DeJuan 1999-06-16 15:21:28 RE: [HACKERS] 6.5.0 - Overflow bug in AVG( )
Previous Message Tom Lane 1999-06-16 14:52:12 Re: [HACKERS] 6.5.0 - Overflow bug in AVG( )