Thread: BUG #5777: Server crash with function out params returned as record

BUG #5777: Server crash with function out params returned as record

From
"Nate Carson"
Date:
The following bug has been logged online:

Bug reference:      5777
Logged by:          Nate Carson
Email address:      nate1001@gmail.com
PostgreSQL version: 9.0.1
Operating system:   windows 7
Description:        Server crash with function out params returned as record
Details:

create or replace function test(out integer, out numeric)
    as $$
    select (1, 2.1)
    $$
    language sql;

test=# select * from test();
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>

LOG:  server process (PID 3336) was terminated by exception 0xC0000005
HINT:  See C include file "ntstatus.h" for a description of the hexadecimal
value.
LOG:  terminating any other active server processes


When I chanage the function body to:
    select 1, 2.1
it works as expected.


test=# select version();
 PostgreSQL 9.0.1 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 4.5.0,
32-bit

Re: BUG #5777: Server crash with function out params returned as record

From
Tom Lane
Date:
"Nate Carson" <nate1001@gmail.com> writes:
> create or replace function test(out integer, out numeric)
>     as $$
>     select (1, 2.1)
>     $$
>     language sql;

> test=# select * from test();
> server closed the connection unexpectedly

Huh ... seems that's been broken since 8.1.  Surprising nobody noticed
before.  Thanks for the report!

            regards, tom lane