diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-07-11 21:05:57 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-07-11 21:05:57 +0000 |
| commit | d29b66882a5de0878c496bd71d0c69af17197ab7 (patch) | |
| tree | 05555309b4fc4cb550274baadc4bb640c694cb4c /src/include | |
| parent | 1be8f80288a26e676b8e3860eee07015021d30ba (diff) | |
| download | postgresql-d29b66882a5de0878c496bd71d0c69af17197ab7.tar.gz | |
Tweak fillfactor code as per my recent proposal. Fix nbtsort.c so that
it can handle small fillfactors for ordinary-sized index entries without
failing on large ones; fix nbtinsert.c to distinguish leaf and nonleaf
pages; change the minimum fillfactor to 10% for all index types.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/access/gist_private.h | 4 | ||||
| -rw-r--r-- | src/include/access/hash.h | 4 | ||||
| -rw-r--r-- | src/include/access/nbtree.h | 12 |
3 files changed, 12 insertions, 8 deletions
diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h index 1df82fe9fb..d6e5cf0603 100644 --- a/src/include/access/gist_private.h +++ b/src/include/access/gist_private.h @@ -7,7 +7,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_private.h,v 1.21 2006/07/11 17:04:13 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/gist_private.h,v 1.22 2006/07/11 21:05:57 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -272,7 +272,7 @@ extern Datum gistgetmulti(PG_FUNCTION_ARGS); #define GiSTPageSize \ ( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GISTPageOpaqueData)) ) -#define GIST_MIN_FILLFACTOR 50 +#define GIST_MIN_FILLFACTOR 10 #define GIST_DEFAULT_FILLFACTOR 90 extern Datum gistoptions(PG_FUNCTION_ARGS); diff --git a/src/include/access/hash.h b/src/include/access/hash.h index 10646522d9..a845809a5d 100644 --- a/src/include/access/hash.h +++ b/src/include/access/hash.h @@ -7,7 +7,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/hash.h,v 1.71 2006/07/03 22:45:39 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/hash.h,v 1.72 2006/07/11 21:05:57 tgl Exp $ * * NOTES * modeled after Margo Seltzer's hash implementation for unix. @@ -167,7 +167,7 @@ typedef HashMetaPageData *HashMetaPage; MAXALIGN(sizeof(HashPageOpaqueData)) - \ sizeof(ItemIdData)) -#define HASH_MIN_FILLFACTOR 50 +#define HASH_MIN_FILLFACTOR 10 #define HASH_DEFAULT_FILLFACTOR 75 /* diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 43bd49a7bb..b22422ffd6 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -7,7 +7,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/nbtree.h,v 1.100 2006/07/03 22:45:39 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/nbtree.h,v 1.101 2006/07/11 21:05:57 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -107,11 +107,15 @@ typedef struct BTMetaPageData MAXALIGN(sizeof(BTPageOpaqueData))) / 3 - sizeof(ItemIdData)) /* - * Because of above, min fillfactor can't be less than 2/3rds; see notes in - * nbtsort.c before you change these! + * The leaf-page fillfactor defaults to 90% but is user-adjustable. + * For pages above the leaf level, we use a fixed 70% fillfactor. + * The fillfactor is applied during index build and when splitting + * a rightmost page; when splitting non-rightmost pages we try to + * divide the data equally. */ -#define BTREE_MIN_FILLFACTOR 70 +#define BTREE_MIN_FILLFACTOR 10 #define BTREE_DEFAULT_FILLFACTOR 90 +#define BTREE_NONLEAF_FILLFACTOR 70 /* * Test whether two btree entries are "the same". |
