Thread
-
can a linux program, running on the client side, generate data to load a temp table ?
dfgpostgres <dfgpostgres3@gmail.com> — 2026-06-19T00:51:36Z
v15.5 on linux I've read about and tested a way for a query which calls a user function which returns a temp table that gets its data from an external program. Example... CREATE OR REPLACE FUNCTION run_linux_script() RETURNS TABLE (script_output text) LANGUAGE plpgsql AS $$ BEGIN -- Create a temporary table for this session CREATE TEMPORARY TABLE IF NOT EXISTS temp_script_results ( output_line text ); -- Truncate in case it was used previously in the same session TRUNCATE temp_script_results; -- Execute the script and insert the output into the table COPY temp_script_results (output_line) FROM PROGRAM '/path/to/my/script/linux_script.pl'; -- Return the results to the calling user RETURN QUERY SELECT output_line FROM temp_script_results; -- Clean up DROP TABLE temp_script_results; END; $$; SELECT * FROM run_linux_script(); It runs, sort of, but fails because it can't find the "linux_script.pl" script because it's looking for it on the server side. My question is about whether or not I can get something like this to run on the client side (where the script can be found). Thanks in Advance :-) -
Re: can a linux program, running on the client side, generate data to load a temp table ?
Tom Lane <tgl@sss.pgh.pa.us> — 2026-06-19T00:56:28Z
dfgpostgres <dfgpostgres3@gmail.com> writes: > My question is about whether or not I can get something like this to run on > the client side (where the script can be found). psql's "\copy ... from program" might help you. That just addresses the data transfer though, the other logic will need to be implemented client-side as well. regards, tom lane
-
Re: can a linux program, running on the client side, generate data to load a temp table ?
Adrian Klaver <adrian.klaver@aklaver.com> — 2026-06-19T01:11:22Z
On 6/18/26 5:51 PM, dfgpostgres wrote: > v15.5 on linux > > My question is about whether or not I can get something like this to run > on the client side (where the script can be found). pl/plperlu?: https://www.postgresql.org/docs/current/plperl-trusted.html > > Thanks in Advance :-) > > -- Adrian Klaver adrian.klaver@aklaver.com
-
Re: can a linux program, running on the client side, generate data to load a temp table ?
dfgpostgres <dfgpostgres3@gmail.com> — 2026-06-19T14:38:25Z
>> psql's "\copy ... from program" might help you. Ya, I've used \copy for copying data in the past. But if I'm not mistaken, the "\copy... from program" runs on the server side. If I'm wrong about that, if there's a client side version of this, I'm all ears ! And FWIW, a future release that has this would be great ! plperlu might work in this case. I need the "untrusted" version because I need to dump a bytea blob out to a file, unzip it, query it (it's a SQLite DB), use the results of the query to load a temp table. So I need to make system calls that write to disk and run external programs. I work in a large corp and made the request to get that up on a DB instance. Thankfully, I already have a superuser role that might be allowed to execute the plperlu script. -dave On Thu, Jun 18, 2026 at 9:11 PM Adrian Klaver <adrian.klaver@aklaver.com> wrote: > On 6/18/26 5:51 PM, dfgpostgres wrote: > > v15.5 on linux > > > > > My question is about whether or not I can get something like this to run > > on the client side (where the script can be found). > > pl/plperlu?: > > https://www.postgresql.org/docs/current/plperl-trusted.html > > > > > Thanks in Advance :-) > > > > > > > -- > Adrian Klaver > adrian.klaver@aklaver.com >
-
Re: can a linux program, running on the client side, generate data to load a temp table ?
Adrian Klaver <adrian.klaver@aklaver.com> — 2026-06-19T14:48:19Z
On 6/19/26 7:38 AM, dfgpostgres wrote: > >> psql's "\copy ... from program" might help you. > Ya, I've used \copy for copying data in the past. But if I'm not > mistaken, the "\copy... from program" runs on the server side. If I'm > wrong about that, if there's a client side version of this, I'm all > ears ! And FWIW, a future release that has this would be great ! It is client side, but is only available in the the psql client: https://www.postgresql.org/docs/current/app-psql.html -- Adrian Klaver adrian.klaver@aklaver.com
-
Re: can a linux program, running on the client side, generate data to load a temp table ?
Adrian Klaver <adrian.klaver@aklaver.com> — 2026-06-19T14:50:10Z
On 6/19/26 7:48 AM, Adrian Klaver wrote: > On 6/19/26 7:38 AM, dfgpostgres wrote: >> >> psql's "\copy ... from program" might help you. >> Ya, I've used \copy for copying data in the past. But if I'm not >> mistaken, the "\copy... from program" runs on the server side. If I'm >> wrong about that, if there's a client side version of this, I'm all >> ears ! And FWIW, a future release that has this would be great ! > > It is client side, but is only available in the the psql client: > > https://www.postgresql.org/docs/current/app-psql.html Forgot to add to previous post: "Performs a frontend (client) copy. This is an operation that runs an SQL COPY command, but instead of the server reading or writing the specified file, psql reads or writes the file and routes the data between the server and the local file system. This means that file accessibility and privileges are those of the local user, not the server, and no SQL superuser privileges are required." > > > -- Adrian Klaver adrian.klaver@aklaver.com