Re: Yet another fast GiST build
От | Peter Eisentraut |
---|---|
Тема | Re: Yet another fast GiST build |
Дата | |
Msg-id | 5b3d72ba-2522-5706-49ba-70dd90c69d3c@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: Yet another fast GiST build (Heikki Linnakangas <hlinnaka@iki.fi>) |
Ответы |
Re: Yet another fast GiST build
|
Список | pgsql-hackers |
On 2021-01-12 14:49, Heikki Linnakangas wrote: >>>> I suggest calling BuildIndexValueDescription() from your own custom >>>> debug instrumentation code. >>> Thanks for the hint, Peter! >>> This function does exactly what I want to do. But I have no Relation inside gist_page_items(bytea) function... probably,I'll add gist_page_items(relname, blockno) overload to fetch keys. >> >> PFA patch with implementation. > > I did a bit of cleanup on the function signature. The .sql script > claimed that gist_page_items() took bytea as argument, but in reality it > was a relation name, as text. I changed it so that it takes a page image > as argument, instead of reading the block straight from the index. > Mainly to make it consistent with brin_page_items(), if it wasn't for > that precedence I might've gone either way on it. I noticed this patch while working on another patch for pageinspect [0], and this one appears to introduce a problem similar to the one the other patch attempts to fix: The "itemlen" output parameters are declared to be of type smallint, but the underlying C data is of type uint16 (OffsetNumber). I don't know the details of gist enough to determine whether overflow is possible here. If not, perhaps a check or at least a comment would be useful. Otherwise, these parameters should be of type int in SQL. [0]: https://www.postgresql.org/message-id/09e2dd82-4eb6-bba1-271a-d2b58bf6c71f@enterprisedb.com
В списке pgsql-hackers по дате отправления: