Обсуждение: Checking empty array
Dear all,
What is the correct way to check whether an array is empty?
I have an array which I initialize with '{}' and then do som array_append
under some circonstances. I would like to know whether the array is empty at
the end of the function. I have not found the answer in the help page nor on
the web. I use the keyword isnull but that does not seem to work in all the
cases.
I would appreciate if someone could put this piece of information into the
Postgres documentation.
Here is what I do, in pseudo-code:
myarray varchar[];
myarray := '{}';
FOR ___ LOOP
IF (___) THEN
myarray := array_append(myarray, somestuff);
END IF;
END LOOP;
-- Is my array empty now?
IF (myarray isnull) THEN
__
END IF;
Regards,
Alexis Beuraud
Alexis Beuraud wrote:
> Dear all,
>
> What is the correct way to check whether an array is empty?
> -- Is my array empty now?
> IF (myarray isnull) THEN
An empty array isn't null (unknown), it's empty.
Try enquiring about it's size:
SELECT array_dims('{}'::integer[]) is null;
?column?
----------
t
You could use array_lower/upper instead too.
--
Richard Huxton
Archonet Ltd
2007/10/30, Alexis Beuraud <alexis@siatel.com>:
> Dear all,
>
> What is the correct way to check whether an array is empty?
> I have an array which I initialize with '{}' and then do som array_append
> under some circonstances. I would like to know whether the array is empty at
> the end of the function. I have not found the answer in the help page nor on
> the web. I use the keyword isnull but that does not seem to work in all the
> cases.
> I would appreciate if someone could put this piece of information into the
> Postgres documentation.
>
> Here is what I do, in pseudo-code:
>
> myarray varchar[];
> myarray := '{}';
>
> FOR ___ LOOP
> IF (___) THEN
> myarray := array_append(myarray, somestuff);
> END IF;
> END LOOP;
>
> -- Is my array empty now?
> IF (myarray isnull) THEN
> __
> END IF;
>
IF (array_upper(myarray,1) is null) THEN
....
END IF;
Regards
Pavel Stehule
> Regards,
> Alexis Beuraud
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
Alexis Beuraud wrote: > What is the correct way to check whether an array is empty? > > Here is what I do, in pseudo-code: > > -- Is my array empty now? > IF (myarray isnull) THEN Try this: IF array_lower(myarray, 1) IS NULL THEN ... END IF Yours, Laurenz Albe