On Tue, Oct 11, 2005 at 08:40:21PM -0400, Andrew Dunstan wrote:
> 
> I propose to add the following to the plperl docs, following recent 
> problems.
> 
> comments?

Examples of each and how they'd break would be good.

Cheers,
D
> 
> cheers
> 
> andrew
> 
> 
> Index: plperl.sgml
> ===================================================================
> RCS file: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v
> retrieving revision 2.45
> diff -c -r2.45 plperl.sgml
> *** plperl.sgml 24 Aug 2005 19:16:49 -0000      2.45
> --- plperl.sgml 12 Oct 2005 00:36:33 -0000
> ***************
> *** 53,64 ****
>      # PL/Perl function body
>  $$ LANGUAGE plperl;
>  </programlisting>
> !    The body of the function is ordinary Perl code. A PL/Perl function must
>     always return a scalar value.  You can return more complex structures
>     (arrays, records, and sets) by returning a reference, as discussed 
> below.
>     Never return a list.
>    </para>
> 
>     <para>
>      The syntax of the <command>CREATE FUNCTION</command> command requires
>      the function body to be written as a string constant.  It is usually
> --- 53,76 ----
>      # PL/Perl function body
>  $$ LANGUAGE plperl;
>  </programlisting>
> !    The body of the function is ordinary Perl code. In fact, the PL/Perl
> !    glue code wraps it inside a Perl subroutine. A PL/Perl function must
>     always return a scalar value.  You can return more complex structures
>     (arrays, records, and sets) by returning a reference, as discussed 
> below.
>     Never return a list.
>    </para>
> 
> +    <note>
> +       <para>
> +        The use of named nested subroutines is dangerous in Perl, 
> especially if
> +        they refer to lexical variables in the enclosing scope. Because 
> a PL/Perl
> +        function is wrapped in a subroutine, any named subroutine you 
> create will
> +        be nested. In general, it is far safer to create anonymous 
> subroutines
> +        which you call via a coderef. See the <literal>perldiag</literal>
> +        man page for more details.
> +       </para>
> +    </note>
> +
>     <para>
>      The syntax of the <command>CREATE FUNCTION</command> command requires
>      the function body to be written as a string constant.  It is usually
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>               http://www.postgresql.org/docs/faq

-- 
David Fetter [EMAIL PROTECTED] http://fetter.org/
phone: +1 510 893 6100   mobile: +1 415 235 3778

Remember to vote!

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to