Re: Insertion of geometric type column with column[0], column[1] and etc.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Marcelo Zabani <mzabani(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Insertion of geometric type column with column[0], column[1] and etc.
Date: 2010-10-05 04:11:04
Message-ID: 14397.1286251864@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> Yeah, but isn't the current behavior awfully flaky?

The reason the particular case acts so oddly is there's no such thing as
half a point: you can't have a point with one null and one non-null
component. So there's no way to construct the value incrementally,
which is what that syntax implies doing. What actually happens is that
"foo[0] := something" results in a NULL point if the initial value of
foo was NULL, and then the same again for "foo[1] := something".
I suppose we could have these cases throw an error instead, but that's
not a lot better from the standpoint of functionality ... and I
certainly don't wish to try to introduce partially-null point values.

In general this shows the limitations of trying to pretend that complex
data types are arrays. Even if you can manage to find some kind of
mapping, it's not necessarily one-to-one, nor are all the values that
might be valid from one viewpoint valid from the other. So I've got no
enthusiasm for the OP's proposal.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2010-10-05 04:18:50 Re: is sync rep stalled?
Previous Message Fujii Masao 2010-10-05 04:09:56 Re: streaming replication question