--- relcache.c.orig Wed Jan 16 11:12:49 2002 +++ relcache.c Wed Jan 16 11:44:36 2002 @@ -2664,6 +2664,7 @@ init_irels(void) /* first read the relation descriptor length */ if ((nread = FileRead(fd, (char *) &len, sizeof(len))) != sizeof(len)) { + FileClose(fd); write_irels(); return; } @@ -2674,6 +2675,7 @@ init_irels(void) /* then, read the Relation structure */ if ((nread = FileRead(fd, (char *) ird, len)) != len) { + FileClose(fd); write_irels(); return; } @@ -2686,6 +2688,7 @@ init_irels(void) /* next, read the access method tuple form */ if ((nread = FileRead(fd, (char *) &len, sizeof(len))) != sizeof(len)) { + FileClose(fd); write_irels(); return; } @@ -2693,6 +2696,7 @@ init_irels(void) am = (Form_pg_am) palloc(len); if ((nread = FileRead(fd, (char *) am, len)) != len) { + FileClose(fd); write_irels(); return; } @@ -2702,6 +2706,7 @@ init_irels(void) /* next read the relation tuple form */ if ((nread = FileRead(fd, (char *) &len, sizeof(len))) != sizeof(len)) { + FileClose(fd); write_irels(); return; } @@ -2709,6 +2714,7 @@ init_irels(void) relform = (Form_pg_class) palloc(len); if ((nread = FileRead(fd, (char *) relform, len)) != len) { + FileClose(fd); write_irels(); return; } @@ -2724,6 +2730,7 @@ init_irels(void) { if ((nread = FileRead(fd, (char *) &len, sizeof(len))) != sizeof(len)) { + FileClose(fd); write_irels(); return; } @@ -2732,6 +2739,7 @@ init_irels(void) if ((nread = FileRead(fd, (char *) ird->rd_att->attrs[i], len)) != len) { + FileClose(fd); write_irels(); return; } @@ -2740,6 +2748,7 @@ init_irels(void) /* next, read the index strategy map */ if ((nread = FileRead(fd, (char *) &len, sizeof(len))) != sizeof(len)) { + FileClose(fd); write_irels(); return; } @@ -2747,6 +2756,7 @@ init_irels(void) strat = (IndexStrategy) palloc(len); if ((nread = FileRead(fd, (char *) strat, len)) != len) { + FileClose(fd); write_irels(); return; } @@ -2772,6 +2782,7 @@ init_irels(void) /* finally, read the vector of support procedures */ if ((nread = FileRead(fd, (char *) &len, sizeof(len))) != sizeof(len)) { + FileClose(fd); write_irels(); return; } @@ -2779,6 +2790,7 @@ init_irels(void) support = (RegProcedure *) palloc(len); if ((nread = FileRead(fd, (char *) support, len)) != len) { + FileClose(fd); write_irels(); return; } @@ -2789,6 +2801,7 @@ init_irels(void) RelationCacheInsert(ird); } criticalRelcachesBuilt = true; + FileClose(fd); } static void