Re: arrays as pl/perl input arguments [PATCH]
Alex Hunsaker <badalex@gmail.com>
From: Alex Hunsaker <badalex@gmail.com>
To: Alexey Klyukin <alexk@commandprompt.com>
Cc: "David E. Wheeler" <david@kineticode.com>, pgsql-hackers@postgresql.org, Andrew Dunstan <andrew@dunslane.net>
Date: 2011-01-26T20:08:03Z
Lists: pgsql-hackers
On Wed, Jan 26, 2011 at 12:44, Alexey Klyukin <alexk@commandprompt.com> wrote: > 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), Yeah, I noticed that after I sent it out :(. > but it still segfaults after I fixed that. I seem to recall fixing this post email as well... Can you provide the function that broke so I can double check? (Or was it part of the regression test?) Thanks for taking the time to play with it.