Index: src/backend/commands/vacuum.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/vacuum.c,v retrieving revision 1.230 diff -c -r1.230 vacuum.c *** src/backend/commands/vacuum.c 20 Jun 2002 20:29:27 -0000 1.230 --- src/backend/commands/vacuum.c 8 Jul 2002 03:44:12 -0000 *************** *** 60,68 **** typedef struct VacPageListData { ! BlockNumber empty_end_pages; /* Number of "empty" end-pages */ ! int num_pages; /* Number of pages in pagedesc */ ! int num_allocated_pages; /* Number of allocated pages in * pagedesc */ VacPage *pagedesc; /* Descriptions of pages */ } VacPageListData; --- 60,68 ---- typedef struct VacPageListData { ! BlockNumber empty_end_pages; /* Number of "empty" end-pages */ ! BlockNumber num_pages; /* Number of pages in pagedesc */ ! BlockNumber num_allocated_pages; /* Number of allocated pages in * pagedesc */ VacPage *pagedesc; /* Descriptions of pages */ } VacPageListData; *************** *** 988,994 **** usable_free_size; Size min_tlen = MaxTupleSize; Size max_tlen = 0; - int i; bool do_shrinking = true; VTupleLink vtlinks = (VTupleLink) palloc(100 * sizeof(VTupleLinkData)); int num_vtlinks = 0; --- 988,993 ---- *************** *** 1285,1291 **** */ if (do_shrinking) { ! Assert((BlockNumber) fraged_pages->num_pages >= empty_end_pages); fraged_pages->num_pages -= empty_end_pages; usable_free_size = 0; for (i = 0; i < fraged_pages->num_pages; i++) --- 1284,1292 ---- */ if (do_shrinking) { ! BlockNumber i; ! ! Assert(fraged_pages->num_pages >= empty_end_pages); fraged_pages->num_pages -= empty_end_pages; usable_free_size = 0; for (i = 0; i < fraged_pages->num_pages; i++) *************** *** 1412,1418 **** Nvacpagelist.num_pages = 0; num_fraged_pages = fraged_pages->num_pages; ! Assert((BlockNumber) vacuum_pages->num_pages >= vacuum_pages->empty_end_pages); vacuumed_pages = vacuum_pages->num_pages - vacuum_pages->empty_end_pages; if (vacuumed_pages > 0) { --- 1413,1419 ---- Nvacpagelist.num_pages = 0; num_fraged_pages = fraged_pages->num_pages; ! Assert(vacuum_pages->num_pages >= vacuum_pages->empty_end_pages); vacuumed_pages = vacuum_pages->num_pages - vacuum_pages->empty_end_pages; if (vacuumed_pages > 0) { *************** *** 2332,2342 **** WriteBuffer(buf); } ! /* now - free new list of reaped pages */ ! curpage = Nvacpagelist.pagedesc; ! for (i = 0; i < Nvacpagelist.num_pages; i++, curpage++) ! pfree(*curpage); ! pfree(Nvacpagelist.pagedesc); } /* --- 2333,2346 ---- WriteBuffer(buf); } ! { ! BlockNumber i; ! /* now - free new list of reaped pages */ ! curpage = Nvacpagelist.pagedesc; ! for (i = 0; i < Nvacpagelist.num_pages; i++, curpage++) ! pfree(*curpage); ! pfree(Nvacpagelist.pagedesc); ! } } /* *************** *** 2381,2393 **** Buffer buf; VacPage *vacpage; BlockNumber relblocks; ! int nblocks; int i; nblocks = vacuum_pages->num_pages; nblocks -= vacuum_pages->empty_end_pages; /* nothing to do with them */ ! for (i = 0, vacpage = vacuum_pages->pagedesc; i < nblocks; i++, vacpage++) { CHECK_FOR_INTERRUPTS(); if ((*vacpage)->offsets_free > 0) --- 2385,2398 ---- Buffer buf; VacPage *vacpage; BlockNumber relblocks; ! BlockNumber nblocks; ! BlockNumber blks; int i; nblocks = vacuum_pages->num_pages; nblocks -= vacuum_pages->empty_end_pages; /* nothing to do with them */ ! for (blks = 0, vacpage = vacuum_pages->pagedesc; blks < nblocks; blks++, vacpage++) { CHECK_FOR_INTERRUPTS(); if ((*vacpage)->offsets_free > 0) *************** *** 2636,2643 **** vac_update_fsm(Relation onerel, VacPageList fraged_pages, BlockNumber rel_pages) { ! int nPages = fraged_pages->num_pages; ! int i; BlockNumber *pages; Size *spaceAvail; --- 2641,2648 ---- vac_update_fsm(Relation onerel, VacPageList fraged_pages, BlockNumber rel_pages) { ! BlockNumber nPages = fraged_pages->num_pages; ! BlockNumber i; BlockNumber *pages; Size *spaceAvail; Index: src/backend/storage/freespace/freespace.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/storage/freespace/freespace.c,v retrieving revision 1.12 diff -c -r1.12 freespace.c *** src/backend/storage/freespace/freespace.c 20 Jun 2002 20:29:34 -0000 1.12 --- src/backend/storage/freespace/freespace.c 8 Jul 2002 03:44:13 -0000 *************** *** 371,382 **** MultiRecordFreeSpace(RelFileNode *rel, BlockNumber minPage, BlockNumber maxPage, ! int nPages, BlockNumber *pages, Size *spaceAvail) { FSMRelation *fsmrel; ! int i; LWLockAcquire(FreeSpaceLock, LW_EXCLUSIVE); fsmrel = lookup_fsm_rel(rel); --- 371,382 ---- MultiRecordFreeSpace(RelFileNode *rel, BlockNumber minPage, BlockNumber maxPage, ! BlockNumber nPages, BlockNumber *pages, Size *spaceAvail) { FSMRelation *fsmrel; ! BlockNumber i; LWLockAcquire(FreeSpaceLock, LW_EXCLUSIVE); fsmrel = lookup_fsm_rel(rel); Index: src/backend/utils/adt/tid.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v retrieving revision 1.31 diff -c -r1.31 tid.c *** src/backend/utils/adt/tid.c 20 Jun 2002 20:29:38 -0000 1.31 --- src/backend/utils/adt/tid.c 8 Jul 2002 03:44:13 -0000 *************** *** 87,93 **** blockNumber = BlockIdGetBlockNumber(blockId); offsetNumber = itemPtr->ip_posid; ! sprintf(buf, "(%d,%d)", (int) blockNumber, (int) offsetNumber); PG_RETURN_CSTRING(pstrdup(buf)); } --- 87,93 ---- blockNumber = BlockIdGetBlockNumber(blockId); offsetNumber = itemPtr->ip_posid; ! sprintf(buf, "(%u,%d)", blockNumber, (int) offsetNumber); PG_RETURN_CSTRING(pstrdup(buf)); } *************** *** 140,146 **** * correspond to the CTID of a base relation. */ static Datum ! currtid_for_view(Relation viewrel, ItemPointer tid) { TupleDesc att = RelationGetDescr(viewrel); RuleLock *rulelock; --- 140,146 ---- * correspond to the CTID of a base relation. */ static Datum ! currtid_for_view(Relation viewrel, ItemPointer tid) { TupleDesc att = RelationGetDescr(viewrel); RuleLock *rulelock; Index: src/include/storage/freespace.h =================================================================== RCS file: /cvsroot/pgsql/src/include/storage/freespace.h,v retrieving revision 1.7 diff -c -r1.7 freespace.h *** src/include/storage/freespace.h 20 Jun 2002 20:29:52 -0000 1.7 --- src/include/storage/freespace.h 8 Jul 2002 03:44:14 -0000 *************** *** 38,44 **** extern void MultiRecordFreeSpace(RelFileNode *rel, BlockNumber minPage, BlockNumber maxPage, ! int nPages, BlockNumber *pages, Size *spaceAvail); extern void FreeSpaceMapForgetRel(RelFileNode *rel); --- 38,44 ---- extern void MultiRecordFreeSpace(RelFileNode *rel, BlockNumber minPage, BlockNumber maxPage, ! BlockNumber nPages, BlockNumber *pages, Size *spaceAvail); extern void FreeSpaceMapForgetRel(RelFileNode *rel);