Thread: need help in understanding gist function

need help in understanding gist function

From
"sharath kumar"
Date:
I need help in understanding certain things in gist ...<br />1. What is the functionality of gistplacetopage() function
ingist.c ?Can you please give me detail description of this function.<br />2. I have left and right buffers with values
thatI have filled. Now, how do I write these changes(buffers) permanently into gistentry pages? <br /><br />Thanks<br
/>Sharat<br/> 

Re: need help in understanding gist function

From
Teodor Sigaev
Date:
> 1. What is the functionality of gistplacetopage() function in gist.c 
> ?Can you please give me detail description of this function.

It tries to place index tuple on page. If page hasn't enough space, 
gistplacetopage splits page on two or more pages. Number of page to be splitted 
depends, basically, on quality of user-defined picksplit and distribution of 
tuple's length.

> 2. I have left and right buffers with values that I have filled. Now, 
> how do I write these changes(buffers) permanently into gistentry pages?
Sorry, I don't understand your questions. Where you have left and right buffers?
Real write are produced by bgwriter process, in backend we should just mark 
byffer as dirty with a help of  MarkBufferDirty call.



-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/