Postres falls down on "having" - Mailing list pgsql-sql

From Paul Mamin
Subject Postres falls down on "having"
Date
Msg-id 13482.990810@sky.ru
Whole thread Raw
Responses Re: [SQL] Postres falls down on "having"  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
Please, help me. I have Postgres 6.5 on Linux and found some bug.

=====================================
Table definitions:

>create sequence serialseq;
>
>create table calls
>(numcall integer default nextval('serialseq') not null primary key,
>uzer integer not null,
>inter integer not null,
>calltime abstime not null,
>calldur reltime not null,
>inb integer not null,
>outb integer not null,
>callprice integer);
>
>create index uzer_udx
>on calls
>(uzer);
>
>create index inter_udx
>on calls
>(inter);
>
>create index calltime_udx
>on calls
>(calltime)


>create table pppdisab
>(uzer integer primary key,
>timedisab abstime,
>maxprice integer,
>maxdur integer,
>maxinb int8);
>
>create index timedisab_idx on pppdisab (timedisab)

=====================================

And then I make some query (time is european):

>select calls.uzer
> from calls,pppdisab
> where
>   calltime>='01/08/1999'
>   and calls.uzer=pppdisab.uzer
>   and pppdisab.timedisab is NULL
> group by calls.uzer,maxprice,maxdur,maxinb
> having
>   sum((int(calldur)+59)/60)>=maxdur
>   or sum(callprice)>=maxprice
>   or sum(int8(inb))>=maxinb

=====================================

And when result is not empty - everything's Ok.
But when it's empty then the main postmaster crashes with message to
stdout like this:

>pq_recvbuf: unexpected EOF on client connection
>pq_flush: send() failed: Broken pipe
>pq_recvbuf: recv() failed: Connection reset by peer
>pq_recvbuf: unexpected EOF on client connection
>NOTICE:  Message from PostgreSQL backend:
>        The Postmaster has informed me that some other backend died abnormally a
>nd possibly corrupted shared memory.
>        I have rolled back the current transaction and am going to terminate you
>r database system connection and exit.
>        Please reconnect to the database system and repeat your query.
>NOTICE:  Message from PostgreSQL backend:
>        The Postmaster has informed me that some other backend died abnormally a
>nd possibly corrupted shared memory.
>        I have rolled back the current transaction and am going to terminate you
>r database system connection and exit.
>        Please reconnect to the database system and repeat your query.

... and all backends fall down :(

=====================================

At the same time, when I make similar query, but without "having",
all works fine in any cases:

>select calls.uzer,sum((int(calldur)+59)/60),maxdur,sum(callprice),maxprice,sum(int8(inb)),maxinb
> from calls,pppdisab
> where
>   calltime>='01/08/1999'
>   and calls.uzer=pppdisab.uzer
>   and pppdisab.timedisab is NULL
> group by calls.uzer,maxprice,maxdur,maxinb

=====================================

What's the matter?

Best regards,Paul                          mailto:pm@sky.ru




pgsql-sql by date:

Previous
From: David Ouellet
Date:
Subject: Question about arrays
Next
From: "Giovanni B. Stefanoni"
Date:
Subject: rpm 6.5 requires libcurses.so.4?