|
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++)
|
|