Annotation of 43BSD/ingres/source/qrymod/qrymod.c, revision 1.1.1.1

1.1       root        1: # include      <ingres.h>
                      2: # include      <aux.h>
                      3: # include      <pv.h>
                      4: # include      <opsys.h>
                      5: # include      <func.h>
                      6: # include      <tree.h>
                      7: # include      "qrymod.h"
                      8: # include      <sccs.h>
                      9: 
                     10: SCCSID(@(#)qrymod.c    8.1     12/31/84)
                     11: 
                     12: 
                     13: /*
                     14: **  QRYMOD -- query modification process
                     15: **
                     16: **     This process modifies queries to implement views, protection,
                     17: **     and integrity.
                     18: **
                     19: **     Return Codes:
                     20: **             standard
                     21: **
                     22: **     Trace Flags:
                     23: **             none.
                     24: */
                     25: 
                     26: 
                     27: 
                     28: DESC           Prodes;         /* protection catalog descriptor */
                     29: DESC           Reldes;         /* relation catalog descriptor */
                     30: DESC           Treedes;        /* tree catalog descriptor */
                     31: DESC           Intdes;         /* integrity catalog descriptor */
                     32: extern int     Equel;          /* equel flag */
                     33: 
                     34: # define TTYIDSIZE     8       /* length of tty id */
                     35: 
                     36: extern qrymod(), qm_init(), null_fn();
                     37: short  tTqm[80];
                     38: char   Terminal[TTYIDSIZE + 1];
                     39: 
                     40: struct fn_def  QryModFn =
                     41: {
                     42:        "QRYMOD",
                     43:        qrymod,
                     44:        qm_init,
                     45:        null_fn,
                     46:        (char *) &Qm,
                     47:        sizeof Qm,
                     48:        tTqm,
                     49:        80,
                     50:        'Q',
                     51:        0,
                     52: };
                     53: 
                     54: 
                     55: 
                     56: qm_init(argc, argv)
                     57: int    argc;
                     58: char   **argv;
                     59: {
                     60: #      ifdef xV7_UNIX
                     61:        extern char     *ttyname();
                     62:        extern char     *rindex();
                     63:        char            *tty;
                     64: #      endif
                     65: 
                     66:        /* determine user's terminal for protection algorithm */
                     67: #      ifndef xV7_UNIX
                     68:        pmove("tty", Terminal, TTYIDSIZE, ' ');
                     69:        Terminal[3] = ttyn(1);
                     70:        if (Terminal[3] == 'x')
                     71:                pmove(" ", Terminal, TTYIDSIZE, ' ');
                     72: #      else
                     73:        if ((tty = ttyname(1)) != NULL)
                     74:                tty = rindex(tty, '/') + 1; 
                     75:        pmove((tty != NULL ? tty : " "), Terminal, TTYIDSIZE, ' ');
                     76: #      endif
                     77:        Terminal[TTYIDSIZE] = '\0';
                     78: # ifdef xQTR1
                     79:        if (tTf(75, 0))
                     80:                printf("Terminal = \"%s\"\n", Terminal);
                     81: # endif
                     82: }
                     83: /*
                     84: **  QRYMOD -- main driver for query modification
                     85: **
                     86: **     Reads in the query tree, performs the modifications, writes
                     87: **     it out, and does process syncronization with below.  The
                     88: **     calling routine must sync with the process above.
                     89: **
                     90: **     Parameters:
                     91: **             pc -- parameter count (must = 1).
                     92: **             pv -- parameter vector:
                     93: **                     pv[0] -- tree to modify.
                     94: **
                     95: **     Returns:
                     96: **             zero.
                     97: **
                     98: **     Side Effects:
                     99: **             The tree is modified to one that is guaranteed to
                    100: **             be directly processable.
                    101: **
                    102: **     Trace Flags:
                    103: **             none.
                    104: */
                    105: 
                    106: 
                    107: qrymod(pc, pv)
                    108: int    pc;
                    109: PARM   *pv;
                    110: {
                    111:        register QTREE  *root;
                    112:        extern QTREE    *view(), *integrity(), *protect();
                    113: 
                    114:        /*
                    115:        **  Get parameters.
                    116:        */
                    117: 
                    118:        if (pc != 1)
                    119:                syserr("pc=%d", pc);
                    120:        if (pv[0].pv_type != PV_QTREE)
                    121:                syserr("pv[0].type=%d", pv[0].pv_type);
                    122:        root = pv[0].pv_val.pv_qtree;
                    123: 
                    124:        /* view processing */
                    125:        root = view(root);
                    126: 
                    127:        /* integrity processing */
                    128:        root = integrity(root);
                    129: 
                    130:        /* protection processing */
                    131:        root = protect(root);
                    132: 
                    133:        return (0);
                    134: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.