The following bug has been logged online:
Bug reference: 5314
Logged by: Oleg
Email address: serovov@gmail.com
PostgreSQL version: 8.3/8.4
Operating system: any
Description: Error in nested composite types in plpgsql.
Details:
Here is it reproduce code:
It works only, when procedure is plpgsql, with sql works fine.
ROLLBACK;
BEGIN;
CREATE TABLE bug_level_tree(
field BIGINT
);
CREATE TABLE bug_level_two(
field bug_level_tree
);
CREATE TABLE bug_level_one(
id BIGINT,
field bug_level_two
);
CREATE FUNCTION bug_procedure(in_row bug_level_one) RETURNS text AS $$
BEGIN
-- void
SELECT 1/0;
END;
$$ LANGUAGE plpgsql;
-- All okey
SELECT '(1,)'::bug_level_one;
-- Throws error
SELECT bug_procedure('(1,)');
-- ERROR: cannot assign non-composite value to a row variable
CONTEXT: PL/pgSQL function "bug_procedure" while storing call arguments
into local variables