How to fix set-valued function called in context that cannot accept a set in earlier versions
| От | Andrus |
|---|---|
| Тема | How to fix set-valued function called in context that cannot accept a set in earlier versions |
| Дата | |
| Msg-id | 4336A43AB8A446CEBAF7AFBD2D050292@andrusnotebook обсуждение исходный текст |
| Ответы |
Re: How to fix set-valued function called in context
that cannot accept a set in earlier versions
Re: How to fix set-valued function called in context that cannot accept a set in earlier versions |
| Список | pgsql-general |
In 8.3 code below causes exception
ERROR: set-valued function called in context that cannot accept a set
CONTEXT: PL/pgSQL function "wordwrap" line 21 at RETURN NEXT
How to fix this so that wordwrap works in any PostgreSql 8.x version or at
least in
8.3 and 8.4 ?
Andrus
CREATE OR REPLACE FUNCTION wordwrap(line text, linelen integer)
RETURNS SETOF text as $$
DECLARE
words text[] := string_to_array(line,' ');
i integer;
res text:='';
BEGIN
if trim(line)='' then
return next '';
return;
end if;
for i IN 1 .. array_upper(words,1) LOOP
if length(res)+length(words[i]) > linelen THEN
return next res;
res := '';
END IF ;
if res<>'' then
res := res || ' ';
end if;
res := res || words[i];
end loop;
return next res;
END
$$ LANGUAGE plpgsql;
select wordwrap('fdgdf',10)
В списке pgsql-general по дате отправления: