|
|
1.1 ! root 1: # include <ingres.h> ! 2: # include <access.h> ! 3: # include <catalog.h> ! 4: # include <sccs.h> ! 5: ! 6: SCCSID(@(#)closer.c 8.1 12/31/84) ! 7: ! 8: /* ! 9: ** closer - close a relation ! 10: ** ! 11: ** CLOSER is used to close a relation which was opened by OPENR. ! 12: ** CLOSER should always be called once for each OPENR. ! 13: ** ! 14: ** function values: ! 15: ** ! 16: ** <0 fatal error ! 17: ** 0 success ! 18: ** 1 relation was not open ! 19: */ ! 20: ! 21: closer(d) ! 22: DESC *d; ! 23: { ! 24: register DESC *dx; ! 25: register int i; ! 26: ! 27: dx = d; ! 28: # ifdef xATR1 ! 29: if (tTf(21, 8)) ! 30: printf("closer: %.14s,%ld\n", dx->reldum.relid, dx->reladds); ! 31: # endif ! 32: ! 33: if (i = noclose(dx)) ! 34: return (i); ! 35: ! 36: flush_rel(dx, TRUE); /* No error is possible since noclose() ! 37: ** has already flushed any pages ! 38: */ ! 39: ! 40: if (close(dx->relfp)) /*close the relation*/ ! 41: i = acc_err(AMCLOSE_ERR); ! 42: ! 43: dx->relopn = 0; ! 44: ! 45: if (dx->reldum.reldim > 0) ! 46: { ! 47: /* close btreesec */ ! 48: closer(dx->relbtree); ! 49: close(dx->btree_fd); ! 50: } ! 51: return (i); ! 52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.