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

Commit9d18793

Browse files
committed
1. Setting rdesc->rd_tmpunlinked to FALSE in heap_creatr () just after
smgrcreate ().2. Checking rdesc->rd_tmpunlinked in heap_destroy () & heap_destroyr () before calling smgrunlink ().
1 parent52052f3 commit9d18793

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

‎src/backend/catalog/heap.c

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.11 1997/01/14 05:38:23 vadim Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.12 1997/01/20 04:01:50 vadim Exp $
1111
*
1212
* INTERFACE ROUTINES
1313
*heap_creatr()- Create an uncataloged heap relation
@@ -303,14 +303,15 @@ heap_creatr(char *name,
303303
*/
304304

305305
rdesc->rd_istemp=isTemp;
306-
rdesc->rd_tmpunlinked= TRUE;/* change once table is opened */
307306

308307
/* ----------------
309308
*have the storage manager create the relation.
310309
* ----------------
311310
*/
312311

312+
rdesc->rd_tmpunlinked= TRUE;/* change once table is created */
313313
rdesc->rd_fd= (File)smgrcreate(smgr,rdesc);
314+
rdesc->rd_tmpunlinked= FALSE;
314315

315316
RelationRegisterRelation(rdesc);
316317

@@ -1302,10 +1303,11 @@ heap_destroy(char *relname)
13021303
*unlink the relation and finish up.
13031304
* ----------------
13041305
*/
1305-
(void)smgrunlink(rdesc->rd_rel->relsmgr,rdesc);
1306-
if(rdesc->rd_istemp){
1307-
rdesc->rd_tmpunlinked= TRUE;
1306+
if ( !(rdesc->rd_istemp)|| !(rdesc->rd_tmpunlinked) )
1307+
{
1308+
(void)smgrunlink(rdesc->rd_rel->relsmgr,rdesc);
13081309
}
1310+
rdesc->rd_tmpunlinked= TRUE;
13091311

13101312
RelationUnsetLockForWrite(rdesc);
13111313

@@ -1322,10 +1324,11 @@ void
13221324
heap_destroyr(Relationrdesc)
13231325
{
13241326
ReleaseRelationBuffers(rdesc);
1325-
(void)smgrunlink(rdesc->rd_rel->relsmgr,rdesc);
1326-
if(rdesc->rd_istemp){
1327-
rdesc->rd_tmpunlinked= TRUE;
1327+
if ( !(rdesc->rd_istemp)|| !(rdesc->rd_tmpunlinked) )
1328+
{
1329+
(void)smgrunlink(rdesc->rd_rel->relsmgr,rdesc);
13281330
}
1331+
rdesc->rd_tmpunlinked= TRUE;
13291332
heap_close(rdesc);
13301333
RemoveFromTempRelList(rdesc);
13311334
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp