Hi again,

Now that I know what got you all riled, I can propose something that 
might be more satisfactory.  See below.

On  1.02.11, Steve White wrote:
> Hi again, all,
> 
> OK I think I now know what the misunderstanding is.
> 
> > [Please don't top-post.  Rearranged for clarity.]
> > 
> > Steve White <swh...@aip.de> wrote: 
> > > On  1.02.11, Tom Lane wrote:
> > >> Steve White <swh...@aip.de> writes:
> > >>> It would be really nice to have a way to load script (especially
> > >>> Python and Perl) from a separate file into a function body.
> > >> 
> > >> This seems like a security hole, ie, you could use it to read any
> > >> file the backend has access to.
> >  
> > > Isn't the \i command a similar security hole?
> >  
> > That is run by a client program on a client machine.  If that is
> > what you had in mind, a modification to the CREATE FUNCTION syntax
> > is probably not the way to go.  Just to throw a hypothetical out
> > there, were you looking to effectively do a \i inside the string
> > literal which is the function body, picking up a *client-side* file?
> >  
> > That has its own problems, of course, but I'm just trying to get us
> > onto the same page.
> >  
> > -Kevin
> > 
> I guess the "FROM filename" syntax wasn't a great choice, as it suggests
> something completely different from what I was otherwise describing.  
> (In my own defense: I repeatedly qualified the syntax as a suggestion.)
> 
> I *DO NOT MEAN* that a query should run about grabbing files off the
> server, or wherever.
> 
> I meant something like the replacement that happens with the \i command
> in loading SQL, and under similar circumstances, except that somehow 
> non-SQL code is loadad in a function body.
> 
> Again, this would greatly facilitate programming mixed-language
> programming.
> 
Try this instead:

================================================
CREATE OR REPLACE FUNCTION
        myfunc( ... )
RETURNS VOID AS '#PGSQL_IMPORT filename' LANGUAGE PLPYTHONU;
================================================

This would work something like this:
The script interpeter would scan the body code for comments that
start exactly with PGSQL_IMPORT.  Whereever they are found, it would
attempt to open and include the text (failing appropriately if the
file can't be read).

Of course, this is language-dependent, but for any given lanugage,
something like that will work.

What do you think?

-- 
| -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
| Steve White                                             +49(331)7499-202
| E-Science                                        Zi. 27  Villa Turbulenz 
| -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
| Astrophysikalisches Institut Potsdam (AIP)
| An der Sternwarte 16, D-14482 Potsdam
|
| Vorstand: Prof. Dr. Matthias Steinmetz, Peter A. Stolz
|
| Stiftung privaten Rechts, Stiftungsverzeichnis Brandenburg: III/7-71-026
| -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -

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

Reply via email to