Обсуждение: Empty array IS NULL?
Hi,
is the empty array representable in PostgreSQL, and is it
distinguishable from NULL?
oocms=# SELECT ARRAY[1, 2];array
-------{1,2}
(1 запись)
oocms=# SELECT '{1, 2}'::INT[];int4
-------{1,2}
(1 запись)
oocms=# SELECT ARRAY[];
ERROR: syntax error at or near "]" at character 14
oocms=# SELECT '{}'::INT[];int4
------{}
(1 запись)
oocms=# SELECT ARRAY(SELECT 1 UNION SELECT 2);?column?
----------{1,2}
(1 запись)
oocms=# SELECT ARRAY(SELECT 1 WHERE FALSE);?column?
----------
(1 запись)
--
Markus Bertheau <twanger@bluetwanger.de>
Markus Bertheau wrote:
> is the empty array representable in PostgreSQL, and is it
> distinguishable from NULL?
Yes, and yes.
regression=# select '{}'::int[]; int4
------ {}
(1 row)
regression=# select NULL::int[]; int4
------
(1 row)
Since NULL array elements are not currently supported, attempting to
construct an array with a NULL element results in NULL, not an empty array.
Joe
В Пнд, 28.06.2004, в 18:26, Joe Conway пишет: > Markus Bertheau wrote: > > is the empty array representable in PostgreSQL, and is it > > distinguishable from NULL? > > Yes, and yes. > > Since NULL array elements are not currently supported, attempting to > construct an array with a NULL element results in NULL, not an empty array. Thanks. How do I specify an empty array with the standard syntax? -- Markus Bertheau <twanger@bluetwanger.de>
Markus Bertheau wrote:
> How do I specify an empty array with the standard syntax?
>
Actually, up until the 7.4 release, the array literal syntax was the
*only* syntax (i.e. '{...}'). The newer array constructor expression
(i.e. ARRAY[...]) does not yet support creating empty arrays -- there
are some non-trivial technical difficulties to be solved. Unfortunately
that won't change in the upcoming 7.5 either :( -- perhaps for 7.6.
Joe
Markus Bertheau wrote:
> How do I specify an empty array with the standard syntax?
Actually, up until the 7.4 release, the array literal syntax was the
*only* syntax (i.e. '{...}'). The newer array constructor expression
(i.e. ARRAY[...]) does not yet support creating empty arrays -- there
are some non-trivial technical difficulties to be solved. Unfortunately
that won't change in the upcoming 7.5 either :( -- perhaps for 7.6.
Joe
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to
majordomo@postgresql.org)
Markus Bertheau <twanger@bluetwanger.de> writes: > oocms=# SELECT ARRAY(SELECT 1 WHERE FALSE); > ?column? > ---------- > This one seems strange to me. Shouldn't it result in an empty array? -- greg