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"
|
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