Annotation of 43BSD/ingres/source/qrymod/d_view.c, revision 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.