|
|
1.1 ! root 1: # include <ingres.h> ! 2: # include <aux.h> ! 3: # include <catalog.h> ! 4: # include <access.h> ! 5: # include <sccs.h> ! 6: ! 7: SCCSID(@(#)paramd.c 7.1 2/5/81) ! 8: ! 9: ! 10: ! 11: /* ! 12: ** get access parameters of a relation from its descriptor and return ! 13: ** them in struct pointed to by "ap". ! 14: */ ! 15: ! 16: ! 17: paramd(d, ap) ! 18: register DESC *d; ! 19: register struct accessparam *ap; ! 20: { ! 21: register int i; ! 22: int p; ! 23: ! 24: ! 25: ap->mode = getmode(d->reldum.relspec); ! 26: ap->sec_index = FALSE; /* indicate that this isn't the index-rel */ ! 27: ! 28: for (i = 0; i < MAXDOM+1; i++) ! 29: ap->keydno[i] = 0; ! 30: ! 31: for (p = 1; p <= d->reldum.relatts; p++) ! 32: if (i = d->relxtra[p]) ! 33: ap->keydno[i-1] = p; ! 34: return (0); ! 35: } ! 36: ! 37: parami(ip, param) ! 38: struct index *ip; ! 39: struct accessparam *param; ! 40: { ! 41: register struct accessparam *ap; ! 42: ! 43: ap = param; ! 44: ap->mode = getmode(ip->irelspeci); ! 45: ap->sec_index = TRUE; /* this is an index */ ! 46: ! 47: bmove(ip->idom, ap->keydno, MAXKEYS); ! 48: ap->keydno[MAXKEYS] = 0; ! 49: return(0); ! 50: } ! 51: ! 52: ! 53: getmode(spec) ! 54: int spec; ! 55: { ! 56: switch (abs(spec)) ! 57: { ! 58: case M_HEAP: ! 59: return(NOKEY); ! 60: ! 61: case M_ISAM: ! 62: return(LRANGEKEY); ! 63: ! 64: case M_HASH: ! 65: return(EXACTKEY); ! 66: ! 67: default: ! 68: syserr("getmode:bad relspec %d", spec); ! 69: } ! 70: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.