running script on the server

Started by Nonameover 10 years ago4 messagesgeneral
Jump to latest
#1Noname
hamann.w@t-online.de

Hi,

can any of the programming languages (perl, tcl) be used to exec a process on the server
and open files?
The scenario I have in mind would
- copy some fields of a table to an external text file
- have a script generate binary data from the text file
- load that data into a large object
The client would just
select rebuild()

Best regards
Wolfgang Hamann

--

gpg key: 92FCFB25

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Noname (#1)
Re: running script on the server

On 07/28/2015 08:28 PM, hamann.w@t-online.de wrote:

Hi,

can any of the programming languages (perl, tcl) be used to exec a process on the server
and open files?

You are looking for untrusted.

For Python that is the only way it comes, hence plpythonu(ntrusted)

For Perl see here:

http://www.postgresql.org/docs/9.4/interactive/plperl-trusted.html

That is all I know about.

The scenario I have in mind would
- copy some fields of a table to an external text file
- have a script generate binary data from the text file

So what exactly does the above step entail?

Just wondering if it could be done without leaving the database?

- load that data into a large object
The client would just
select rebuild()

Best regards
Wolfgang Hamann

--

gpg key: 92FCFB25

--
Adrian Klaver
adrian.klaver@aklaver.com

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#3John McKown
john.archie.mckown@gmail.com
In reply to: Noname (#1)
Re: running script on the server

On Tue, Jul 28, 2015 at 10:28 PM, <hamann.w@t-online.de> wrote:

Hi,

can any of the programming languages (perl, tcl) be used to exec a process
on the server
and open files?
The scenario I have in mind would
- copy some fields of a table to an external text file
- have a script generate binary data from the text file
- load that data into a large object
The client would just
select rebuild()

​Do you want all of the processing to be done on the server side? You need
to look into creating an _untrusted_ language such as PL/Tclu, plperlu, or
PL/Python (which is always / only untrusted). Those languages allow full
access to the TCL, PERL, or Python language, including running other
processes (which would run under the postgres UNIX id, not the client's
id).​

http://www.postgresql.org/docs/9.4/static/plpython.html
http://www.postgresql.org/docs/9.4/static/plperl-trusted.html
http://www.postgresql.org/docs/9.4/static/pltcl-overview.html

​Just to remind you: THIS CAN BE DANGEROUS TO THE HEALTH OF YOUR SERVER!
Your gun. Your ammo. Your foot. Aim carefully.​

Best regards
Wolfgang Hamann

--

gpg key: 92FCFB25

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

--

Schrodinger's backup: The condition of any backup is unknown until a
restore is attempted.

Yoda of Borg, we are. Futile, resistance is, yes. Assimilated, you will be.

He's about as useful as a wax frying pan.

10 to the 12th power microphones = 1 Megaphone

Maranatha! <><
John McKown

#4Noname
hamann.w@t-online.de
In reply to: Adrian Klaver (#2)
Re: [SOLVED] running script on the server

Adrian Klaver wrote:

On 07/28/2015 08:28 PM, hamann.w@t-online.de wrote:

Hi,

can any of the programming languages (perl, tcl) be used to exec a process on the server
and open files?

You are looking for untrusted.

For Python that is the only way it comes, hence plpythonu(ntrusted)

For Perl see here:

http://www.postgresql.org/docs/9.4/interactive/plperl-trusted.html

That is all I know about.

The scenario I have in mind would
- copy some fields of a table to an external text file
- have a script generate binary data from the text file

So what exactly does the above step entail?

Just wondering if it could be done without leaving the database?

Hi Adrian,
the "untrusted" part seems to be the solution.
The script consists of a perl part - text preprocessing likely to be changed -
as well as a C program that actually builds the blob.
I have a little experience with building postgresql binary modules,
but I would prefer to keep the - tested - program separate.
Copying data from the table and text preprocessing could run in plperl

- load that data into a large object
The client would just
select rebuild()

Best regards
Wolfgang Hamann

--

gpg key: 92FCFB25

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general