pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Itai Zukerman <zukerman@math-hat.com>
To: pgsql-sql@postgresql.org
Subject: OffsetNumber, picksplit, and GiST
Date: Tue, 25 Feb 2003 22:29:11 -0500
Message-ID: <87bs0z1zzs.fsf@matt.w80.math-hat.com> (raw)

Is the GiST examples I've looked through, in the picksplit functions,
I see code that looks roughly like this:

  bytea *entryvec = (bytea *) PG_GETARG_POINTER(0);
  OffsetNumber i, maxoff;

  maxoff = ((VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY)) - 1;

  for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i))
    {
      ... DatumGetPointer((((GISTENTRY *) (VARDATA(entryvec)))[i].key)) ...
    }

I'm wondering, since FirstOffsetNumber is 1, what about the 0'th index
in entryvec?  Is it just not set?

Also, is there some rationalle for using OffsetNumber in
GIST_SPLITVEC?  I see in off.h:

  /*
   * OffsetNumber:
   *
   * this is a 1-based index into the linp (ItemIdData) array in the
   * header of each disk page.
   */

and I don't get the connection with what picksplit is doing (keeping
in mind that I don't know what "linp", "ItemIdData" or "disk page"
mean).

I have a very tenuous understanding of all this, so please bear with me.

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



view thread (2+ messages)  latest in thread

Message-ID: <87bs0z1zzs.fsf@matt.w80.math-hat.com>
Permalink:  ../87bs0z1zzs.fsf@matt.w80.math-hat.com/
Also on:    postgresql.org/message-id/87bs0z1zzs.fsf@matt.w80.math-hat.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: zukerman@math-hat.com
  Subject: Re: OffsetNumber, picksplit, and GiST
  In-Reply-To: <87bs0z1zzs.fsf@matt.w80.math-hat.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox