On Tue, Jan 15, 2013 at 1:04 PM, David Fetter <da...@fetter.org> wrote: > On Mon, Jan 14, 2013 at 07:52:56PM -0500, Andrew Dunstan wrote: >> >> On 01/14/2013 07:36 PM, Merlin Moncure wrote: >> >While testing this I noticed that integer based 'get' routines are >> >zero based -- was this intentional? Virtually all other aspects of >> >SQL are 1 based: >> > >> >postgres=# select json_get('[1,2,3]', 1); >> > json_get >> >---------- >> > 2 >> >(1 row) >> > >> >postgres=# select json_get('[1,2,3]', 0); >> > json_get >> >---------- >> > 1 >> >(1 row) >> >> Yes. it's intentional. SQL arrays might be 1-based by default, but >> JavaScript arrays are not. JsonPath and similar gadgets treat the >> arrays as zero-based. I suspect the Json-using community would not >> thank us for being overly SQL-centric on this - and I say that as >> someone who has always thought zero based arrays were a major design >> mistake, responsible for countless off-by-one errors. > > Perhaps we could compromise by making arrays 0.5-based.
Well, I'm not prepared to argue with Andrew in this one. It was surprising behavior to me, but that's sample size one. merlin -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers