Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd8dbbc8

Browse files
committed
vacuum fix.
1 parenta53ea46 commitd8dbbc8

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

‎src/backend/catalog/index.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.56 1998/08/2803:36:25 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.57 1998/08/2804:57:19 momjian Exp $
1111
*
1212
*
1313
* INTERFACE ROUTINES
@@ -1267,6 +1267,7 @@ FormIndexDatum(int numberOfAttributes,
12671267
FuncIndexInfoPtrfInfo)
12681268
{
12691269
AttrNumberi;
1270+
intoffset;
12701271
boolisNull;
12711272

12721273
/* ----------------
@@ -1276,16 +1277,19 @@ FormIndexDatum(int numberOfAttributes,
12761277
* ----------------
12771278
*/
12781279

1279-
for (i=0;i<numberOfAttributes;i++)
1280+
for (i=1;i <=numberOfAttributes;i++)
12801281
{
1281-
datum[i]=PointerGetDatum(GetIndexValue(heapTuple,
1282-
heapDescriptor,
1283-
i,
1284-
attributeNumber,
1285-
fInfo,
1286-
&isNull));
1287-
1288-
nullv[i]= (isNull) ?'n' :' ';
1282+
offset=AttrNumberGetAttrOffset(i);
1283+
1284+
datum[offset]=
1285+
PointerGetDatum(GetIndexValue(heapTuple,
1286+
heapDescriptor,
1287+
offset,
1288+
attributeNumber,
1289+
fInfo,
1290+
&isNull));
1291+
1292+
nullv[offset]= (isNull) ?'n' :' ';
12891293
}
12901294
}
12911295

‎src/backend/commands/vacuum.c

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.77 1998/08/2803:36:26 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.78 1998/08/2804:57:21 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -20,6 +20,7 @@
2020

2121
#include"postgres.h"
2222

23+
#include"miscadmin.h"
2324
#include"access/genam.h"
2425
#include"access/heapam.h"
2526
#include"access/transam.h"
@@ -189,8 +190,8 @@ vc_init()
189190
if ((fd=open("pg_vlock",O_CREAT |O_EXCL,0600))<0)
190191
{
191192
elog(ERROR,"Can't create lock file. Is another vacuum cleaner running?\n\
192-
\tIf not, you may remove the pg_vlock file in thepgsql/data/base/your_db\n\
193-
\tdirectory");
193+
\tIf not, you may remove the pg_vlock file in the%s\n\
194+
\tdirectory",DatabasePath);
194195
}
195196
close(fd);
196197

@@ -2202,11 +2203,10 @@ static void
22022203
vc_mkindesc(Relationonerel,intnindices,Relation*Irel,IndDesc**Idesc)
22032204
{
22042205
IndDesc*idcur;
2205-
HeapTupletuple,cachetuple;
2206+
HeapTuplecachetuple;
22062207
AttrNumber*attnumP;
22072208
intnatts;
22082209
inti;
2209-
Bufferbuffer;
22102210

22112211
*Idesc= (IndDesc*)palloc(nindices*sizeof(IndDesc));
22122212

@@ -2216,13 +2216,8 @@ vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc)
22162216
ObjectIdGetDatum(RelationGetRelid(Irel[i])),
22172217
0,0,0);
22182218
Assert(cachetuple);
2219-
2220-
/* get the buffer cache tuple */
2221-
tuple=heap_fetch(onerel,SnapshotNow,&cachetuple->t_ctid,&buffer);
2222-
Assert(tuple);
2223-
pfree(cachetuple);
2224-
2225-
idcur->tform= (IndexTupleForm)GETSTRUCT(tuple);
2219+
/* we never free the copy we make, because Idesc needs it for later */
2220+
idcur->tform= (IndexTupleForm)GETSTRUCT(cachetuple);
22262221
for (attnumP=&(idcur->tform->indkey[0]),natts=0;
22272222
*attnumP!=InvalidAttrNumber&&natts!=INDEX_MAX_KEYS;
22282223
attnumP++,natts++);
@@ -2238,7 +2233,6 @@ vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc)
22382233
idcur->finfoP= (FuncIndexInfo*)NULL;
22392234

22402235
idcur->natts=natts;
2241-
ReleaseBuffer(buffer);
22422236
}
22432237

22442238
}/* vc_mkindesc */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp