Martin Kalcher <martin.kalcher@aboutsource.net> writes:
> If we go with (1) array_shuffle() and array_sample() should shuffle each
> element individually and always return a one-dimensional array.
> select array_shuffle('{{1,2},{3,4},{5,6}}');
> -----------
> {1,4,3,5,6,2}
> select array_sample('{{1,2},{3,4},{5,6}}', 3);
> ----------
> {1,4,3}
Independently of the dimensionality question --- I'd imagined that
array_sample would select a random subset of the array elements
but keep their order intact. If you want the behavior shown
above, you can do array_shuffle(array_sample(...)). But if we
randomize it, and that's not what the user wanted, she has no
recourse.
Now, if you're convinced that the set of people wanting
sampling-without-shuffling is the empty set, then making everybody
else call two functions is a loser. But I'm not convinced.
At the least, I'd like to see the argument made why nobody
would want that.
regards, tom lane