On Mon, Jun 19, 2023, at 11:49, jian he wrote: > hashset_to_array function should be strict? > > I noticed hashset_symmetric_difference and hashset_difference handle > null in a different way, seems they should handle null in a consistent > way?
Yes, I agree, they should be consistent. I've thought a bit more on this, and came to the conclusion that I think it would be easiest, safest and least confusing to just mark all functions STRICT. That way, it's the user's responsibility to ensure null operands are not passed to the functions, which is simply a WHERE ... or FILTER (WHERE ...). And if making a mistake and passing, it's better to make the entire result blow up by letting the result be NULL, than to silently ignore the operand or return some true/false value that is questionable. SQL has a quite unique NULL handling compared to other languages, so I think it's better to let the user use the full arsenal of SQL to deal with nulls, rather than trying to shoehorn some null semantics into a set-theoretic system. /Joel