On Sun, Jun 25, 2023, at 11:42, Joel Jacobson wrote:
> SELECT hashset_contains('{}'::int4hashset, NULL::int);
>
> would be False, according to the General Rules.
>
...
> Applying the same rules, we'd have to return Unknown (which we represent as
> null) for:
>
> SELECT hashset_contains('{null}'::int4hashset, NULL::int);
>
Aha! I just discovered to my surprise that the corresponding array
queries gives the same result:
SELECT NULL = ANY(ARRAY[]::int[]);
?column?
----------
f
(1 row)
SELECT NULL = ANY(ARRAY[NULL]::int[]);
?column?
----------
(1 row)
I have no more objections; let's stick to the same null semantics as arrays and multisets.
/Joel