Re: "The tuple structure of a not-yet-assigned record is indeterminate." - Mailing list pgsql-general

From A. Kretschmer
Subject Re: "The tuple structure of a not-yet-assigned record is indeterminate."
Date
Msg-id 20080630123917.GI13270@a-kretschmer.de
Whole thread Raw
In response to Re: "The tuple structure of a not-yet-assigned record is indeterminate."  ("A B" <gentosaker@gmail.com>)
Responses Re: "The tuple structure of a not-yet-assigned record is indeterminate."  ("A B" <gentosaker@gmail.com>)
List pgsql-general
am  Mon, dem 30.06.2008, um 14:25:30 +0200 mailte A B folgendes:
> I did read the select line also, and
> select * from foo() as (a integer, b integer, c integer);
> gives me unfortunatly the error
> ERROR:  record "retval" is not assigned yet
> DETAIL:  The tuple structure of a not-yet-assigned record is indeterminate.

Okay, right, i see. You can rewrite your function using IN/OUT-parameters.


For instance, your function:

CREATE OR REPLACE FUNCTION foo() RETURNS SETOF RECORD AS $$
DECLARE
        retval RECORD;
BEGIN
     some loop
           retval.jd := tmp.id;
           retval.d2 := _c2;
           retval.d3 := _c3;
           RETURN NEXT retval;
    end loop
return;
END;


rewrite to:


CREATE OR REPLACE FUNCTION foo(OUT jd int, OUT d2 int, OUT d3 int) RETURNS SETOF RECORD AS $$
BEGIN
  some loop
    jd := tmp.id;
    d2 := _c2;
    d3 := _c3;
    RETURN NEXT;
  end loop;
return;
END;



*untested*.


Hope that helps, Andreas
--
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
NGnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net

pgsql-general by date:

Previous
From: Dimitri Fontaine
Date:
Subject: Re: php + postgresql website ?
Next
From: Sam Mason
Date:
Subject: Re: Advice Wanted on Selecting Multi-row Data Requests in 10-Row Blocks