diff options
| author | Tom Lane | 2001-07-15 22:48:19 +0000 |
|---|---|---|
| committer | Tom Lane | 2001-07-15 22:48:19 +0000 |
| commit | c8076f09d2eb82a28f27f97230be470fffe7a1e0 (patch) | |
| tree | 1e357e7e28313386f9d2e789d3905b37ce2d58f6 /src/include | |
| parent | 997439f59e1d487cb2bfa1384f6479fda0c4dd4c (diff) | |
Restructure index AM interface for index building and index tuple deletion,
per previous discussion on pghackers. Most of the duplicate code in
different AMs' ambuild routines has been moved out to a common routine
in index.c; this means that all index types now do the right things about
inserting recently-dead tuples, etc. (I also removed support for EXTEND
INDEX in the ambuild routines, since that's about to go away anyway, and
it cluttered the code a lot.) The retail indextuple deletion routines have
been replaced by a "bulk delete" routine in which the indexscan is inside
the access method. I haven't pushed this change as far as it should go yet,
but it should allow considerable simplification of the internal bookkeeping
for deletions. Also, add flag columns to pg_am to eliminate various
hardcoded tests on AM OIDs, and remove unused pg_am columns.
Fix rtree and gist index types to not attempt to store NULLs; before this,
gist usually crashed, while rtree managed not to crash but computed wacko
bounding boxes for NULL entries (which might have had something to do with
the performance problems we've heard about occasionally).
Add AtEOXact routines to hash, rtree, and gist, all of which have static
state that needs to be reset after an error. We discovered this need long
ago for btree, but missed the other guys.
Oh, one more thing: concurrent VACUUM is now the default.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/access/genam.h | 21 | ||||
| -rw-r--r-- | src/include/access/gist.h | 4 | ||||
| -rw-r--r-- | src/include/access/gistscan.h | 3 | ||||
| -rw-r--r-- | src/include/access/hash.h | 17 | ||||
| -rw-r--r-- | src/include/access/nbtree.h | 18 | ||||
| -rw-r--r-- | src/include/access/rtree.h | 5 | ||||
| -rw-r--r-- | src/include/catalog/catversion.h | 4 | ||||
| -rw-r--r-- | src/include/catalog/index.h | 20 | ||||
| -rw-r--r-- | src/include/catalog/pg_am.h | 72 | ||||
| -rw-r--r-- | src/include/catalog/pg_index.h | 6 | ||||
| -rw-r--r-- | src/include/catalog/pg_proc.h | 45 |
11 files changed, 112 insertions, 103 deletions
diff --git a/src/include/access/genam.h b/src/include/access/genam.h index 0102d8c7e4..db6795c093 100644 --- a/src/include/access/genam.h +++ b/src/include/access/genam.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: genam.h,v 1.25 2001/01/24 19:43:19 momjian Exp $ + * $Id: genam.h,v 1.26 2001/07/15 22:48:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -18,8 +18,21 @@ #include "access/relscan.h" #include "access/sdir.h" + +/* Struct for statistics returned by bulk-delete operation */ +typedef struct IndexBulkDeleteResult +{ + BlockNumber num_pages; /* pages remaining in index */ + double tuples_removed; /* # removed by bulk-delete operation */ + double num_index_tuples; /* # remaining */ +} IndexBulkDeleteResult; + +/* Typedef for callback function to determine if a tuple is bulk-deletable */ +typedef bool (*IndexBulkDeleteCallback) (ItemPointer itemptr, void *state); + + /* ---------------- - * generalized index_ interface routines + * generalized index_ interface routines (in indexam.c) * ---------------- */ extern Relation index_open(Oid relationId); @@ -29,7 +42,6 @@ extern InsertIndexResult index_insert(Relation relation, Datum *datum, char *nulls, ItemPointer heap_t_ctid, Relation heapRel); -extern void index_delete(Relation relation, ItemPointer indexItem); extern IndexScanDesc index_beginscan(Relation relation, bool scanFromEnd, uint16 numberOfKeys, ScanKey key); extern void index_rescan(IndexScanDesc scan, bool scanFromEnd, ScanKey key); @@ -38,6 +50,9 @@ extern void index_markpos(IndexScanDesc scan); extern void index_restrpos(IndexScanDesc scan); extern RetrieveIndexResult index_getnext(IndexScanDesc scan, ScanDirection direction); +extern IndexBulkDeleteResult *index_bulk_delete(Relation relation, + IndexBulkDeleteCallback callback, + void *callback_state); extern RegProcedure index_cost_estimator(Relation relation); extern RegProcedure index_getprocid(Relation irel, AttrNumber attnum, uint16 procnum); diff --git a/src/include/access/gist.h b/src/include/access/gist.h index 9e8091a8a0..b555a195db 100644 --- a/src/include/access/gist.h +++ b/src/include/access/gist.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: gist.h,v 1.28 2001/05/31 18:16:55 tgl Exp $ + * $Id: gist.h,v 1.29 2001/07/15 22:48:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -162,7 +162,7 @@ typedef struct GISTENTRY /* gist.c */ extern Datum gistbuild(PG_FUNCTION_ARGS); extern Datum gistinsert(PG_FUNCTION_ARGS); -extern Datum gistdelete(PG_FUNCTION_ARGS); +extern Datum gistbulkdelete(PG_FUNCTION_ARGS); extern void _gistdump(Relation r); extern void gistfreestack(GISTSTACK *s); extern void initGISTstate(GISTSTATE *giststate, Relation index); diff --git a/src/include/access/gistscan.h b/src/include/access/gistscan.h index d4f9403c10..f7955bce9e 100644 --- a/src/include/access/gistscan.h +++ b/src/include/access/gistscan.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: gistscan.h,v 1.15 2001/05/30 19:53:39 tgl Exp $ + * $Id: gistscan.h,v 1.16 2001/07/15 22:48:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -22,5 +22,6 @@ extern Datum gistmarkpos(PG_FUNCTION_ARGS); extern Datum gistrestrpos(PG_FUNCTION_ARGS); extern Datum gistendscan(PG_FUNCTION_ARGS); extern void gistadjscans(Relation r, int op, BlockNumber blkno, OffsetNumber offnum); +extern void AtEOXact_gist(void); #endif /* GISTSCAN_H */ diff --git a/src/include/access/hash.h b/src/include/access/hash.h index 871629a122..e973b81a7c 100644 --- a/src/include/access/hash.h +++ b/src/include/access/hash.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: hash.h,v 1.38 2001/03/22 04:00:27 momjian Exp $ + * $Id: hash.h,v 1.39 2001/07/15 22:48:18 tgl Exp $ * * NOTES * modeled after Margo Seltzer's hash implementation for unix. @@ -55,7 +55,7 @@ typedef uint32 PageOffset; #define OADDR_OF(S,O) ((OverflowPageAddress)((uint32)((uint32)(S) << SPLITSHIFT) + (O))) #define BUCKET_TO_BLKNO(B) \ - ((Bucket) ((B) + ((B) ? metap->SPARES[_hash_log2((B)+1)-1] : 0)) + 1) + ((Bucket) ((B) + ((B) ? metap->hashm_spares[_hash_log2((B)+1)-1] : 0)) + 1) #define OADDR_TO_BLKNO(B) \ ((BlockNumber) \ (BUCKET_TO_BLKNO ( (1 << SPLITNUM((B))) -1 ) + OPAGENUM((B)))); @@ -165,16 +165,6 @@ typedef struct HashMetaPageData typedef HashMetaPageData *HashMetaPage; -/* Short hands for accessing structure */ -#define OVFL_POINT hashm_ovflpoint -#define LAST_FREED hashm_lastfreed -#define MAX_BUCKET hashm_maxbucket -#define FFACTOR hashm_ffactor -#define HIGH_MASK hashm_highmask -#define LOW_MASK hashm_lowmask -#define NKEYS hashm_nkeys -#define SPARES hashm_spares - extern bool BuildingHash; typedef struct HashItemData @@ -256,7 +246,7 @@ extern Datum hashrescan(PG_FUNCTION_ARGS); extern Datum hashendscan(PG_FUNCTION_ARGS); extern Datum hashmarkpos(PG_FUNCTION_ARGS); extern Datum hashrestrpos(PG_FUNCTION_ARGS); -extern Datum hashdelete(PG_FUNCTION_ARGS); +extern Datum hashbulkdelete(PG_FUNCTION_ARGS); /* * Datatype-specific hash functions in hashfunc.c. @@ -310,6 +300,7 @@ extern void _hash_expandtable(Relation rel, Buffer metabuf); extern void _hash_regscan(IndexScanDesc scan); extern void _hash_dropscan(IndexScanDesc scan); extern void _hash_adjscans(Relation rel, ItemPointer tid); +extern void AtEOXact_hash(void); /* hashsearch.c */ diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 1ba7f96330..789dd02742 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nbtree.h,v 1.55 2001/03/22 04:00:29 momjian Exp $ + * $Id: nbtree.h,v 1.56 2001/07/15 22:48:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -319,6 +319,8 @@ typedef struct xl_btree_newroot */ extern bool BuildingBtree; /* in nbtree.c */ +extern void AtEOXact_nbtree(void); + extern Datum btbuild(PG_FUNCTION_ARGS); extern Datum btinsert(PG_FUNCTION_ARGS); extern Datum btgettuple(PG_FUNCTION_ARGS); @@ -328,7 +330,7 @@ extern void btmovescan(IndexScanDesc scan, Datum v); extern Datum btendscan(PG_FUNCTION_ARGS); extern Datum btmarkpos(PG_FUNCTION_ARGS); extern Datum btrestrpos(PG_FUNCTION_ARGS); -extern Datum btdelete(PG_FUNCTION_ARGS); +extern Datum btbulkdelete(PG_FUNCTION_ARGS); extern void btree_redo(XLogRecPtr lsn, XLogRecord *record); extern void btree_undo(XLogRecPtr lsn, XLogRecord *record); @@ -346,20 +348,12 @@ extern InsertIndexResult _bt_doinsert(Relation rel, BTItem btitem, extern void _bt_metapinit(Relation rel); extern Buffer _bt_getroot(Relation rel, int access); extern Buffer _bt_getbuf(Relation rel, BlockNumber blkno, int access); -extern void _bt_relbuf(Relation rel, Buffer buf, int access); +extern void _bt_relbuf(Relation rel, Buffer buf); extern void _bt_wrtbuf(Relation rel, Buffer buf); extern void _bt_wrtnorelbuf(Relation rel, Buffer buf); extern void _bt_pageinit(Page page, Size size); extern void _bt_metaproot(Relation rel, BlockNumber rootbknum, int level); -extern void _bt_pagedel(Relation rel, ItemPointer tid); - -/* - * prototypes for functions in nbtscan.c - */ -extern void _bt_regscan(IndexScanDesc scan); -extern void _bt_dropscan(IndexScanDesc scan); -extern void _bt_adjscans(Relation rel, ItemPointer tid); -extern void AtEOXact_nbtree(void); +extern void _bt_itemdel(Relation rel, Buffer buf, ItemPointer tid); /* * prototypes for functions in nbtsearch.c diff --git a/src/include/access/rtree.h b/src/include/access/rtree.h index 210e873981..237937fe46 100644 --- a/src/include/access/rtree.h +++ b/src/include/access/rtree.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: rtree.h,v 1.23 2001/05/30 19:53:39 tgl Exp $ + * $Id: rtree.h,v 1.24 2001/07/15 22:48:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -110,7 +110,7 @@ extern void freestack(RTSTACK *s); * Defined in access/rtree/ */ extern Datum rtinsert(PG_FUNCTION_ARGS); -extern Datum rtdelete(PG_FUNCTION_ARGS); +extern Datum rtbulkdelete(PG_FUNCTION_ARGS); extern Datum rtgettuple(PG_FUNCTION_ARGS); extern Datum rtbeginscan(PG_FUNCTION_ARGS); @@ -129,6 +129,7 @@ extern void rtree_desc(char *buf, uint8 xl_info, char *rec); /* rtscan.c */ extern void rtadjscans(Relation r, int op, BlockNumber blkno, OffsetNumber offnum); +extern void AtEOXact_rtree(void); /* rtstrat.c */ extern RegProcedure RTMapOperator(Relation r, AttrNumber attnum, diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 162bf4fe5f..a4a132bc41 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -37,7 +37,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: catversion.h,v 1.85 2001/06/22 19:16:24 wieck Exp $ + * $Id: catversion.h,v 1.86 2001/07/15 22:48:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 200106221 +#define CATALOG_VERSION_NO 200107151 #endif diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index e139dde2cc..f93de9c2e9 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: index.h,v 1.35 2001/05/30 20:52:34 momjian Exp $ + * $Id: index.h,v 1.36 2001/07/15 22:48:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -17,6 +17,16 @@ #include "access/itup.h" #include "nodes/execnodes.h" + +/* Typedef for callback function for IndexBuildHeapScan */ +typedef void (*IndexBuildCallback) (Relation index, + HeapTuple htup, + Datum *attdata, + char *nulls, + bool tupleIsAlive, + void *state); + + extern Form_pg_am AccessMethodObjectIdGetForm(Oid accessMethodObjectId, MemoryContext resultCxt); @@ -56,7 +66,13 @@ extern bool SetReindexProcessing(bool processing); extern bool IsReindexProcessing(void); extern void index_build(Relation heapRelation, Relation indexRelation, - IndexInfo *indexInfo, Node *oldPred); + IndexInfo *indexInfo); + +extern double IndexBuildHeapScan(Relation heapRelation, + Relation indexRelation, + IndexInfo *indexInfo, + IndexBuildCallback callback, + void *callback_state); extern bool reindex_index(Oid indexId, bool force, bool inplace); extern bool activate_indexes_of_a_table(Oid relid, bool activate); diff --git a/src/include/catalog/pg_am.h b/src/include/catalog/pg_am.h index f2de6fb6c0..3bf79404d8 100644 --- a/src/include/catalog/pg_am.h +++ b/src/include/catalog/pg_am.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pg_am.h,v 1.17 2001/05/30 19:55:08 tgl Exp $ + * $Id: pg_am.h,v 1.18 2001/07/15 22:48:18 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -38,30 +38,26 @@ CATALOG(pg_am) { NameData amname; /* access method name */ int4 amowner; /* usesysid of creator */ - int2 amstrategies; /* total NUMBER of strategies by which we - * can traverse/search this AM */ + int2 amstrategies; /* total NUMBER of strategies (operators) by + * which we can traverse/search this AM */ int2 amsupport; /* total NUMBER of support functions that * this AM uses */ int2 amorderstrategy;/* if this AM has a sort order, the * strategy number of the sort operator. * Zero if AM is not ordered. */ + bool amcanunique; /* does AM support UNIQUE indexes? */ + bool amcanmulticol; /* does AM support multi-column indexes? */ + bool amindexnulls; /* does AM support NULL index entries? */ + bool amconcurrent; /* does AM support concurrent updates? */ regproc amgettuple; /* "next valid tuple" function */ regproc aminsert; /* "insert this tuple" function */ - regproc amdelete; /* "delete this tuple" function */ - regproc amgetattr; /* - deprecated */ - regproc amsetlock; /* - deprecated */ - regproc amsettid; /* - deprecated */ - regproc amfreetuple; /* - deprecated */ regproc ambeginscan; /* "start new scan" function */ regproc amrescan; /* "restart this scan" function */ regproc amendscan; /* "end this scan" function */ regproc ammarkpos; /* "mark current scan position" function */ regproc amrestrpos; /* "restore marked scan position" function */ - regproc amopen; /* - deprecated */ - regproc amclose; /* - deprecated */ regproc ambuild; /* "build new index" function */ - regproc amcreate; /* - deprecated */ - regproc amdestroy; /* - deprecated */ + regproc ambulkdelete; /* bulk-delete function */ regproc amcostestimate; /* estimate cost of an indexscan */ } FormData_pg_am; @@ -76,46 +72,40 @@ typedef FormData_pg_am *Form_pg_am; * compiler constants for pg_am * ---------------- */ -#define Natts_pg_am 23 +#define Natts_pg_am 19 #define Anum_pg_am_amname 1 #define Anum_pg_am_amowner 2 #define Anum_pg_am_amstrategies 3 #define Anum_pg_am_amsupport 4 #define Anum_pg_am_amorderstrategy 5 -#define Anum_pg_am_amgettuple 6 -#define Anum_pg_am_aminsert 7 -#define Anum_pg_am_amdelete 8 -#define Anum_pg_am_amgetattr 9 -#define Anum_pg_am_amsetlock 10 -#define Anum_pg_am_amsettid 11 -#define Anum_pg_am_amfreetuple 12 -#define Anum_pg_am_ambeginscan 13 -#define Anum_pg_am_amrescan 14 -#define Anum_pg_am_amendscan 15 -#define Anum_pg_am_ammarkpos 16 -#define Anum_pg_am_amrestrpos 17 -#define Anum_pg_am_amopen 18 -#define Anum_pg_am_amclose 19 -#define Anum_pg_am_ambuild 20 -#define Anum_pg_am_amcreate 21 -#define Anum_pg_am_amdestroy 22 -#define Anum_pg_am_amcostestimate 23 +#define Anum_pg_am_amcanunique 6 +#define Anum_pg_am_amcanmulticol 7 +#define Anum_pg_am_amindexnulls 8 +#define Anum_pg_am_amconcurrent 9 +#define Anum_pg_am_amgettuple 10 +#define Anum_pg_am_aminsert 11 +#define Anum_pg_am_ambeginscan 12 +#define Anum_pg_am_amrescan 13 +#define Anum_pg_am_amendscan 14 +#define Anum_pg_am_ammarkpos 15 +#define Anum_pg_am_amrestrpos 16 +#define Anum_pg_am_ambuild 17 +#define Anum_pg_am_ambulkdelete 18 +#define Anum_pg_am_amcostestimate 19 /* ---------------- * initial contents of pg_am * ---------------- */ -DATA(insert OID = 402 ( rtree PGUID 8 3 0 rtgettuple rtinsert rtdelete - - - - rtbeginscan rtrescan rtendscan rtmarkpos rtrestrpos - - rtbuild - - rtcostestimate )); -DESCR(""); -DATA(insert OID = 403 ( btree PGUID 5 1 1 btgettuple btinsert btdelete - - - - btbeginscan btrescan btendscan btmarkpos btrestrpos - - btbuild - - btcostestimate )); -DESCR(""); +DATA(insert OID = 402 ( rtree PGUID 8 3 0 f f f f rtgettuple rtinsert rtbeginscan rtrescan rtendscan rtmarkpos rtrestrpos rtbuild rtbulkdelete rtcostestimate )); +DESCR("r-tree index access method"); +DATA(insert OID = 403 ( btree PGUID 5 1 1 t t t t btgettuple btinsert btbeginscan btrescan btendscan btmarkpos btrestrpos btbuild btbulkdelete btcostestimate )); +DESCR("b-tree index access method"); #define BTREE_AM_OID 403 -DATA(insert OID = 405 ( hash PGUID 1 1 0 hashgettuple hashinsert hashdelete - - - - hashbeginscan hashrescan hashendscan hashmarkpos hashrestrpos - - hashbuild - - hashcostestimate )); -DESCR(""); -#define HASH_AM_OID 405 -DATA(insert OID = 783 ( gist PGUID 100 7 0 gistgettuple gistinsert gistdelete - - - - gistbeginscan gistrescan gistendscan gistmarkpos gistrestrpos - - gistbuild - - gistcostestimate )); -DESCR(""); -#define GIST_AM_OID 783 +DATA(insert OID = 405 ( hash PGUID 1 1 0 f f f t hashgettuple hashinsert hashbeginscan hashrescan hashendscan hashmarkpos hashrestrpos hashbuild hashbulkdelete hashcostestimate )); +DESCR("hash index access method"); +DATA(insert OID = 783 ( gist PGUID 100 7 0 f t f f gistgettuple gistinsert gistbeginscan gistrescan gistendscan gistmarkpos gistrestrpos gistbuild gistbulkdelete gistcostestimate )); +DESCR("GiST index access method"); #endif /* PG_AM_H */ diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h index a490c8b582..521a3ec3b6 100644 --- a/src/include/catalog/pg_index.h +++ b/src/include/catalog/pg_index.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pg_index.h,v 1.21 2001/07/09 18:35:52 momjian Exp $ + * $Id: pg_index.h,v 1.22 2001/07/15 22:48:18 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -58,7 +58,9 @@ CATALOG(pg_index) bool indisprimary; /* is this index for primary key */ Oid indreference; /* oid of index of referenced relation (ie * - this index for foreign key */ - text indpred; /* query plan for partial index predicate */ + /* VARIABLE LENGTH FIELD: */ + text indpred; /* expression tree for predicate, + * if a partial index */ } FormData_pg_index; /* ---------------- diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index 506e2b2800..f249fcf2d9 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pg_proc.h,v 1.196 2001/07/11 22:14:02 momjian Exp $ + * $Id: pg_proc.h,v 1.197 2001/07/15 22:48:18 tgl Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki @@ -210,11 +210,6 @@ DESCR("not equal"); DATA(insert OID = 89 ( version PGUID 12 f t f t 0 f 25 "" 100 0 0 100 pgsql_version - )); DESCR("PostgreSQL version string"); -DATA(insert OID = 1265 ( rtcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 rtcostestimate - )); -DESCR("r-tree cost estimator"); -DATA(insert OID = 1268 ( btcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 btcostestimate - )); -DESCR("btree cost estimator"); - /* OIDS 100 - 199 */ DATA(insert OID = 100 ( int8fac PGUID 12 f t t t 1 f 20 "20" 100 0 0 100 int8fac - )); @@ -671,11 +666,9 @@ DESCR("convert float4 to int4"); DATA(insert OID = 320 ( rtinsert PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 rtinsert - )); DESCR("r-tree(internal)"); -DATA(insert OID = 321 ( rtdelete PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 rtdelete - )); -DESCR("r-tree(internal)"); DATA(insert OID = 322 ( rtgettuple PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 rtgettuple - )); DESCR("r-tree(internal)"); -DATA(insert OID = 323 ( rtbuild PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 rtbuild - )); +DATA(insert OID = 323 ( rtbuild PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 rtbuild - )); DESCR("r-tree(internal)"); DATA(insert OID = 324 ( rtbeginscan PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100 rtbeginscan - )); DESCR("r-tree(internal)"); @@ -687,13 +680,15 @@ DATA(insert OID = 327 ( rtrestrpos PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 DESCR("r-tree(internal)"); DATA(insert OID = 328 ( rtrescan PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 rtrescan - )); DESCR("r-tree(internal)"); +DATA(insert OID = 321 ( rtbulkdelete PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 rtbulkdelete - )); +DESCR("r-tree(internal)"); +DATA(insert OID = 1265 ( rtcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 rtcostestimate - )); +DESCR("r-tree(internal)"); DATA(insert OID = 330 ( btgettuple PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 btgettuple - )); DESCR("btree(internal)"); DATA(insert OID = 331 ( btinsert PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 btinsert - )); DESCR("btree(internal)"); -DATA(insert OID = 332 ( btdelete PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 btdelete - )); -DESCR("btree(internal)"); DATA(insert OID = 333 ( btbeginscan PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100 btbeginscan - )); DESCR("btree(internal)"); DATA(insert OID = 334 ( btrescan PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 btrescan - )); @@ -704,7 +699,11 @@ DATA(insert OID = 336 ( btmarkpos PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 b DESCR("btree(internal)"); DATA(insert OID = 337 ( btrestrpos PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 btrestrpos - )); DESCR("btree(internal)"); -DATA(insert OID = 338 ( btbuild PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 btbuild - )); +DATA(insert OID = 338 ( btbuild PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 btbuild - )); +DESCR("btree(internal)"); +DATA(insert OID = 332 ( btbulkdelete PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 btbulkdelete - )); +DESCR("btree(internal)"); +DATA(insert OID = 1268 ( btcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 btcostestimate - )); DESCR("btree(internal)"); DATA(insert OID = 339 ( poly_same PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100 poly_same - )); @@ -789,15 +788,10 @@ DESCR("convert name to char()"); DATA(insert OID = 409 ( name PGUID 12 f t t t 1 f 19 "1042" 100 0 0 100 bpchar_name - )); DESCR("convert char() to name"); -DATA(insert OID = 438 ( hashcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 hashcostestimate - )); -DESCR("hash index cost estimator"); - DATA(insert OID = 440 ( hashgettuple PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 hashgettuple - )); DESCR("hash(internal)"); DATA(insert OID = 441 ( hashinsert PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 hashinsert - )); DESCR("hash(internal)"); -DATA(insert OID = 442 ( hashdelete PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 hashdelete - )); -DESCR("hash(internal)"); DATA(insert OID = 443 ( hashbeginscan PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100 hashbeginscan - )); DESCR("hash(internal)"); DATA(insert OID = 444 ( hashrescan PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 hashrescan - )); @@ -808,8 +802,13 @@ DATA(insert OID = 446 ( hashmarkpos PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 DESCR("hash(internal)"); DATA(insert OID = 447 ( hashrestrpos PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 hashrestrpos - )); DESCR("hash(internal)"); -DATA(insert OID = 448 ( hashbuild PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 hashbuild - )); +DATA(insert OID = 448 ( hashbuild PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 hashbuild - )); +DESCR("hash(internal)"); +DATA(insert OID = 442 ( hashbulkdelete PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 hashbulkdelete - )); DESCR("hash(internal)"); +DATA(insert OID = 438 ( hashcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 hashcostestimate - )); +DESCR("hash(internal)"); + DATA(insert OID = 449 ( hashint2 PGUID 12 f t t t 1 f 23 "21" 100 0 0 100 hashint2 - )); DESCR("hash"); DATA(insert OID = 450 ( hashint4 PGUID 12 f t t t 1 f 23 "23" 100 0 0 100 hashint4 - )); @@ -1014,14 +1013,10 @@ DESCR("larger of two"); DATA(insert OID = 771 ( int2smaller PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100 int2smaller - )); DESCR("smaller of two"); -DATA(insert OID = 772 ( gistcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 gistcostestimate - )); -DESCR("gist cost estimator"); DATA(insert OID = 774 ( gistgettuple PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 gistgettuple - )); DESCR("gist(internal)"); DATA(insert OID = 775 ( gistinsert PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 gistinsert - )); DESCR("gist(internal)"); -DATA(insert OID = 776 ( gistdelete PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100 gistdelete - )); -DESCR("gist(internal)"); DATA(insert OID = 777 ( gistbeginscan PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100 gistbeginscan - )); DESCR("gist(internal)"); DATA(insert OID = 778 ( gistrescan PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 gistrescan - )); @@ -1032,7 +1027,11 @@ DATA(insert OID = 780 ( gistmarkpos PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 DESCR("gist(internal)"); DATA(insert OID = 781 ( gistrestrpos PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 gistrestrpos - )); DESCR("gist(internal)"); -DATA(insert OID = 782 ( gistbuild PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100 gistbuild - )); +DATA(insert OID = 782 ( gistbuild PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 gistbuild - )); +DESCR("gist(internal)"); +DATA(insert OID = 776 ( gistbulkdelete PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 gistbulkdelete - )); +DESCR("gist(internal)"); +DATA(insert OID = 772 ( gistcostestimate PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 gistcostestimate - )); DESCR("gist(internal)"); DATA(insert OID = 784 ( tintervaleq PGUID 12 f t f t 2 f 16 "704 704" 100 0 0 100 tintervaleq - )); |
