When I said "It’s useful that the representation has a deterministic ordering” 
I meant that it makes testing, debugging, and other things easier if executing 
the same query twice is guaranteed to give the same result.

The ARRAY type requires that values come out in the same order that you put 
them in, so we must use a java.util.List.

> On Jul 17, 2026, at 12:01 AM, Andrei Mereuta via dev <[email protected]> 
> wrote:
> 
> Hello,
> 
> Thanks for the reply. I didn't fully follow the reasoning for the order.
> Would appreciate if you could explain.
> 
> 
> Best regards
> Andrew Mereuta
> 
> On Tue, 14 Jul 2026 at 18:14, Julian Hyde <[email protected]> wrote:
> 
>> That line says that if a SQL value has type ARRAY or MULTISET, we will use
>> an implementation that is some subclass of java.util.List. That’s fine.
>> It’s useful that the representation has a deterministic ordering, even if
>> the MULTISET type doesn’t require it. Neither type requires us to eliminate
>> or disallow duplicate values.
>> 
>>> On Jul 14, 2026, at 7:55 AM, Andrei Mereuta via dev <
>> [email protected]> wrote:
>>> 
>>> Dear Calcite Maintainers,
>>> 
>>> I have come across the following line of code
>>> <
>> https://github.com/apache/calcite/blob/2bdc6af448693c81da3e16208b1af2325fee1d2a/core/src/main/java/org/apache/calcite/jdbc/JavaTypeFactoryImpl.java#L259
>>> 
>>> which
>>> basically treats any java set as list. Is there a specific reason for
>> this?
>>> I would like to propose to use a different abstraction, namely
>>> `Collection`. Curious of what you think.
>>> 
>>> Best regards,
>>> Andrew Mereuta
>> 
>> 

Reply via email to