aboutsummaryrefslogtreecommitdiff
path: root/src/include/access/gist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/access/gist.h')
-rw-r--r--src/include/access/gist.h31
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 */