Thread: running script on the server

running script on the server

From
hamann.w@t-online.de
Date:
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




Re: running script on the server

From
Adrian Klaver
Date:
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


Re: running script on the server

From
John McKown
Date:
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).​


​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

Re: [SOLVED] running script on the server

From
hamann.w@t-online.de
Date:
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