array_cat null reasoning

Started by Kevin Fieldover 17 years ago2 messagesgeneral
Jump to latest
#1Kevin Field
kevinjamesfield@gmail.com

Hi,

I'm a bit confused as to the logic of nulls. I understand that null
is to represent an unknown value. So it makes sense that 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';

...returning NULL makes sense. But then why doesn't

select array_cat(null::integer[], '{3}'::integer[]);

...also return null? Somehow it's known what the result is when
combining an unknown array with a known one, but not when combining an
unknown text with a known one? Doesn't this seem inconsistent? If it
does seem inconsistent, should I be careful how to code because this
might change in the future?

Thanks,
Kev

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Kevin Field (#1)
Re: array_cat null reasoning

Kev <kevinjamesfield@gmail.com> writes:

... should I be careful how to code because this
might change in the future?

Probably. We couldn't even handle nulls within arrays until a release
or two ago. I wouldn't be surprised if someone comes up with a proposal
to make null-array handling a bit more consistent in the future.

regards, tom lane