Joe,

First off, pardon me if these are known things which are already fixed in CVS.  
Also, let me again thank you for all the work on Arrays in 7.4; I've been 
able to tremendously simplify quite a number of procedures in my databases 
thanks to the new array support.

Now, the issue:
I'm noticing some inconsistent behavior regarding empty arrays and IS NULL 
status.    For example:

net_test=# select array_upper('{}'::INT[], 1);
 array_upper
-------------

(1 row)

net_test=# select array_upper('{}'::INT[], 1) IS NULL;
 ?column?
----------
 t
(1 row)

net_test=# select '{}'::INT[] IS NULL;
 ?column?
----------
 f
(1 row)

I feel that this is confusing; an empty array should be considered NULL 
everywhere or nowhere.     For that matter, the new array declaration syntax 
does not support empty arrays:

net_test=# select ARRAY[ ]::INT[];
ERROR:  syntax error at or near "]" at character 15
net_test=# select ARRAY[]::INT[];
ERROR:  syntax error at or near "]" at character 14
net_test=#

-- 
-Josh Berkus
 Aglio Database Solutions
 San Francisco


---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to