Decibel! <[EMAIL PROTECTED]> writes: > On Thu, Aug 16, 2007 at 11:11:49AM +0000, Jens Schicke wrote: >> SELECT ARRAY(SELECT 1 WHERE 1 = 0) IS NULL; -- true
> And just what would you have it return? An array with no elements is by > definition NULL. No, there is a difference: regression=# select null::int4[]; int4 ------ (1 row) regression=# select '{}'::int4[]; int4 ------ {} (1 row) I'm inclined to think that Jens is right and it'd be more consistent to return the latter when the SELECT returns no rows. It'd be a behavioral change more than a bug fix, though, so I would not suggest back-patching it. [ looks at code... ] It looks like the implementation problem is for ExecScanSubPlan to know what the array element type is supposed to be. Normally it finds that out from the sub-select's returned rows; but if there aren't any then it'll have to do something else. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org