Re: arrays as pl/perl input arguments [PATCH]

Alexey Klyukin <alexk@commandprompt.com>

From: Alexey Klyukin <alexk@commandprompt.com>
To: Alex Hunsaker <badalex@gmail.com>
Cc: "David E. Wheeler" <david@kineticode.com>, pgsql-hackers@postgresql.org, Andrew Dunstan <andrew@dunslane.net>
Date: 2011-01-26T19:44:26Z
Lists: pgsql-hackers
Hi,

On Jan 26, 2011, at 8:45 PM, Alex Hunsaker wrote:

> On Sat, Jan 15, 2011 at 15:48, Alex Hunsaker <badalex@gmail.com> wrote:
>> On Wed, Jan 12, 2011 at 13:04, Alexey Klyukin <alexk@commandprompt.com> wrote:
>>> 
>>> On Jan 12, 2011, at 8:52 PM, David E. Wheeler wrote:
>>> 
>>>> On Jan 12, 2011, at 5:14 AM, Alexey Klyukin wrote:
>>>> 
>>>>> You mean packing both a string representation and a reference to a single SV * value?
>>>> 
>>>> Dunno, I'm not a guts guy.
>>> 
>>> Well, neither me (I haven't used much of the guts api there).
>> 
>> Find attached a proof of concept that modifies Alexey's patch to do
>> the above (using the overload example I and others posted).
> [ ... ]
>> Thoughts?  Should I polish this a bit more?  Or do we like the GUC better?
> 
> So its been over a week with no comments. ISTM there were more people
> against adding yet another GUC.  Barring objection ill finish the
> missing parts of the POC patch I posted and submit that.

I've played with that patch just today. I found a problem with it, when I tried to use the array in a string context the backend segfaulted with: "WARNING:  Deep recursion on subroutine "main::encode_array_literal" at -e line 74" just before the segfault. I think the problem is in the regexp check in 'encode_array_literal' (it's obviously reversed comparing with the original one), but it still segfaults after I fixed that.

Other than that, the approach looks good to me, I'm for eliminating the GUC setting in favor of it.

/A
--
Alexey Klyukin
The PostgreSQL Company - Command Prompt, Inc.