diff options
Diffstat (limited to 'src/include/access')
| -rw-r--r-- | src/include/access/genam.h | 12 | ||||
| -rw-r--r-- | src/include/access/gin.h | 3 | ||||
| -rw-r--r-- | src/include/access/gist_private.h | 6 | ||||
| -rw-r--r-- | src/include/access/hash.h | 3 | ||||
| -rw-r--r-- | src/include/access/heapam.h | 31 | ||||
| -rw-r--r-- | src/include/access/hio.h | 4 | ||||
| -rw-r--r-- | src/include/access/nbtree.h | 3 |
7 files changed, 53 insertions, 9 deletions
diff --git a/src/include/access/genam.h b/src/include/access/genam.h index c1859a0c6d..c7ebae9931 100644 --- a/src/include/access/genam.h +++ b/src/include/access/genam.h @@ -7,13 +7,14 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/genam.h,v 1.60 2006/05/10 23:18:39 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/genam.h,v 1.61 2006/07/02 02:23:22 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef GENAM_H #define GENAM_H +#include "access/heapam.h" #include "access/itup.h" #include "access/relscan.h" #include "access/sdir.h" @@ -144,4 +145,13 @@ extern SysScanDesc systable_beginscan(Relation heapRelation, extern HeapTuple systable_getnext(SysScanDesc sysscan); extern void systable_endscan(SysScanDesc sysscan); + +typedef HeapOption IndexOption; + +extern bytea *genam_option(ArrayType *options, + int minFillfactor, int defaultFillfactor); + +#define IndexGetFillFactor(relation) HeapGetFillFactor(relation) +#define IndexGetPageFreeSpace(relation) HeapGetPageFreeSpace(relation) + #endif /* GENAM_H */ diff --git a/src/include/access/gin.h b/src/include/access/gin.h index 8fff7f4232..4749eca192 100644 --- a/src/include/access/gin.h +++ b/src/include/access/gin.h @@ -3,7 +3,7 @@ * header file for postgres inverted index access method implementation. * * Copyright (c) 2006, PostgreSQL Global Development Group - * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.1 2006/05/02 11:28:55 teodor Exp $ + * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.2 2006/07/02 02:23:22 momjian Exp $ *-------------------------------------------------------------------------- */ @@ -213,6 +213,7 @@ typedef struct ginxlogDeletePage { } ginxlogDeletePage; /* ginutil.c */ +extern Datum ginoption(PG_FUNCTION_ARGS); extern void initGinState( GinState *state, Relation index ); extern Buffer GinNewBuffer(Relation index); extern void GinInitBuffer(Buffer b, uint32 f); diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h index 7a55a31216..5be99712b0 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.18 2006/06/28 12:00:14 teodor Exp $ + * $PostgreSQL: pgsql/src/include/access/gist_private.h,v 1.19 2006/07/02 02:23:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -202,6 +202,7 @@ typedef struct Relation r; IndexTuple *itup; /* in/out, points to compressed entry */ int ituplen; /* length of itup */ + Size freespace; /* free space to be left */ GISTInsertStack *stack; bool needInsertComplete; @@ -271,8 +272,9 @@ extern Datum gistgetmulti(PG_FUNCTION_ARGS); #define GiSTPageSize \ ( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GISTPageOpaqueData)) ) +extern Datum gistoption(PG_FUNCTION_ARGS); extern bool gistfitpage(IndexTuple *itvec, int len); -extern bool gistnospace(Page page, IndexTuple *itvec, int len, OffsetNumber todelete); +extern bool gistnospace(Page page, IndexTuple *itvec, int len, OffsetNumber todelete, Size freespace); extern void gistcheckpage(Relation rel, Buffer buf); extern Buffer gistNewBuffer(Relation r); extern OffsetNumber gistfillbuffer(Relation r, Page page, IndexTuple *itup, diff --git a/src/include/access/hash.h b/src/include/access/hash.h index 226b164ac8..59cf5c9961 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.69 2006/05/02 22:25:10 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/hash.h,v 1.70 2006/07/02 02:23:22 momjian Exp $ * * NOTES * modeled after Margo Seltzer's hash implementation for unix. @@ -234,6 +234,7 @@ extern Datum hashmarkpos(PG_FUNCTION_ARGS); extern Datum hashrestrpos(PG_FUNCTION_ARGS); extern Datum hashbulkdelete(PG_FUNCTION_ARGS); extern Datum hashvacuumcleanup(PG_FUNCTION_ARGS); +extern Datum hashoption(PG_FUNCTION_ARGS); /* * Datatype-specific hash functions in hashfunc.c. diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h index 7301be4ae3..085501be7d 100644 --- a/src/include/access/heapam.h +++ b/src/include/access/heapam.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/heapam.h,v 1.112 2006/06/27 02:51:39 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.113 2006/07/02 02:23:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -22,6 +22,7 @@ #include "nodes/primnodes.h" #include "storage/block.h" #include "storage/lmgr.h" +#include "utils/array.h" #include "utils/rel.h" #include "utils/tqual.h" @@ -227,4 +228,32 @@ extern MinimalTuple minimal_tuple_from_heap_tuple(HeapTuple htup); extern HeapTuple heap_addheader(int natts, bool withoid, Size structlen, void *structure); +extern HeapTuple build_class_tuple(Form_pg_class pgclass, ArrayType *options); + +/* + * HeapOption + * Internal data of heaps. + */ +typedef struct HeapOption +{ + int32 vl_len; + int fillfactor; +} HeapOption; + +extern bytea *heap_option(char relkind, ArrayType *options); + +/* + * HeapGetFillFactor + * Returns the heap's fillfactor. + */ +#define HeapGetFillFactor(relation) \ + (((HeapOption*)(relation)->rd_options)->fillfactor) + +/* + * HeapGetPageFreeSpace + * Returns the heap's freespace per page in bytes. + */ +#define HeapGetPageFreeSpace(relation) \ + (BLCKSZ * (100 - HeapGetFillFactor(relation)) / 100) + #endif /* HEAPAM_H */ diff --git a/src/include/access/hio.h b/src/include/access/hio.h index a18d6934d5..ab03fd4a64 100644 --- a/src/include/access/hio.h +++ b/src/include/access/hio.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/hio.h,v 1.30 2006/03/05 15:58:53 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/hio.h,v 1.31 2006/07/02 02:23:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -19,6 +19,6 @@ extern void RelationPutHeapTuple(Relation relation, Buffer buffer, HeapTuple tuple); extern Buffer RelationGetBufferForTuple(Relation relation, Size len, - Buffer otherBuffer, bool use_fsm); + Buffer otherBuffer, bool use_fsm); #endif /* HIO_H */ diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index a58048ace9..e5981d092c 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.98 2006/05/08 00:00:10 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/nbtree.h,v 1.99 2006/07/02 02:23:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -453,6 +453,7 @@ extern Datum btmarkpos(PG_FUNCTION_ARGS); extern Datum btrestrpos(PG_FUNCTION_ARGS); extern Datum btbulkdelete(PG_FUNCTION_ARGS); extern Datum btvacuumcleanup(PG_FUNCTION_ARGS); +extern Datum btoption(PG_FUNCTION_ARGS); /* * prototypes for functions in nbtinsert.c |
