mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
vacuum fix.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.77 1998/08/28 03:36:26 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.78 1998/08/28 04:57:21 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
#include "miscadmin.h"
|
||||
#include "access/genam.h"
|
||||
#include "access/heapam.h"
|
||||
#include "access/transam.h"
|
||||
@@ -189,8 +190,8 @@ vc_init()
|
||||
if ((fd = open("pg_vlock", O_CREAT | O_EXCL, 0600)) < 0)
|
||||
{
|
||||
elog(ERROR, "Can't create lock file. Is another vacuum cleaner running?\n\
|
||||
\tIf not, you may remove the pg_vlock file in the pgsql/data/base/your_db\n\
|
||||
\tdirectory");
|
||||
\tIf not, you may remove the pg_vlock file in the %s\n\
|
||||
\tdirectory", DatabasePath);
|
||||
}
|
||||
close(fd);
|
||||
|
||||
@@ -2202,11 +2203,10 @@ static void
|
||||
vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc)
|
||||
{
|
||||
IndDesc *idcur;
|
||||
HeapTuple tuple, cachetuple;
|
||||
HeapTuple cachetuple;
|
||||
AttrNumber *attnumP;
|
||||
int natts;
|
||||
int i;
|
||||
Buffer buffer;
|
||||
|
||||
*Idesc = (IndDesc *) palloc(nindices * sizeof(IndDesc));
|
||||
|
||||
@@ -2216,13 +2216,8 @@ vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc)
|
||||
ObjectIdGetDatum(RelationGetRelid(Irel[i])),
|
||||
0, 0, 0);
|
||||
Assert(cachetuple);
|
||||
|
||||
/* get the buffer cache tuple */
|
||||
tuple = heap_fetch(onerel, SnapshotNow, &cachetuple->t_ctid, &buffer);
|
||||
Assert(tuple);
|
||||
pfree(cachetuple);
|
||||
|
||||
idcur->tform = (IndexTupleForm) GETSTRUCT(tuple);
|
||||
/* we never free the copy we make, because Idesc needs it for later */
|
||||
idcur->tform = (IndexTupleForm) GETSTRUCT(cachetuple);
|
||||
for (attnumP = &(idcur->tform->indkey[0]), natts = 0;
|
||||
*attnumP != InvalidAttrNumber && natts != INDEX_MAX_KEYS;
|
||||
attnumP++, natts++);
|
||||
@@ -2238,7 +2233,6 @@ vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc)
|
||||
idcur->finfoP = (FuncIndexInfo *) NULL;
|
||||
|
||||
idcur->natts = natts;
|
||||
ReleaseBuffer(buffer);
|
||||
}
|
||||
|
||||
} /* vc_mkindesc */
|
||||
|
Reference in New Issue
Block a user