Passing composite type to function fails...
| От | Wilhelm Pakulla |
|---|---|
| Тема | Passing composite type to function fails... |
| Дата | |
| Msg-id | 200402041939.04085.wilhelm.pakulla@gmx.de обсуждение |
| Список | pgsql-bugs |
Mahlzeit. Is it a bug or a feature? Wilhelm -- Code -- CREATE TYPE t_test AS ( a INTEGER, b INTEGER ); CREATE FUNCTION f_init1 ( INTEGER ) RETURNS t_test AS ' DECLARE dummy ALIAS FOR $1; local t_test; BEGIN local.a :=3D 1; local.b :=3D 2; RETURN local; END; ' LANGUAGE 'plpgsql' IMMUTABLE; CREATE FUNCTION f_init2 ( t_test ) RETURNS t_test AS ' DECLARE dummy ALIAS FOR $1; local t_test; BEGIN local.a :=3D 1; local.b :=3D 2; RETURN local; END; ' LANGUAGE 'plpgsql' IMMUTABLE; CREATE FUNCTION f_test_the_functions () RETURNS void AS ' DECLARE i INTEGER; t t_test; r t_test; BEGIN -- Using function with INTEGER-parameter i :=3D 1; SELECT INTO r * FROM f_init1( i ); -- This works. -- Using function with composite-type-parameter t.a :=3D 2; t.b :=3D 3; SELECT INTO r * FROM f_init2( t ); -- ERROR: Row =BBt=AB does not exist.= =20 RETURN; END; ' LANGUAGE 'plpgsql' IMMUTABLE; select f_test_the_functions();
В списке pgsql-bugs по дате отправления: