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.

cheers

andrew


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to