From: Philippe Lang <philippe.lang@attiksystem.ch>
To: pgsql-sql@postgresql.org
Subject: Plperlu function & backticks return value -> truncated?
Date: Wed, 13 Oct 2004 17:07:05 +0200
Message-ID: <6C0CF58A187DA5479245E0830AF84F42142C54@poweredge.attiksystem.ch> (raw)
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();
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: philippe.lang@attiksystem.ch
Subject: Re: Plperlu function & backticks return value -> truncated?
In-Reply-To: <6C0CF58A187DA5479245E0830AF84F42142C54@poweredge.attiksystem.ch>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox