NULL concatenated to anything is NULL. Try this: UPDATE test SET myint = COALESCE(myint || ARRAY[123], ARRAY[123]) WHERE id = 1; Or: UPDATE test SET myint = CASE WHEN myint IS NULL THEN ARRAY[123] ELSE myint || ARRAY[123] END WHERE id = 1; An empty array can be displayed as ARRAY[NULL], but defaults to type TEXT. An explicit empty integer array would be ARRAY[NULL]::INTEGER[]. NULL arrays are not handled entirely consistently, though. Sometimes it acts like a NULL, and sometimes it acts like a container of NULL. -- Brandon Aiken CS/IT Systems Engineer -----Original Message----- From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of stroncococcus Sent: Wednesday, December 06, 2006 5:43 PM To: pgsql-general@xxxxxxxxxxxxxx Subject: [GENERAL] concatenation operator || with "null" array Hello! When I try to fill an array with the concatenation operator, like UPDATE test SET myint = myint || ARRAY[123] WHERE id = 1 that before that statement was null, then it is also null after that statement. But if there is already something in that array and I execute that statement, then everything works fine and one can find the 123 there, too. Is this the normal behavior? Is there a way to "concatenate" to null arrays as well, or do I have to test this inside my script, and if it is null fill it normal for the first time? Best regards, Kai ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match