From: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> |
---|---|
To: | s(at)xss(dot)de, pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Suggestion for docs, section "4.2.3 Subscripts": bounds and base |
Date: | 2025-04-07 08:03:47 |
Message-ID: | 488788bd2526cec7eb175741c010cab2fa24fed4.camel@cybertec.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
On Thu, 2025-04-03 at 18:22 +0000, PG Doc comments form wrote:
> Page: https://www.postgresql.org/docs/17/sql-expressions.html
> Description:
>
> I skimmed over section 4.2 while waiting for a meeting to start and found no
> mention of the following two questions that immediately pop up in my mind
> when subscripts are mentionned:
>
> Are subscripts 0-based or 1-based?
This question is answered in the documentation of the array data types:
https://www.postgresql.org/docs/current/arrays.html
The array subscript numbers are written within square brackets. By default
PostgreSQL uses a one-based numbering convention for arrays, that is, an
array of n elements starts with array[1] and ends with array[n].
> Are slice boundaries inclusive or exclusive?
That becomes clear on the same page:
We can also access arbitrary rectangular slices of an array, or subarrays.
An array slice is denoted by writing lower-bound:upper-bound for one or
more array dimensions. For example, this query retrieves the first item
on Bill's schedule for the first two days of the week:
SELECT schedule[1:2][1:1] FROM sal_emp WHERE name = 'Bill';
schedule
------------------------
{{meeting},{training}}
(1 row)
Admittedly, there is no exact definition, but the example makes clear that
the boundaries are inclusive.
I don't think that we need to repeat that information.
Yours,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | Stefan Schmiedl | 2025-04-07 09:07:10 | Re[2]: Suggestion for docs, section "4.2.3 Subscripts": bounds and base |
Previous Message | PG Doc comments form | 2025-04-06 10:16:30 | generated constraint name |