On Wed, May 16, 2018 at 3:20 PM, Robert Haas <robertmh...@gmail.com> wrote: > On Wed, May 16, 2018 at 2:28 PM, David Rowley > <david.row...@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