How about representing null array elements with a special-case cast-like
null? Something like {::null}
__
Marc
On Tue, 2005-11-08 at 23:30 -0400, pgsql-hackers-owner@postgresql.org
wrote:
> Date: Tue, 08 Nov 2005 19:21:34 -0500
> From: Tom Lane <tgl@sss.pgh.pa.us>
> To: pgsql-hackers@postgreSQL.org
> Subject: Re: Supporting NULL elements in arrays
> Message-ID: <10097.1131495694@sss.pgh.pa.us>
>
> I wrote:
> > ... the most straightforward thing to do is define an empty element
> > as meaning a NULL. But this might be objected to on a couple of
> grounds:
>
> I just thought of another, potentially fatal objection: it's ambiguous
> whether '{}'::text[] should be taken to mean an empty (zero-length)
> array or an array containing a single NULL element.
>
> For backwards compatibility it should mean an empty array, but then
> there's no way to represent ARRAY(NULL) in data dumps, which won't
> do either.
>
> The only workaround that comes to mind is to allow explicit
> specification of what's meant: '[1:1]{}' would be needed to represent
> the one-null case. Ugly.
>
> Ideas anyone?
>
> regards, tom lane
>