1: # include   <stdio.h>
   2: # include   <ingres.h>
   3: # include   <aux.h>
   4: # include   <access.h>
   5: # include   <sccs.h>
   6: 
   7: SCCSID(@(#)noclose.c	8.1	12/31/84)
   8: 
   9: /*
  10: **	noclose - update system catalogs for a relation
  11: **	DESCRIPTION
  12: **
  13: **	function values:
  14: **
  15: **		<0  fatal error
  16: **		 0  success
  17: **		 1  relation was not open
  18: */
  19: 
  20: 
  21: noclose(d)
  22: register DESC   *d;
  23: {
  24:     register int    i;
  25:     struct relation rel;
  26: 
  27: #	ifdef xATR1
  28:     if (tTf(21, 12))
  29:         printf("noclose: %.14s,%ld\n", d->reldum.relid, d->reladds);
  30: #	endif
  31: 
  32:     /* make sure relation relation is read/write mode */
  33:     if (abs(d->relopn) != (d->relfp + 1) * 5)
  34:         return (1);
  35: 
  36:     /* flush all pages associated with relation */
  37:     /* if system catalog, reset all the buffers so they can't be reused */
  38:     i = flush_rel(d, d->reldum.relstat & S_CATALOG);
  39: 
  40:     /* check to see if number of tuples has changed */
  41:     if (d->reladds != 0)
  42:     {
  43:         /* yes, update the system catalogs */
  44:         /* get tuple from relation relation */
  45:         Admin.adreld.relopn = (Admin.adreld.relfp + 1) * -5;
  46:         if (i = get_page(&Admin.adreld, &d->reltid.s_tupid))
  47:             return (i); /* fatal error */
  48: 
  49:         /* get the actual tuple */
  50:         get_tuple(&Admin.adreld, &d->reltid.s_tupid, (char *) &rel);
  51: 
  52:         /* update the reltups field */
  53:         rel.reltups += d->reladds;
  54:         d->reldum.reltups = rel.reltups;
  55: 
  56:         /* put the tuple back */
  57:         put_tuple(&d->reltid.s_tupid, (char *) &rel, Admin.adreld.reldum.relwid);
  58:         i = resetacc(Acc_head);
  59:         d->reladds = 0;
  60:     }
  61:     return (i);
  62: }

Defined functions

Last modified: 1986-04-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 777
Valid CSS Valid XHTML 1.0 Strict