Re: GiST seems to drop left-branch leaf tuples
От | Peter Tanski |
---|---|
Тема | Re: GiST seems to drop left-branch leaf tuples |
Дата | |
Msg-id | 4C90DBBA-45E8-463F-851D-587F0D96BD89@raditaz.com обсуждение исходный текст |
Ответ на | GiST seems to drop left-branch leaf tuples (Peter Tanski <ptanski@raditaz.com>) |
Список | pgsql-hackers |
I should correct what I just wrote: the first and last entries in entryvec->vector are invalid. On Nov 23, 2010, at 11:39 AM, Peter Tanski wrote: > Picksplit() seems to be an exceptional case here: the first and last > numbers in entryvec are invalid so > > entryvec->vector[entryvec->n - 1] > > is invalid. All the other GiST code Picksplit() functions use the > same convention. For example, see the btree_gist picksplit > function, at > http://doxygen.postgresql.org/btree__utils__num_8c-source.html#l00241 > > OffsetNumber i, > maxoff = entryvec->n - 1; > > > On Nov 23, 2010, at 10:22 AM, Alvaro Herrera wrote: > >> Excerpts from Peter Tanski's message of mar nov 23 12:00:52 -0300 >> 2010: >> >>> There are checks inside the Picksplit() function for the number of >>> entries: >>> >>> OffsetNumber maxoff = entryvec->n - 1; >>> int n_entries, j; >>> n_entries = Max(maxoff, 1) - 1; >>> >>> j = 0; >>> for (i = FirstOffsetNumber; i < maxoff; i = OffsetNumberNext(i)) { >>> FPrint* v = deserialize_fprint(entv[i].key); >> >> Isn't this off by one? Offset numbers are 1-based, so the maxoff >> computation is wrong. >> >> -- >> Álvaro Herrera <alvherre@commandprompt.com> >> The PostgreSQL Company - Command Prompt, Inc. >> PostgreSQL Replication, Consulting, Custom Development, 24x7 support >
В списке pgsql-hackers по дате отправления: