Thread: Re: intarray sort returns wrong result

Re: intarray sort returns wrong result

From
Tom Lane
Date:
Junwang Zhao <zhjwpku@gmail.com> writes:
> While working on general array sort[1], I played with intarray
> extension, found a bug (or at least inconsistency) when sorting
> multidimensional int array:

> create extension intarray;
> select sort('{{1,2,3}, {2,3,4}}');

> this returns {{1,2,2},{3,3,4}} instead of {{1,2,3},{2,3,4}}

This is documented, isn't it?

    Many of these operations are only sensible for one-dimensional
    arrays. Although they will accept input arrays of more dimensions,
    the data is treated as though it were a linear array in storage
    order.

I don't think anyone will thank us for changing intarray's behavior
many years after the fact.

            regards, tom lane



Re: intarray sort returns wrong result

From
Junwang Zhao
Date:
On Tue, Nov 12, 2024 at 9:13 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Junwang Zhao <zhjwpku@gmail.com> writes:
> > While working on general array sort[1], I played with intarray
> > extension, found a bug (or at least inconsistency) when sorting
> > multidimensional int array:
>
> > create extension intarray;
> > select sort('{{1,2,3}, {2,3,4}}');
>
> > this returns {{1,2,2},{3,3,4}} instead of {{1,2,3},{2,3,4}}
>
> This is documented, isn't it?
>
>     Many of these operations are only sensible for one-dimensional
>     arrays. Although they will accept input arrays of more dimensions,
>     the data is treated as though it were a linear array in storage
>     order.
>

I did not notice this statement, my bad 😞

> I don't think anyone will thank us for changing intarray's behavior
> many years after the fact.
>

Agreed. Sorry for the noise.

>                         regards, tom lane



--
Regards
Junwang Zhao