|
96 | 96 | * Portions Copyright (c) 1994-5, Regents of the University of California |
97 | 97 | * |
98 | 98 | * IDENTIFICATION |
99 | | - * $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.1 2007/04/08 01:26:27 tgl Exp $ |
| 99 | + * $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.2 2007/04/17 20:49:39 tgl Exp $ |
100 | 100 | * |
101 | 101 | *------------------------------------------------------------------------- |
102 | 102 | */ |
@@ -203,7 +203,6 @@ begin_heap_rewrite(Relation new_heap, TransactionId oldest_xmin, |
203 | 203 | state->rs_buffer= (Page)palloc(BLCKSZ); |
204 | 204 | /* new_heap needn't be empty, just locked */ |
205 | 205 | state->rs_blockno=RelationGetNumberOfBlocks(new_heap); |
206 | | -/* Note: we assume RelationGetNumberOfBlocks did RelationOpenSmgr for us */ |
207 | 206 | state->rs_buffer_valid= false; |
208 | 207 | state->rs_use_wal=use_wal; |
209 | 208 | state->rs_oldest_xmin=oldest_xmin; |
@@ -267,6 +266,7 @@ end_heap_rewrite(RewriteState state) |
267 | 266 | log_newpage(&state->rs_new_rel->rd_node, |
268 | 267 | state->rs_blockno, |
269 | 268 | state->rs_buffer); |
| 269 | +RelationOpenSmgr(state->rs_new_rel); |
270 | 270 | smgrextend(state->rs_new_rel->rd_smgr,state->rs_blockno, |
271 | 271 | (char*)state->rs_buffer, true); |
272 | 272 | } |
@@ -586,6 +586,7 @@ raw_heap_insert(RewriteState state, HeapTuple tup) |
586 | 586 | * temp table, because there's no need for smgr to schedule an |
587 | 587 | * fsync for this write; we'll do it ourselves before committing. |
588 | 588 | */ |
| 589 | +RelationOpenSmgr(state->rs_new_rel); |
589 | 590 | smgrextend(state->rs_new_rel->rd_smgr,state->rs_blockno, |
590 | 591 | (char*)page, true); |
591 | 592 |
|
|