Search Postgresql Archives

Re: trouble with setof record return

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



brian wrote:
Can anybody spot the problem with this function? Or, how i'm calling it? (it's not clear to me which it is)

CREATE TABLE member (
...
  first_name character varying(64),
  last_name character varying(64),
  organisation character varying(128),
  email character varying(128),
...
);


CREATE OR REPLACE FUNCTION fetcOnlineContacts() RETURNS SETOF record
  AS $$

DECLARE

  member_contact record;

BEGIN
FOR member_contact IN
    EXECUTE 'SELECT DISTINCT ON (m.email)
      m.first_name || '' '' || m.last_name AS name,
      m.organisation, m.email AS address
      FROM member AS m
      WHERE m.email IS NOT NULL
      ORDER BY m.email, m.last_name, m.organisation ASC'
  LOOP
    RETURN NEXT member_contact;
  END LOOP;

  RETURN;
END;
$$
  LANGUAGE plpgsql IMMUTABLE;


test=# SELECT * FROM fetchOnlineContacts() AS (name text, organisation text, address text);
ERROR:  wrong record type supplied in RETURN NEXT
CONTEXT:  PL/pgSQL function "fetchonlinecontacts" line 15 at return next

test=# SELECT * FROM fetchOnlineContacts() AS (name varchar(129), organisation varchar(128), address varchar(128));
ERROR:  wrong record type supplied in RETURN NEXT
CONTEXT:  PL/pgSQL function "fetchonlinecontacts" line 15 at return next

Normally, i declare a type, but this will be a single-use one so a record seemed to be sufficient.

b


Try casting your query cols as TEXT,
eg.
(m.first_name || '' '' || m.last_name)::TEXT AS name,(m.organisation)::TEXT, (m.email)::TEXT AS address


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux