RETURNS SETOF primitive returns results in parentheses

Поиск
Список
Период
Сортировка
От Mario Splivalo
Тема RETURNS SETOF primitive returns results in parentheses
Дата
Msg-id 1130330322.7400.45.camel@ekim
обсуждение исходный текст
Ответы Re: RETURNS SETOF primitive returns results in parentheses  (Sean Davis <sdavis2@mail.nih.gov>)
Re: RETURNS SETOF primitive returns results in parentheses  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: RETURNS SETOF primitive returns results in parentheses  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
Список pgsql-sql
Consider this function:

CREATE OR REPLACE FUNCTION php_get_subfield_data_repeating(int4,
"varchar") RETURNS SETOF "varchar" AS
$BODY$
DECLAREaRecordID ALIAS FOR $1;aSubFieldId ALIAS FOR $2;
returnValue record;subFieldNumber char(3);subFieldLetter char(1);

BEGINsubFieldNumber = substr(aSubFieldId, 1, 3);subFieldLetter = substr(aSubFieldId, 4);
FOR returnValue IN SELECT "subfieldValue"::varchar            FROM "records_sub"             WHERE "fieldTag" =
subFieldNumberAND "subfieldTag" = subFieldLetter
 
AND "recordId" = aRecordIdLOOP    RETURN NEXT returnValue;END LOOP;
RETURN;
END
$BODY$ LANGUAGE 'plpgsql' VOLATILE;



Now, when I do this:

biblio3=# select * from php_get_subfield_data_repeating(1,'606a');php_get_subfield_data_repeating1
----------------------------------(Anđeli)(ofsajd)
(2 rows)

I have return values in parentheses. However, if I create a new type:

CREATE TYPE subfield_data_type AS (subfield_data varchar);

And then drop the function and recreate it like this:

CREATE OR REPLACE FUNCTION php_get_subfield_data_repeating(int4,
"varchar") RETURNS SETOF subfield_data_type AS
$BODY$
...

And then when I run the function, the results are ok:

biblio3=# select * from php_get_subfield_data_repeating(1,'606a');subfield_data
---------------Anđeliofsajd
(2 rows)


Am I doing something wrong here? Why do I need to create type with only
one member of type varchar to have results without the parentheses?
Mike

P.S. The subFieldValue field in the records_sub table is of type
varchar(4096).


-- 
Mario Splivalo
Mob-Art
mario.splivalo@mobart.hr

"I can do it quick, I can do it cheap, I can do it well. Pick any two."





В списке pgsql-sql по дате отправления:

Предыдущее
От: Sean Davis
Дата:
Сообщение: Re: SETOF RECORD RETURN VALUE
Следующее
От: Sean Davis
Дата:
Сообщение: Re: RETURNS SETOF primitive returns results in parentheses