David E. Wheeler wrote:
On Apr 6, 2010, at 4:40 PM, Tom Lane wrote:

I tried this:
try=# create or replace function try() returns void language plperl as $$ spi_prepare('select length($1)', 'unknown');
   $$;
   CREATE FUNCTION
   try=# select try();
   ERROR:  error from Perl function "try": failed to find conversion function 
from unknown to text at line 2.
Why would you think this is useful, considering that plperl has no
concept of SQL data types?  Everything you could pass to
spi_exec_prepared is effectively text, no?

    try=# create or replace function try() returns void language plperl as $$
        spi_prepare('select abs($1)', 'text');
    $$;
    CREATE FUNCTION
    try=# select try();
    ERROR:  error from Perl function "try": function abs(text) does not exist 
at line 2.



Indeed it doesn't. But (as documented) the argument will be passed *from* *perl* as text and converted to the specified type in the glue code. See plperl.c for details.

cheers

andrew


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

Reply via email to