On Jan 12, 2011, at 1:07 AM, David E. Wheeler wrote: > On Jan 11, 2011, at 2:25 PM, Alexey Klyukin wrote: > >> Hello, >> >> Here's the patch that improves handling of arrays as pl/perl function input >> arguments, converting postgres arrays of arbitrary dimensions into perl array >> references. > > Awesome! I've wanted this for *years*. > >> It includes regression tests and a documentation changes, and it >> builds and runs successfully on my mac os x and linux boxes. To maintain >> compatibility with existing pl/perl code a new variable, >> plperl.convert_array_arguments (better name?), is introduced. Its default >> value is false, when set to true it triggers the new behavior, i.e. > > Have you considered instead passing an array-based object with is string > overloading designed to return the pg array string format? That would make > for nice, transparent compatibility without the need for a GUC.
You mean packing both a string representation and a reference to a single SV * value? I haven't considered that (lack of extensive perlgus-foo) although I think that's an interesting idea. One drawback would be that it would require both conversion to a string format and to a perl reference, performing unnecessary actions during every time arrays are passed to a pl/perl function. If there is a strong dislike of the proposed 'compatibility' GUC option - I think I can change the existing patch to incorporate array string representation into the reference-holding SV quite easily. /A -- Alexey Klyukin The PostgreSQL Company - Command Prompt, Inc. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers