Re: Use UNKNOWN with PL/Perl spi_prepare()? - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Use UNKNOWN with PL/Perl spi_prepare()?
Date
Msg-id 4BBBC9EC.6020305@dunslane.net
Whole thread Raw
In response to Re: Use UNKNOWN with PL/Perl spi_prepare()?  ("David E. Wheeler" <david@kineticode.com>)
Responses Re: Use UNKNOWN with PL/Perl spi_prepare()?  ("David E. Wheeler" <david@kineticode.com>)
List pgsql-hackers

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



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Use UNKNOWN with PL/Perl spi_prepare()?
Next
From: "David E. Wheeler"
Date:
Subject: Re: Use UNKNOWN with PL/Perl spi_prepare()?