Re: proposal: fix corner use case of variadic fuctions usage

Pavel Stehule <pavel.stehule@gmail.com>

From: Pavel Stehule <pavel.stehule@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Stephen Frost <sfrost@snowman.net>, Vik Reykja <vikreykja@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2013-01-20T20:10:26Z
Lists: pgsql-hackers, pgsql-general

Attachments

Hello

2013/1/20 Tom Lane <tgl@sss.pgh.pa.us>:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Sat, Jan 19, 2013 at 3:27 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> That's utter nonsense.  Why wouldn't people expect concat(), for
>>> example, to work for large (or even just moderate-sized) arrays?
>
>> /me blinks.
>
>> What does that have to do with anything?  IIUC, the question isn't
>> whether CONCAT() would work for large arrays, but rather for very
>> large numbers of arrays written out as CONCAT(a1, ..., a10000000).
>
> No, the question is what happens with CONCAT(VARIADIC some-array-here),
> which currently just returns the array as-is, but which really ought
> to concat all the array elements as if they'd been separate arguments.
>
> Pavel is claiming it's okay for that to fall over if the array has
> more than 100 elements.  I disagree, not only for the specific case of
> CONCAT(), but with the more general implication that such a limitation
> is going to be okay for any VARIADIC ANY function that anyone will ever
> write.
>

I am sending patch that is based on last Tom's proposal

it missing some small fixes for other variadic "any" functions concat,
concat_ws - I'll send it tomorrow

Regards

Pavel






>                         regards, tom lane