Re: Feature request: include script file into function body - Mailing list pgsql-bugs
| From | Steve White |
|---|---|
| Subject | Re: Feature request: include script file into function body |
| Date | |
| Msg-id | 20110202111808.GA21282@cashmere.aip.de Whole thread Raw |
| In response to | Re: Feature request: include script file into function body (Robert Haas <robertmhaas@gmail.com>) |
| Responses |
Re: Feature request: include script file into function body
Re: Feature request: include script file into function body |
| List | pgsql-bugs |
Hi, Robert,
On 1.02.11, Robert Haas wrote:
>
> Can't you already do it this way:
>
> \set yadda `cat yadda_yadda.py`
> CREATE FUNCTION yadda_yadda() returns text language plpythonu AS
> :'yadda';
>
> I guess it probably won't work on Windows...
>
This would also satisfy my immediate needs...
if only I could get it to work.
I made a file 'yadda_yadda.py' containing only the line:
print 'hello world'
====================================================================
d=# \set yadda `cat yadda_yadda.py`
d=# \echo :yadda
print 'hello world'
====================================================================
So far, so good.
But the :'yadda'; produces an error--it seems the variable yadda isn't
expanded in the presence of the quotes.
====================================================================
d=# CREATE FUNCTION yadda_yadda() returns text language plpythonu AS
:'yadda';
ERROR: syntax error at or near ":"
LINE 2: :'yadda';
====================================================================
Without the quotes, the colon expands the variable, but not into a
string function body:
====================================================================
d=# CREATE FUNCTION yadda_yadda() returns text language plpythonu AS
:yadda;
ERROR: syntax error at or near "print"
LINE 2: print 'hello world';
====================================================================
Just for completeness and blind optimism let's try putting string
delimiters on the outside. The command succeeds but with the wrong
effect.
====================================================================
d=# CREATE OR REPLACE FUNCTION yadda_yadda() returns text language plpythonu AS
$$:yadda$$;
CREATE FUNCTION
cepheids=# \df+ yadda_yadda
List of functions
Schema | Name | Result data type | Argument data types | Type | Volatility | Owner | Language | Source
code| Description
-----------+-------------+------------------+---------------------+--------+------------+----------+-----------+-------------+-------------
astronomy | yadda_yadda | text | | normal | volatile | cepheids | plpythonu | :yadda
|
====================================================================
Please explain.
--
| - - - - - - - - - - - - - - - - - - - - - - - - -
| 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
| - - - - - - - - - - - - - - - - - - - - - - - - -
pgsql-bugs by date: