Thread: Arrays are sorted when using intarray subtraction operator

Arrays are sorted when using intarray subtraction operator

From
Casey & Gina
Date:
I've noticed that when using the `-` operator provided by the intarray extension, it appears to sort the results.
AlthoughI want the results sorted, I'd expect to have to additionally use the `sort` function it provides, as this
behaviorisn't documented.  I don't want to rely on undocumented behavior, although it would simplify my queries to do
so. Is the documentation lacking in this detail, or is it an unintended bug? 

Thanks,
--
Casey


Re: Arrays are sorted when using intarray subtraction operator

From
"David G. Johnston"
Date:
On Tuesday, June 4, 2024, Casey & Gina <cg@osss.net> wrote:
I've noticed that when using the `-` operator provided by the intarray extension, it appears to sort the results.  Although I want the results sorted, I'd expect to have to additionally use the `sort` function it provides, as this behavior isn't documented.  I don't want to rely on undocumented behavior, although it would simplify my queries to do so.  Is the documentation lacking in this detail, or is it an unintended bug?

I would consider it an undocumented effect as to what the resultant array with elements removed looks like.  If you need to ensure you have a sorted array use the sort function.

David J.

"David G. Johnston" <david.g.johnston@gmail.com> writes:
> On Tuesday, June 4, 2024, Casey & Gina <cg@osss.net> wrote:
>> I've noticed that when using the `-` operator provided by the intarray
>> extension, it appears to sort the results.  Although I want the results
>> sorted, I'd expect to have to additionally use the `sort` function it
>> provides, as this behavior isn't documented.  I don't want to rely on
>> undocumented behavior, although it would simplify my queries to do so.  Is
>> the documentation lacking in this detail, or is it an unintended bug?

> I would consider it an undocumented effect as to what the resultant array
> with elements removed looks like.

It's an implementation detail: sorting the values makes it easy to
match up duplicates.

> If you need to ensure you have a sorted
> array use the sort function.

Yeah.  While I'd judge the implementation pretty unlikely to change,
feel free to add an explicit sort call if you feel uncomfortable
about relying on it.

            regards, tom lane