On 02/03/2011 01:20 PM, Andrew Dunstan wrote:
- Every existing plperl function that takes arrays is going to get
slower due to the overhead of parsing the string and allocating the
array and all its elements.
Well, per my understanding of Alex changes, the string parsing is
not invoked
unless requested by referencing the array in a string context.
Normally, onle
plperl_ref_from_pg_array will be invoked every time the function is
called
with an array argument, which would take little time to convert the
PostgreSQL
internal array representation (not a string) to the perl references,
but that's
no different from what is already done with composite type
arguments, which
are converted to perl hash references on every corresponding
function call.
I'd missed that it was using the internal array representation (obvious
in hindsight) but there's still a significant cost in allocating the SVs
that won't be used by existing code. Though I agree it's of the same
order as for composite types.
Well, the question seems to be whether or not it's a reasonable price
to pay. On the whole I'm inclined to think it is, especially when it
can be avoided by updating your code, which will be a saving in
fragility and complexity as well.
Tim,
do you till have concerns about this, or are you happy for us to move
ahead on it?
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers