summaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gist.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-08-19 02:04:17 +0000
committerBruce Momjian <bruce@momjian.us>1998-08-19 02:04:17 +0000
commit7971539020a344dce3a8b3b9b93ff4f10e2f823a (patch)
tree8dca0af0d3ac8d431bff8c0dec793fe9733a1ee9 /src/backend/access/gist/gist.c
parent31de2c9461dff3284ad61084c73eba093fa3f68e (diff)
downloadpostgresql-7971539020a344dce3a8b3b9b93ff4f10e2f823a.tar.gz
heap_fetch requires buffer pointer, must be released; heap_getnext
no longer returns buffer pointer, can be gotten from scan; descriptor; bootstrap can create multi-key indexes; pg_procname index now is multi-key index; oidint2, oidint4, oidname are gone (must be removed from regression tests); use System Cache rather than sequential scan in many places; heap_modifytuple no longer takes buffer parameter; remove unused buffer parameter in a few other functions; oid8 is not index-able; remove some use of single-character variable names; cleanup Buffer variables usage and scan descriptor looping; cleaned up allocation and freeing of tuples; 18k lines of diff;
Diffstat (limited to 'src/backend/access/gist/gist.c')
-rw-r--r--src/backend/access/gist/gist.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c
index 1445ff7f2e..e61c3ce5dd 100644
--- a/src/backend/access/gist/gist.c
+++ b/src/backend/access/gist/gist.c
@@ -87,7 +87,6 @@ gistbuild(Relation heap,
PredInfo *predInfo)
{
HeapScanDesc scan;
- Buffer buffer;
AttrNumber i;
HeapTuple htup;
IndexTuple itup;
@@ -112,14 +111,15 @@ gistbuild(Relation heap,
*oldPred;
GISTSTATE giststate;
GISTENTRY tmpcentry;
+ Buffer buffer = InvalidBuffer;
bool *compvec;
/* GiSTs only know how to do stupid locking now */
RelationSetLockForWrite(index);
- setheapoverride(TRUE); /* so we can see the new pg_index tuple */
+ setheapoverride(true); /* so we can see the new pg_index tuple */
initGISTstate(&giststate, index);
- setheapoverride(FALSE);
+ setheapoverride(false);
pred = predInfo->pred;
oldPred = predInfo->oldPred;
@@ -170,15 +170,13 @@ gistbuild(Relation heap,
econtext = NULL;
}
#endif /* OMIT_PARTIAL_INDEX */
- scan = heap_beginscan(heap, 0, SnapshotNow, 0, (ScanKey) NULL);
- htup = heap_getnext(scan, 0, &buffer);
-
/* int the tuples as we insert them */
nh = ni = 0;
- for (; HeapTupleIsValid(htup); htup = heap_getnext(scan, 0, &buffer))
- {
+ scan = heap_beginscan(heap, 0, SnapshotNow, 0, (ScanKey) NULL);
+ while (HeapTupleIsValid(htup = heap_getnext(scan, 0)))
+ {
nh++;
/*
@@ -240,8 +238,7 @@ gistbuild(Relation heap,
attoff,
attnum,
finfo,
- &attnull,
- buffer);
+ &attnull);
nulls[attoff] = (attnull ? 'n' : ' ');
}
@@ -302,8 +299,8 @@ gistbuild(Relation heap,
* flushed. We close them to guarantee that they will be.
*/
- hrelid = heap->rd_id;
- irelid = index->rd_id;
+ hrelid = RelationGetRelid(heap);
+ irelid = RelationGetRelid(index);
heap_close(heap);
index_close(index);
@@ -1165,11 +1162,13 @@ initGISTstate(GISTSTATE *giststate, Relation index)
fmgr_info(equal_proc, &giststate->equalFn);
/* see if key type is different from type of attribute being indexed */
- htup = SearchSysCacheTuple(INDEXRELID, ObjectIdGetDatum(index->rd_id),
+ htup = SearchSysCacheTuple(INDEXRELID,
+ ObjectIdGetDatum(RelationGetRelid(index)),
0, 0, 0);
itupform = (IndexTupleForm) GETSTRUCT(htup);
if (!HeapTupleIsValid(htup))
- elog(ERROR, "initGISTstate: index %d not found", index->rd_id);
+ elog(ERROR, "initGISTstate: index %d not found",
+ RelationGetRelid(index));
giststate->haskeytype = itupform->indhaskeytype;
if (giststate->haskeytype)
{