Plperlu function & backticks return value -> truncated?
От | Philippe Lang |
---|---|
Тема | Plperlu function & backticks return value -> truncated? |
Дата | |
Msg-id | 6C0CF58A187DA5479245E0830AF84F42142C54@poweredge.attiksystem.ch обсуждение исходный текст |
Ответы |
Re: Plperlu function & backticks return value -> truncated?
Re: Plperlu function & backticks return value -> truncated? |
Список | pgsql-sql |
Hello, I'm using the following show_users() function in order to retreive in postgresql the output from the unix "ps" command. When run directly from a shell, this code: $ps = `ps -afux | grep postgres`; @fields = split /\n/, $ps; return "{" . join(",", @fields) . "}"; ... runs fine. But when run inside a plperlu function, lines are being truncated after a certain width. Is that a known limitation of plperlu? Or maybe something else? Philippe ------------------------------------------------------------ -- TYPE: line_type ------------------------------------------------------------ CREATE TYPE public.line_type AS ( line text ); ------------------------------------------------------------ -- UTILITY FUNCTION: ps ------------------------------------------------------------ CREATE FUNCTION public.ps() RETURNS text[] AS ' $ps = `ps -afux | grep postgres`; @fields = split /\n/, $ps; return "{" . join(",", @fields) . "}"; ' LANGUAGE 'plperlu' VOLATILE; ------------------------------------------------------------ -- UTILITY FUNCTION: show_users ------------------------------------------------------------ CREATE FUNCTION public.show_users() RETURNS SETOF user_type AS ' DECLARE users text[]; user_rec line_type%ROWTYPE; i int2; BEGIN users = ps(); FOR i IN 1 .. array_upper(users, 1) LOOP user_rec.line = users[i]; RETURN NEXT user_rec; END LOOP; RETURN; END ' LANGUAGE 'plpgsql' VOLATILE; ------------------------------------------------------------ -- MAIN ------------------------------------------------------------ select * from show_users();
В списке pgsql-sql по дате отправления: