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

1.1       root        1: # include      <ingres.h>
                      2: # include      <aux.h>
                      3: # include      <tree.h>
                      4: # include      <symbol.h>
                      5: # include      <catalog.h>
                      6: # include      <pv.h>
                      7: # include      <func.h>
                      8: # include      "qrymod.h"
                      9: # include      <sccs.h>
                     10: 
                     11: SCCSID(@(#)d_view.c    8.1     12/31/84)
                     12: 
                     13: 
                     14: 
                     15: /*
                     16: **  D_VIEW -- define view
                     17: **
                     18: **     This procedure connects the tree in with the relation catalog
                     19: **     and inserts the view tree into the tree catalog.
                     20: **
                     21: **     The information in the pipe is expected to come as follows:
                     22: **             create for view, with S_VIEW bit set so that a
                     23: **                     physical relation is not created.
                     24: **             define tree, which will put the translation tree
                     25: **                     into the 'tree' catalog.
                     26: **             define view, which will connect the two together.
                     27: **                     The first two absolutely must be done before
                     28: **                     this step can be called.
                     29: **
                     30: **     Parameters:
                     31: **             none
                     32: **
                     33: **     Returns:
                     34: **             none
                     35: **
                     36: **     Side Effects:
                     37: **             I/O in 'tree' catalog.
                     38: **
                     39: **     Trace Flags:
                     40: **             39
                     41: */
                     42: 
                     43: extern DESC    Reldes;
                     44: 
                     45: extern         d_view(), null_fn();
                     46: extern short   tTqm[80];
                     47: 
                     48: struct fn_def  DefViewFn =
                     49: {
                     50:        "DVIEW",
                     51:        d_view,
                     52:        null_fn,
                     53:        null_fn,
                     54:        NULL,
                     55:        0,
                     56:        tTqm,
                     57:        80,
                     58:        'Q',
                     59:        0
                     60: };
                     61: 
                     62: 
                     63: 
                     64: 
                     65: d_view(pc, pv)
                     66: int    pc;
                     67: PARM   *pv;
                     68: {
                     69:        char            viewid[MAXNAME + 1];
                     70:        struct relation relkey, reltup;
                     71:        register QTREE  *t;
                     72:        register int    i;
                     73:        struct tup_id   tid;
                     74:        int             treeid;
                     75: 
                     76:        /*
                     77:        **  Read parameters.
                     78:        */
                     79: 
                     80:        if (pv->pv_type != PV_STR)
                     81:                syserr("d_view: viewid");
                     82:        pmove(pv->pv_val.pv_str, viewid, MAXNAME, ' ');
                     83:        pv++;
                     84: 
                     85:        if (pv->pv_type != PV_QTREE)
                     86:                syserr("d_view: tree");
                     87:        t = (QTREE *) pv->pv_val.pv_qtree;
                     88:        pv++;
                     89:        
                     90: #      ifdef xQTR3
                     91:        /* do some extra validation */
                     92:        if (Qt.qt_qmode != mdVIEW)
                     93:                syserr("d_view: Qt.qt_qmode %d", Qt.qt_qmode);
                     94:        if (Qt.qt_resvar < 0)
                     95:                syserr("d_view: Rv %d", Qt.qt_resvar);
                     96:        if (Qt.qt_rangev[Qt.qt_resvar].rngvdesc == NULL ||
                     97:            !bequal(Qt.qt_rangev[Qt.qt_resvar].rngvdesc->reldum.relid, viewid, MAXNAME))
                     98:                syserr("d_view: rangev %d %.14s", Qt.qt_rangev[Qt.qt_resvar].rngvdesc,
                     99:                    Qt.qt_rangev[Qt.qt_resvar].rngvdesc->reldum.relid);
                    100: #      endif
                    101: 
                    102:        declare(Qt.qt_resvar, NULL);
                    103:        Qt.qt_resvar = -1;
                    104:        Qt.qt_qmode = -1;
                    105: 
                    106:        /* output tree to tree catalog */
                    107:        treeid = puttree(t, viewid, Usercode, mdVIEW);
                    108: }

unix.superglobalmegacorp.com

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