FYI.
I posted a note couple of days ago about CASE WHEN clause
causing backend termination. I was able to get my hands on
FreeBSD machine and the statement does not break the
backend:
[ PostgreSQL 6.5.3 on i386-unknown-freebsd3.3, compiled by
gcc 2.7.2.3 ]
=> select case when 3=1 then 'rrr'::text else 5 end;
ERROR: CASE/WHEN types 'int4' and 'text' not matched
=>
The same statement on RedHat 5.2 Linux machine breaks the
backend:
[ PostgreSQL 6.5.3 on i586-pc-linux-gnu, compiled by gcc
2.7.2.3 ]
=> select case when 3=1 then 'rrr'::text when 3=2 else 5 end;
NOTICE: Message from PostgreSQL backend:
The Postmaster has informed me that some other backend died abnormally and possibly corrupted shared memory.
I have rolled back the current transaction and am going to terminate your database system connection and exit.
Please reconnect to the database system and repeat your query.
pqFlush() -- backend closed the channel unexpectedly.
This probably means the backend terminated abnormally before or while processing the request.
=> \q
Emils