Re: [PATCH] Introduce array_shuffle() and array_sample()
Martin Kalcher <martin.kalcher@aboutsource.net>
From: Martin Kalcher <martin.kalcher@aboutsource.net>
To: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>
Cc: Andrew Dunstan <andrew@dunslane.net>,
John Naylor <john.naylor@enterprisedb.com>,
Thomas Munro <thomas.munro@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-07-19T20:20:57Z
Lists: pgsql-hackers, pgsql-general
Attachments
- 0001-Introduce-array_shuffle-and-array_sample.patch (text/x-patch) patch 0001
Am 19.07.22 um 16:20 schrieb Tom Lane:
>
> So I withdraw my original position. These functions should just
> shuffle or select in the array's first dimension, preserving
> subarrays. Or else be lazy and reject more-than-one-D arrays;
> but it's probably not that hard to handle them.
>
Here is a patch with dimension aware array_shuffle() and array_sample().
If you think array_flatten() is desirable, i can take a look at it.
Maybe a second parameter would be nice to specify the target dimension:
select array_flatten(array[[[1,2],[3,4]],[[5,6],[7,8]]], 1);
-------------------
{1,2,3,4,5,6,7,8}
select array_flatten(array[[[1,2],[3,4]],[[5,6],[7,8]]], 2);
-----------------------
{{1,2,3,4},{5,6,7,8}}
Martin
Commits
-
Add array_sample() and array_shuffle() functions.
- 888f2ea0a81f 16.0 landed
-
Use a separate random seed for SQL random()/setseed() functions.
- 6645ad6bdd81 12.0 cited