Skip site navigation (1) Skip section navigation (2)

Bug with function returning composite types.

From: Kyle Butt <kylebutt(at)gmail(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Bug with function returning composite types.
Date: 2009-03-09 14:43:56
Message-ID: 20090309144356.GB32830@North.cfl.rr.com (view raw or flat)
Thread:
Lists: pgsql-bugs
Functions that return composite types are called more times than expected.

Example script:
---------------
begin;

create table composite_types_test (
    a integer,
    b integer,
    c integer,
    d integer,
    e integer,
    f integer,
    g integer,
    h integer,
    i integer,
    j integer
);

insert into composite_types_test values (0,1,2,3,4,5,6,7,8,9);

create function bug_function () returns composite_types_test
volatile
language plpgsql
as  $$
declare r composite_types_test;
begin
    select * into r from composite_types_test;
    raise notice 'in bug_function';
    return r;
end;
$$;

select bug_function();

select (bug_function()).*;
rollback;
---------------

Example Output:
---------------
BEGIN
CREATE TABLE
INSERT 0 1
CREATE FUNCTION
psql:sql/bug_example.sql:30: NOTICE:  in bug_function
     bug_function      
-----------------------
 (0,1,2,3,4,5,6,7,8,9)
(1 row)

psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
psql:sql/bug_example.sql:32: NOTICE:  in bug_function
 a | b | c | d | e | f | g | h | i | j 
---+---+---+---+---+---+---+---+---+---
 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
(1 row)

ROLLBACK
---------------

Kyle Butt

Responses

pgsql-bugs by date

Next:From: Kevin GrittnerDate: 2009-03-09 15:03:34
Subject: Re: Bug with function returning composite types.
Previous:From: Gregory StarkDate: 2009-03-08 17:24:18
Subject: Re: (some) Indexes ignored after long-running UPDATE and REINDEX at the same time (8.3.6)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group