The following bug has been logged online: Bug reference: 1702 Logged by: Jan Behrens Email address: [EMAIL PROTECTED] 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"); ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend