On Wed, May 16, 2018 at 3:20 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Wed, May 16, 2018 at 2:28 PM, David Rowley
> <david.rowley@2ndquadrant.com> wrote:
>> Thanks for committing. Although, I disagree with your tweak:
>>
>> + * 1-based index into the *pds list.
>>
>> I think that's making the same mistake as the last comment did. You
>> think it's 1-based because the index is being set with list_length
>> rather than list_length - 1, but it can do that simply because the
>> item has not been added to the list yet.
>
> Uh, maybe I've got that wrong. We can say 0-based instead if that's
> right. I just didn't want to say that in one case it was 0-based and
> in the other case make no mention.
Hang on, I can't be wrong (famous last words). If the negative
indexes were 0-based, that would mean that the first element of the
list was referenced by -0, which obviously can't be true, because 0 =
-0. In other words, we can't be using 0-based indexing for both the
positive and the negative values, because then 0 itself would be
ambiguous. It's got to be that -1 is the first element of the *pds
list, which means -- AFAICS, anyway -- that the way I phrased it is
correct.
Unless the indexing system actually can't reference the first element
of *pds, and -1 means the second element. But then I think we need a
more verbose explanation here.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company