In the examples I've seen, in the consistent method we have:

  if (GIST_LEAF(entry)) [...]

but in compress we have:

  if (entry->leafkey) [...]

I can see what the latter's doing, but I'm not sure what GIST_LEAF
does, or why you'd want to use it.

Also, I noticed this in src/backend/access/gist:

  static void gistcentryinit(GISTSTATE *giststate, int nkey,
                             GISTENTRY *e, Datum k,
                             Relation r, Page pg,
                             OffsetNumber o, int b, bool l, bool isNull);

and later (in gistPageAddItem):

	gistcentryinit(giststate, 0, &tmpcentry, dentry->key, r, page,
				   offsetNumber, dentry->bytes, FALSE);

Isn't the call missing the "isNull" parameter?

-- 
Itai Zukerman  <http://www.math-hat.com/~zukerman/>

Fri, 28 Feb 2003 07:13:27 -0500
Itai Zukerman <zukerman@math-hat.com>
GIST_LEAF vs. leaf_key; gist?entryinit
Itai Zukerman <zukerman@math-hat.com> writes:
> and later (in gistPageAddItem):
> 	gistcentryinit(giststate, 0, &tmpcentry, dentry->key, r, page,
> 				   offsetNumber, dentry->bytes, FALSE);
> Isn't the call missing the "isNull" parameter?

I was just wondering whether GIST_PAGEADDITEM is defined or not.
Evidently not, because that code wouldn't get past gcc.

Anyone know when that #define symbol was introduced?  Has the
GIST_PAGEADDITEM code *ever* worked?

			regards, tom lane

Fri, 28 Feb 2003 09:35:15 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: GIST_LEAF vs. leaf_key; gist?entryinit 
gistPageAddItem doesn't used. Look at mail archive, it was a discussion about
keep thes or not. Shortly: gistPageAddItem suppose to recompress entry, but we 
can't
find any reason to do it.  One more - gistPageAddItem works only with
single-key indexes.

Itai Zukerman wrote:
> In the examples I've seen, in the consistent method we have:
> 
>   if (GIST_LEAF(entry)) [...]
> 
> but in compress we have:
> 
>   if (entry->leafkey) [...]
> 
> I can see what the latter's doing, but I'm not sure what GIST_LEAF
> does, or why you'd want to use it.
> 
> Also, I noticed this in src/backend/access/gist:
> 
>   static void gistcentryinit(GISTSTATE *giststate, int nkey,
>                              GISTENTRY *e, Datum k,
>                              Relation r, Page pg,
>                              OffsetNumber o, int b, bool l, bool isNull);
> 
> and later (in gistPageAddItem):
> 
> 	gistcentryinit(giststate, 0, &tmpcentry, dentry->key, r, page,
> 				   offsetNumber, dentry->bytes, FALSE);
> 
> Isn't the call missing the "isNull" parameter?
> 

-- 
Teodor Sigaev
teodor@stack.net



Mon, 03 Mar 2003 12:51:12 +0300
Teodor Sigaev <teodor@stack.net>
Re: GIST_LEAF vs. leaf_key; gist?entryinit