passing the index-is-unique flag to index build routines (duh! ...
why wasn't it done this way to begin with?). Aside from eliminating
an eyesore, this should save a few milliseconds in btree index creation
because a full scan of pg_index is not needed any more.
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.58 2000/06/15 03:31:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.59 2000/06/17 23:41:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
Relation index = (Relation) PG_GETARG_POINTER(1);
int32 natts = PG_GETARG_INT32(2);
AttrNumber *attnum = (AttrNumber *) PG_GETARG_POINTER(3);
+ FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(4);
+ PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(5);
#ifdef NOT_USED
- IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(4);
- uint16 pcount = PG_GETARG_UINT16(5);
- Datum *params = (Datum *) PG_GETARG_POINTER(6);
+ bool unique = PG_GETARG_BOOL(6);
+ IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(7);
#endif
- FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(7);
- PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(8);
HeapScanDesc scan;
AttrNumber i;
HeapTuple htup;
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.39 2000/06/14 05:24:35 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.40 2000/06/17 23:41:13 tgl Exp $
*
* NOTES
* This file contains only the public interface routines.
Relation index = (Relation) PG_GETARG_POINTER(1);
int32 natts = PG_GETARG_INT32(2);
AttrNumber *attnum = (AttrNumber *) PG_GETARG_POINTER(3);
+ FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(4);
+ PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(5);
#ifdef NOT_USED
- IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(4);
- uint16 pcount = PG_GETARG_UINT16(5);
- Datum *params = (Datum *) PG_GETARG_POINTER(6);
+ bool unique = PG_GETARG_BOOL(6);
+ IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(7);
#endif
- FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(7);
- PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(8);
HeapScanDesc hscan;
HeapTuple htup;
IndexTuple itup;
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.58 2000/06/15 04:09:36 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.59 2000/06/17 23:41:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
Relation index = (Relation) PG_GETARG_POINTER(1);
int32 natts = PG_GETARG_INT32(2);
AttrNumber *attnum = (AttrNumber *) PG_GETARG_POINTER(3);
+ FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(4);
+ PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(5);
+ bool unique = PG_GETARG_BOOL(6);
#ifdef NOT_USED
- IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(4);
- uint16 pcount = PG_GETARG_UINT16(5);
- Datum *params = (Datum *) PG_GETARG_POINTER(6);
+ IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(7);
#endif
- FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(7);
- PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(8);
HeapScanDesc hscan;
HeapTuple htup;
IndexTuple itup;
Node *pred,
*oldPred;
BTSpool *spool = NULL;
- bool isunique;
bool usefast;
/* note that this is a new btree */
ResetUsage();
#endif /* BTREE_BUILD_STATS */
- /* see if index is unique */
- isunique = IndexIsUniqueNoCache(RelationGetRelid(index));
-
/* initialize the btree index metadata page (if this is a new index) */
if (oldPred == NULL)
_bt_metapinit(index);
if (usefast)
{
- spool = _bt_spoolinit(index, isunique);
+ spool = _bt_spoolinit(index, unique);
res = (InsertIndexResult) NULL;
}
if (usefast)
_bt_spool(btitem, spool);
else
- res = _bt_doinsert(index, btitem, isunique, heap);
+ res = _bt_doinsert(index, btitem, unique, heap);
pfree(btitem);
pfree(itup);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.49 2000/06/14 05:24:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.50 2000/06/17 23:41:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
Relation index = (Relation) PG_GETARG_POINTER(1);
int32 natts = PG_GETARG_INT32(2);
AttrNumber *attnum = (AttrNumber *) PG_GETARG_POINTER(3);
+ FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(4);
+ PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(5);
#ifdef NOT_USED
- IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(4);
- uint16 pcount = PG_GETARG_UINT16(5);
- Datum *params = (Datum *) PG_GETARG_POINTER(6);
+ bool unique = PG_GETARG_BOOL(6);
+ IndexStrategy istrat = (IndexStrategy) PG_GETARG_POINTER(7);
#endif
- FuncIndexInfo *finfo = (FuncIndexInfo *) PG_GETARG_POINTER(7);
- PredInfo *predInfo = (PredInfo *) PG_GETARG_POINTER(8);
HeapScanDesc scan;
AttrNumber i;
HeapTuple htup;
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.85 2000/06/05 07:28:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.86 2000/06/17 23:41:27 tgl Exp $
*
*-------------------------------------------------------------------------
*/
char *il_ind;
int il_natts;
AttrNumber *il_attnos;
- uint16 il_nparams;
- Datum *il_params;
FuncIndexInfo *il_finfo;
PredInfo *il_predInfo;
+ bool il_unique;
struct _IndexList *il_next;
} IndexList;
char *ind,
int natts,
AttrNumber *attnos,
- uint16 nparams,
- Datum *params,
FuncIndexInfo *finfo,
- PredInfo *predInfo)
+ PredInfo *predInfo,
+ bool unique)
{
- Datum *v;
IndexList *newind;
int len;
MemoryContext oldcxt;
len = natts * sizeof(AttrNumber);
newind->il_attnos = (AttrNumber *) palloc(len);
- memmove(newind->il_attnos, attnos, len);
+ memcpy(newind->il_attnos, attnos, len);
- if ((newind->il_nparams = nparams) > 0)
- {
- v = newind->il_params = (Datum *) palloc(2 * nparams * sizeof(Datum));
- nparams *= 2;
- while (nparams-- > 0)
- {
- *v = (Datum) palloc(strlen((char *) (*params)) + 1);
- strcpy((char *) *v++, (char *) *params++);
- }
- }
- else
- newind->il_params = (Datum *) NULL;
-
- if (finfo != (FuncIndexInfo *) NULL)
+ if (PointerIsValid(finfo))
{
newind->il_finfo = (FuncIndexInfo *) palloc(sizeof(FuncIndexInfo));
- memmove(newind->il_finfo, finfo, sizeof(FuncIndexInfo));
+ memcpy(newind->il_finfo, finfo, sizeof(FuncIndexInfo));
}
else
newind->il_finfo = (FuncIndexInfo *) NULL;
else
newind->il_predInfo = NULL;
+ newind->il_unique = unique;
+
newind->il_next = ILHead;
ILHead = newind;
ind = index_openr(ILHead->il_ind);
Assert(ind);
index_build(heap, ind, ILHead->il_natts, ILHead->il_attnos,
- ILHead->il_nparams, ILHead->il_params, ILHead->il_finfo,
- ILHead->il_predInfo);
+ ILHead->il_finfo, ILHead->il_predInfo,
+ ILHead->il_unique);
/*
* In normal processing mode, index_build would close the heap and
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.131 2000/06/15 03:32:01 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.132 2000/06/17 23:41:31 tgl Exp $
*
*
* INTERFACE ROUTINES
AttrNumber *attributeNumberA;
FuncIndexInfo fInfo,
*funcInfo = NULL;
+ bool unique;
int i,
numberOfAttributes;
char *predString;
index = (Form_pg_index) GETSTRUCT(indexTuple);
indexId = index->indexrelid;
procId = index->indproc;
+ unique = index->indisunique;
for (i = 0; i < INDEX_MAX_KEYS; i++)
{
/* Initialize the index and rebuild */
InitIndexStrategy(numberOfAttributes, currentIndex, accessMethodId);
index_build(heapRelation, currentIndex, numberOfAttributes,
- attributeNumberA, 0, NULL, funcInfo, predInfo);
+ attributeNumberA, funcInfo, predInfo, unique);
/*
* index_build will close both the heap and index relations (but
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.117 2000/06/17 21:48:39 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.118 2000/06/17 23:41:34 tgl Exp $
*
*
* INTERFACE ROUTINES
AttrNumber *attNums, Oid *classOids, Node *predicate,
List *attributeList, bool islossy, bool unique, bool primary);
static void DefaultBuild(Relation heapRelation, Relation indexRelation,
- int numberOfAttributes, AttrNumber *attributeNumber,
- IndexStrategy indexStrategy, uint16 parameterCount,
- Datum *parameter, FuncIndexInfoPtr funcInfo, PredInfo *predInfo);
+ int numberOfAttributes, AttrNumber *attributeNumber,
+ FuncIndexInfoPtr funcInfo, PredInfo *predInfo,
+ bool unique, IndexStrategy indexStrategy);
static Oid IndexGetRelation(Oid indexId);
static bool activate_index(Oid indexId, bool activate);
int numatts,
AttrNumber *attNums,
Oid *classObjectId,
- uint16 parameterCount,
- Datum *parameter,
Node *predicate,
bool islossy,
bool unique,
if (IsBootstrapProcessingMode())
{
index_register(heapRelationName, indexRelationName, numatts, attNums,
- parameterCount, parameter, funcInfo, predInfo);
+ funcInfo, predInfo, unique);
/* XXX shouldn't we close the heap and index rels here? */
}
else
{
index_build(heapRelation, indexRelation, numatts, attNums,
- parameterCount, parameter, funcInfo, predInfo);
+ funcInfo, predInfo, unique);
}
}
/* ----------------
* DefaultBuild
+ *
+ * NB: this routine is dead code, and likely always has been, because
+ * there are no access methods that don't supply their own ambuild procedure.
+ *
+ * Anyone want to wager whether it would actually work if executed?
* ----------------
*/
static void
Relation indexRelation,
int numberOfAttributes,
AttrNumber *attributeNumber,
- IndexStrategy indexStrategy, /* not used */
- uint16 parameterCount, /* not used */
- Datum *parameter, /* not used */
FuncIndexInfoPtr funcInfo,
- PredInfo *predInfo)
+ PredInfo *predInfo,
+ bool unique, /* not used */
+ IndexStrategy indexStrategy) /* not used */
{
HeapScanDesc scan;
HeapTuple heapTuple;
Relation indexRelation,
int numberOfAttributes,
AttrNumber *attributeNumber,
- uint16 parameterCount,
- Datum *parameter,
FuncIndexInfo *funcInfo,
- PredInfo *predInfo)
+ PredInfo *predInfo,
+ bool unique)
{
RegProcedure procedure;
procedure = indexRelation->rd_am->ambuild;
/* ----------------
- * use the access method build procedure if supplied..
+ * use the access method build procedure if supplied, else default.
* ----------------
*/
if (RegProcedureIsValid(procedure))
- OidFunctionCall9(procedure,
+ OidFunctionCall8(procedure,
PointerGetDatum(heapRelation),
PointerGetDatum(indexRelation),
Int32GetDatum(numberOfAttributes),
PointerGetDatum(attributeNumber),
- PointerGetDatum(RelationGetIndexStrategy(indexRelation)),
- UInt16GetDatum(parameterCount),
- PointerGetDatum(parameter),
PointerGetDatum(funcInfo),
- PointerGetDatum(predInfo));
+ PointerGetDatum(predInfo),
+ BoolGetDatum(unique),
+ PointerGetDatum(RelationGetIndexStrategy(indexRelation)));
else
DefaultBuild(heapRelation,
indexRelation,
numberOfAttributes,
attributeNumber,
- RelationGetIndexStrategy(indexRelation),
- parameterCount,
- parameter,
funcInfo,
- predInfo);
+ predInfo,
+ unique,
+ RelationGetIndexStrategy(indexRelation));
}
/*
return index->indisunique;
}
-/*
- * IndexIsUniqueNoCache: same as above function, but don't use the
- * system cache. if we are called from btbuild, the transaction
- * that is adding the entry to pg_index has not been committed yet.
- * the system cache functions will do a heap scan, but only with
- * NowTimeQual, not SelfTimeQual, so it won't find tuples added
- * by the current transaction (which is good, because if the transaction
- * is aborted, you don't want the tuples sitting around in the cache).
- * so anyway, we have to do our own scan with SelfTimeQual.
- * this is only called when a new index is created, so it's OK
- * if it's slow.
- */
-bool
-IndexIsUniqueNoCache(Oid indexId)
-{
- Relation pg_index;
- ScanKeyData skey[1];
- HeapScanDesc scandesc;
- HeapTuple tuple;
- Form_pg_index index;
- bool isunique;
-
- pg_index = heap_openr(IndexRelationName, AccessShareLock);
-
- ScanKeyEntryInitialize(&skey[0], (bits16) 0x0,
- Anum_pg_index_indexrelid,
- (RegProcedure) F_OIDEQ,
- ObjectIdGetDatum(indexId));
-
- scandesc = heap_beginscan(pg_index, 0, SnapshotSelf, 1, skey);
-
- /* NO CACHE */
- tuple = heap_getnext(scandesc, 0);
- if (!HeapTupleIsValid(tuple))
- elog(ERROR, "IndexIsUniqueNoCache: can't find index id %u", indexId);
-
- index = (Form_pg_index) GETSTRUCT(tuple);
- Assert(index->indexrelid == indexId);
- isunique = index->indisunique;
-
- heap_endscan(scandesc);
- heap_close(pg_index, AccessShareLock);
- return isunique;
-}
-
/* ---------------------------------
* activate_index -- activate/deactivate the specified index.
*funcInfo = NULL;
int i,
numberOfAttributes;
+ bool unique;
char *predString;
bool old;
index = (Form_pg_index) GETSTRUCT(indexTuple);
heapId = index->indrelid;
procId = index->indproc;
+ unique = index->indisunique;
for (i = 0; i < INDEX_MAX_KEYS; i++)
{
/* Initialize the index and rebuild */
InitIndexStrategy(numberOfAttributes, iRel, accessMethodId);
index_build(heapRelation, iRel, numberOfAttributes,
- attributeNumberA, 0, NULL, funcInfo, predInfo);
+ attributeNumberA, funcInfo, predInfo, unique);
/*
* index_build will close both the heap and index relations (but not
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.55 2000/06/15 03:32:07 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.56 2000/06/17 23:41:36 tgl Exp $
*
*-------------------------------------------------------------------------
*/
natts,
Old_pg_index_Form->indkey,
Old_pg_index_Form->indclass,
- (uint16) 0, (Datum *) NULL,
(Node *) NULL, /* XXX where's the predicate? */
Old_pg_index_Form->indislossy,
Old_pg_index_Form->indisunique,
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.30 2000/06/17 21:48:42 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.31 2000/06/17 23:41:36 tgl Exp $
*
*-------------------------------------------------------------------------
*/
int numberOfAttributes;
AttrNumber *attributeNumberA;
HeapTuple tuple;
- uint16 parameterCount = 0;
- Datum *parameterA = NULL;
FuncIndexInfo fInfo;
List *cnfPred = NULL;
- bool lossy = FALSE;
+ bool lossy = false;
List *pl;
/*
index_create(heapRelationName, indexRelationName,
&fInfo, NULL,
accessMethodId, numberOfAttributes, attributeNumberA,
- classObjectId, parameterCount, parameterA,
+ classObjectId,
(Node *) cnfPred,
lossy, unique, primary);
}
index_create(heapRelationName, indexRelationName,
NULL, attributeList,
accessMethodId, numberOfAttributes, attributeNumberA,
- classObjectId, parameterCount, parameterA,
+ classObjectId,
(Node *) cnfPred,
lossy, unique, primary);
}
HeapTuple tuple;
FuncIndexInfo fInfo;
FuncIndexInfo *funcInfo = NULL;
+ bool unique;
Form_pg_index index;
Node *oldPred = NULL;
List *cnfPred = NULL;
Assert(index->indexrelid == indexId);
relationId = index->indrelid;
indproc = index->indproc;
+ unique = index->indisunique;
for (i = 0; i < INDEX_MAX_KEYS; i++)
{
InitIndexStrategy(numberOfAttributes, indexRelation, accessMethodId);
index_build(heapRelation, indexRelation, numberOfAttributes,
- attributeNumberA, 0, NULL, funcInfo, predInfo);
+ attributeNumberA, funcInfo, predInfo, unique);
/* heap and index rels are closed as a side-effect of index_build */
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.70 2000/06/15 06:07:34 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.71 2000/06/17 23:41:39 tgl Exp $
*
*-------------------------------------------------------------------------
*/
classObjectId[0] = INT4_OPS_OID;
index_create(objname, indname, NULL, NULL, BTREE_AM_OID,
1, &attNums[0], &classObjectId[0],
- 0, (Datum) NULL, NULL, FALSE, FALSE, FALSE);
+ (Node *) NULL, false, false, false);
/* make the index visible in this transaction */
CommandCounterIncrement();
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: bootstrap.h,v 1.17 2000/01/26 05:57:53 momjian Exp $
+ * $Id: bootstrap.h,v 1.18 2000/06/17 23:41:49 tgl Exp $
*
*-------------------------------------------------------------------------
*/
extern int DebugMode;
extern int BootstrapMain(int ac, char *av[]);
-extern void index_register(char *heap,
- char *ind,
- int natts,
- AttrNumber *attnos,
- uint16 nparams,
- Datum *params,
- FuncIndexInfo *finfo,
- PredInfo *predInfo);
+
+extern void index_register(char *heap, char *ind,
+ int natts, AttrNumber *attnos,
+ FuncIndexInfo *finfo, PredInfo *predInfo,
+ bool unique);
extern void err_out(void);
extern void InsertOneTuple(Oid objectid);
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: index.h,v 1.24 2000/06/08 22:37:39 momjian Exp $
+ * $Id: index.h,v 1.25 2000/06/17 23:41:51 tgl Exp $
*
*-------------------------------------------------------------------------
*/
int numatts,
AttrNumber *attNums,
Oid *classObjectId,
- uint16 parameterCount,
- Datum *parameter,
Node *predicate,
bool islossy,
bool unique,
TupleDesc tupdesc, Buffer buffer);
extern void index_build(Relation heapRelation, Relation indexRelation,
- int numberOfAttributes, AttrNumber *attributeNumber,
- uint16 parameterCount, Datum *parameter, FuncIndexInfo *funcInfo,
- PredInfo *predInfo);
+ int numberOfAttributes, AttrNumber *attributeNumber,
+ FuncIndexInfo *funcInfo, PredInfo *predInfo,
+ bool unique);
extern bool IndexIsUnique(Oid indexId);
-extern bool IndexIsUniqueNoCache(Oid indexId);
extern bool reindex_index(Oid indexId, bool force);
extern bool activate_indexes_of_a_table(Oid relid, bool activate);
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_proc.h,v 1.139 2000/06/13 07:35:19 tgl Exp $
+ * $Id: pg_proc.h,v 1.140 2000/06/17 23:41:51 tgl Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
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 9 f 23 "0 0 0 0 0 0 0 0 0" 100 0 0 100 rtbuild - ));
+DATA(insert OID = 323 ( rtbuild PGUID 12 f t f t 8 f 23 "0 0 0 0 0 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)");
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 9 f 23 "0 0 0 0 0 0 0 0 0" 100 0 0 100 btbuild - ));
+DATA(insert OID = 338 ( btbuild PGUID 12 f t f t 8 f 23 "0 0 0 0 0 0 0 0" 100 0 0 100 btbuild - ));
DESCR("btree(internal)");
DATA(insert OID = 339 ( poly_same PGUID 11 f t t t 2 f 16 "604 604" 100 0 1 0 poly_same - ));
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 9 f 23 "0 0 0 0 0 0 0 0 0" 100 0 0 100 hashbuild - ));
+DATA(insert OID = 448 ( hashbuild PGUID 12 f t f t 8 f 23 "0 0 0 0 0 0 0 0" 100 0 0 100 hashbuild - ));
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");
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 9 f 23 "0 0 0 0 0 0 0 0 0" 100 0 0 100 gistbuild - ));
+DATA(insert OID = 782 ( gistbuild PGUID 12 f t f t 8 f 23 "0 0 0 0 0 0 0 0" 100 0 0 100 gistbuild - ));
DESCR("gist(internal)");
DATA(insert OID = 784 ( tintervaleq PGUID 12 f t f t 2 f 16 "704 704" 100 0 0 100 tintervaleq - ));