diff options
Diffstat (limited to 'src/include/access/gist.h')
-rw-r--r-- | src/include/access/gist.h | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/src/include/access/gist.h b/src/include/access/gist.h index cfa07f2be52..55d7634a73d 100644 --- a/src/include/access/gist.h +++ b/src/include/access/gist.h @@ -9,7 +9,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/gist.h,v 1.53 2006/06/25 01:02:12 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/gist.h,v 1.54 2006/06/28 12:00:14 teodor Exp $ * *------------------------------------------------------------------------- */ @@ -75,37 +75,29 @@ typedef GISTPageOpaqueData *GISTPageOpaque; /* * This is the Split Vector to be returned by the PickSplit method. + * PickSplit should check spl_(r|l)datum_exists. If it is 'true', + * that corresponding spl_(r|l)datum already defined and + * PickSplit should use that value. PickSplit should always set + * spl_(r|l)datum_exists to false: GiST will check value to + * control supportng this feature by PickSplit... */ typedef struct GIST_SPLITVEC { OffsetNumber *spl_left; /* array of entries that go left */ int spl_nleft; /* size of this array */ Datum spl_ldatum; /* Union of keys in spl_left */ - Datum spl_lattr[INDEX_MAX_KEYS]; /* Union of subkeys in - * spl_left */ - int spl_lattrsize[INDEX_MAX_KEYS]; - bool spl_lisnull[INDEX_MAX_KEYS]; - bool spl_leftvalid; + bool spl_ldatum_exists; /* true, if spl_ldatum already exists. */ OffsetNumber *spl_right; /* array of entries that go right */ int spl_nright; /* size of the array */ Datum spl_rdatum; /* Union of keys in spl_right */ - Datum spl_rattr[INDEX_MAX_KEYS]; /* Union of subkeys in - * spl_right */ - int spl_rattrsize[INDEX_MAX_KEYS]; - bool spl_risnull[INDEX_MAX_KEYS]; - bool spl_rightvalid; - - int *spl_idgrp; - int *spl_ngrp; /* number in each group */ - char *spl_grpflag; /* flags of each group */ + bool spl_rdatum_exists; /* true, if spl_rdatum already exists. */ } GIST_SPLITVEC; /* * An entry on a GiST node. Contains the key, as well as its own * location (rel,page,offset) which can supply the matching pointer. - * The size of the key is in bytes, and leafkey is a flag to tell us - * if the entry is in a leaf node. + * leafkey is a flag to tell us if the entry is in a leaf node. */ typedef struct GISTENTRY { @@ -113,7 +105,6 @@ typedef struct GISTENTRY Relation rel; Page page; OffsetNumber offset; - int bytes; bool leafkey; } GISTENTRY; @@ -147,8 +138,8 @@ typedef struct /* * macro to initialize a GISTENTRY */ -#define gistentryinit(e, k, r, pg, o, b, l) \ +#define gistentryinit(e, k, r, pg, o, l) \ do { (e).key = (k); (e).rel = (r); (e).page = (pg); \ - (e).offset = (o); (e).bytes = (b); (e).leafkey = (l); } while (0) + (e).offset = (o); (e).leafkey = (l); } while (0) #endif /* GIST_H */ |