BUG #1702: Function returning nested composite types - Mailing list pgsql-bugs

From Jan Behrens
Subject BUG #1702: Function returning nested composite types
Date
Msg-id 20050605151811.71838F0B06@svr2.postgresql.org
Whole thread Raw
List pgsql-bugs
The following bug has been logged online:

Bug reference:      1702
Logged by:          Jan Behrens
Email address:      jan@monso.de
PostgreSQL version: 8.0.3
Operating system:   NetBSD
Description:        Function returning nested composite types
Details:

Following input:

 CREATE TYPE test1 AS (a text, b text);
 CREATE TYPE test2 AS (c test1, d test1);

 CREATE FUNCTION test3 () RETURNS test2
 LANGUAGE 'plpgsql' AS $$
  DECLARE
    result test2;
  BEGIN
    result := ROW (ROW ('1', '2'), ROW ('3', '4'));
    RETURN result;
  END; $$;

 SELECT * FROM test3();


generates the following error:

 ERROR:  row not compatible with its own tupdesc
 CONTEXT:  PL/pgSQL function "test3" line 5 at return


I assume this is a bug, because the source code says:

 if (estate->retval == (Datum) NULL)
 /* should not happen */
 elog(ERROR,
 "row not compatible with its own tupdesc");
[...]
 if (tup == NULL) /* should not happen */
 elog(ERROR,
 "row not compatible with its own tupdesc");

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #1699: Invalid timestamps with timezone and interger timestamps
Next
From: "Dan"
Date:
Subject: BUG #1701: Installer problem w/ encryption