Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL) - Mailing list pgsql-hackers

From Gavin Flower
Subject Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)
Date
Msg-id 515C781C.8080003@archidevsys.co.nz
Whole thread Raw
In response to Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)
Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)
List pgsql-hackers
On 04/04/13 05:21, Pavel Stehule wrote:


Pavel

ALOGOL 60 was zero based by default, as I remember deliberately setting the lower bound to 1, I managed to avoid PASCAL and I only glanced at ADA.

In Pascal and similar languages (Wirth family) is possible to define lower bound - any value (like PL/pgSQL). Depends on a school - but lot of people used 1.

I remember - it was one argument for in Pascal/C flame war.

Regards

Pavel

[...]

At the time (just over 40 years ago!) I was adamant that arrays should start with an index of one, now I much prefer zero.  Probably I prefer zero in part, because now I understand what is happening at the machine code level, and partly because zero is the default for the main languages I use.

Wasting time on Google (I have 'more' important things I 'should' be doing!), I find ALGOL 60 did not appear to have a default value for the lower index - not only that, but one could make it negative!  see: http://www.csci.csusb.edu/dick/samples/algol60.syntax.html

Anyhow, I think we should standardise on zero as the initial index to be as consistent as practicable.  However, not with a religious zeal at the expense of practical considerations!


Cheers,
Gavin

pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: CREATE EXTENSION BLOCKS
Next
From: Andres Freund
Date:
Subject: Re: [PATCH] Exorcise "zero-dimensional" arrays (Was: Re: Should array_length() Return NULL)