Re: [PATCH] Introduce array_shuffle() and array_sample()
От | Tom Lane |
---|---|
Тема | Re: [PATCH] Introduce array_shuffle() and array_sample() |
Дата | |
Msg-id | 1275444.1680558417@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [PATCH] Introduce array_shuffle() and array_sample() (Daniel Gustafsson <daniel@yesql.se>) |
Ответы |
Re: [PATCH] Introduce array_shuffle() and array_sample()
|
Список | pgsql-hackers |
Daniel Gustafsson <daniel@yesql.se> writes: > On 29 Sep 2022, at 21:33, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> I find this behavior a bit surprising: >> >> +SELECT array_dims(array_sample('[-1:2][2:3]={{1,2},{3,NULL},{5,6},{7,8}}'::int[], 3)); >> + array_dims >> +------------- >> + [-1:1][2:3] >> +(1 row) >> >> I can buy preserving the lower bound in array_shuffle(), but >> array_sample() is not preserving the first-dimension indexes of >> the array, so ISTM it ought to reset the first lower bound to 1. > I might be daft but I'm not sure I follow why not preserving here, can you > explain? Because array_sample selects only some of the (first level) array elements, those elements are typically not going to have the same indexes in the output as they did in the input. So I don't see why it would be useful to preserve the same lower-bound index. It does make sense to preserve the lower-order index bounds ([2:3] in this example) because we are including or not including those array slices as a whole. regards, tom lane
В списке pgsql-hackers по дате отправления: