Am 18.07.22 um 00:46 schrieb Tom Lane:
>
> This does not look particularly idiomatic, or even type-safe. What you
> should have done was use deconstruct_array to get an array of Datums and
> isnull flags, then shuffled those, then used construct_array to build the
> output.
>
> (Or, perhaps, use construct_md_array to replicate the input's
> precise dimensionality. Not sure if anyone would care.)
>
> regards, tom lane
deconstruct_array() would destroy the arrays dimensions. I would expect
that shuffle() only shuffles the first dimension and keeps the inner
arrays intact.
Martin