Tom Lane wrote:
Richard Huxton <dev@archonet.com> writes:
Tom Lane wrote:
"Sabin Coanda" <[EMAIL PROTECTED]> writes:
I used the function array_to_string, and I found it ignores NULL values, e.g. array_to_string( 'ARRAY[1,NULL,3]', ',' ) returns '1,3'.
Do you have a better idea?

If you're being strict it should presumably return NULL for the whole string. Or you'd need a "coalesce-to-this" parameter.

If the whole array is NULL it would return NULL, but that seems
unhelpful for a single element being NULL ...

It's the least surprising choice though. You'd expect array_to_string() to be a loop doing something like:
  output = output || connector || arr[i]
Of course this will produce NULL if any of the inputs are NULL. Now that might be unhelpful, but that's NULL for you.

All you're doing is (presumably) adding a hidden test to the loop where Sabin seemed to expect COALESCE(arr[i],<something>). I'm not sure either is better across the board.

The problem comes with what <something> should be. You're either looking at a third parameter or perhaps more cleanly you need a coalesce_array(ARRAY,VAL) function which produces an output array where all the null elemts are replaced by VAL.

--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to