On Jan 29, 2011, at 12:27 AM, Alex Hunsaker wrote:
> On Thu, Jan 27, 2011 at 03:38, Alexey Klyukin <alexk@commandprompt.com> wrote:
>> Hi,
>>
>> On Jan 27, 2011, at 9:31 AM, Alex Hunsaker wrote:
>>
>>> Find attached v3 of the patch. changes include:
>>> - fix deep recursion due to accidental reversal of check in encode_array_literal
>>> - add proper support for stringifying composite/row types. I did not
>>> find a good way to quote these from the perl on the fly, so instead we
>>> compute it the same way we used to and store the string inside the new
>>> object along with the array :(.
>>> - misc whitespace and code touchups
>>> <pg_to_perl_arrays_v3.patch.gz>
>>
>>
>> Nice improvement. It passes all the regression tests on my OS X system. I have only a minor suggestion, I think
is_arrayis worth mentioning in the utility functions chapter of the pl/perl documentation, it would be also more clear
touse it in regression tests as opposed to manually checking whether the ref is equal to
'PostgreSQL::InServer::ARRAY'.
>
> Wait a second... Just who is reviewing who's patch? :P
>
Oh, sorry, got confused along the way :)
> Both done in the attached. I also renamed is_array() to
> is_array_ref() for clarity (hopefully).
> <pg_to_perl_arrays_v4.patch.gz>
Thank you.
I've looked at the patch and added a test for arrays exceeding or equal maximum dimensions to check, whether the
recursivefunction won't bring surprises there. I've also added check_stack_depth calls to both split_array and
plperl_hash_from_tuple.Note that the regression fails currently due to the incorrect error reporting in
PostgreSQL, per http://archives.postgresql.org/pgsql-hackers/2011-01/msg02888.php.
The v5 is attached.