Kevin Field wrote:
> Section 9.2 in the docs say, 'The ordinary comparison operators yield null
> (signifying "unknown") when either input is null.' This applies to other
> operators too. For example, the result of tacking an unknown value onto a
> known one is unknown, because you don't know what exactly you just tacked
> on. So
>
> select null::text || 'hello';
>
> ...returns NULL, which makes sense. But then this
>
> select array_cat(null::integer[], '{3}'::integer[]);
>
> ...doesn't return NULL, which it should, for consistency.
Doesn't make sense to me either. I found that this was changed between
8.1 (where it returns null) and 8.2, but I find nothing in the
respective release notes or commit messages about this change. Tom?