|
7 | 7 | * |
8 | 8 | * |
9 | 9 | * IDENTIFICATION |
10 | | - * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.61 1998/02/03 21:57:27 momjian Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.62 1998/02/25 23:40:32 vadim Exp $ |
11 | 11 | * |
12 | 12 | *------------------------------------------------------------------------- |
13 | 13 | */ |
@@ -1083,23 +1083,19 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel, |
1083 | 1083 | /* |
1084 | 1084 | * If no one tuple can't be added to this page - |
1085 | 1085 | * remove page from Fvpl. - vadim 11/27/96 |
| 1086 | + * |
| 1087 | + * But we can't remove last page - this is our |
| 1088 | + * "show-stopper" !!!- vadim 02/25/98 |
1086 | 1089 | */ |
1087 | | -if (!vc_enough_space(ToVpd,vacrelstats->min_tlen)) |
| 1090 | +if (ToVpd!=Fvplast&& |
| 1091 | +!vc_enough_space(ToVpd,vacrelstats->min_tlen)) |
1088 | 1092 | { |
1089 | | -if (ToVpd!=Fvplast) |
1090 | | -{ |
1091 | | -Assert(Fnpages>ToVpI+1); |
1092 | | -memmove(Fvpl->vpl_pgdesc+ToVpI, |
1093 | | -Fvpl->vpl_pgdesc+ToVpI+1, |
1094 | | -sizeof(VPageDescr*)* (Fnpages-ToVpI-1)); |
1095 | | -} |
1096 | | -Assert(Fnpages >=1); |
| 1093 | +Assert(Fnpages>ToVpI+1); |
| 1094 | +memmove(Fvpl->vpl_pgdesc+ToVpI, |
| 1095 | +Fvpl->vpl_pgdesc+ToVpI+1, |
| 1096 | +sizeof(VPageDescr*)* (Fnpages-ToVpI-1)); |
1097 | 1097 | Fnpages--; |
1098 | | -if (Fnpages==0) |
1099 | | -break; |
1100 | | -/* get prev reapped page from Fvpl */ |
1101 | | -Fvplast=Fvpl->vpl_pgdesc[Fnpages-1]; |
1102 | | -Fblklast=Fvplast->vpd_blkno; |
| 1098 | +Assert (Fvplast==Fvpl->vpl_pgdesc[Fnpages-1]); |
1103 | 1099 | } |
1104 | 1100 | } |
1105 | 1101 | for (i=0;i<Fnpages;i++) |
|