Passing composite type to function fails... - Mailing list pgsql-bugs

From Wilhelm Pakulla
Subject Passing composite type to function fails...
Date
Msg-id 200402041939.04085.wilhelm.pakulla@gmx.de
Whole thread Raw
List 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 by date:

Previous
From: pgsql-bugs@postgresql.org
Date:
Subject: [Magic OnLine] Suppression du Virus: Server Report
Next
From: "PostgreSQL Bugs List"
Date:
Subject: BUG #1073: JDBC "time with time zone"