Annotation of 43BSD/ingres/source/decomp/globs.h, revision 1.1

1.1     ! root        1: # include      <tree.h>
        !             2: # include      <func.h>
        !             3: # include      <access.h>
        !             4: # include      "../decomp/decomp.h"
        !             5: # include      "../ovqp/ovqp.h"
        !             6: 
        !             7: /*     @(#)globs.h     8.1     12/31/84        */
        !             8: 
        !             9: 
        !            10: struct agglist
        !            11: {
        !            12:        QTREE   **father;       /* addr of pointer to you */
        !            13:        QTREE   *agpoint;       /* pointer to aghead */
        !            14:        QTREE   *agfather;      /* is your father an aggregate? */
        !            15:        short   agvarno;        /* var # assigned to aggr fnct */
        !            16: };
        !            17: 
        !            18: struct hitlist
        !            19: {
        !            20:        QTREE   **trepr;        /* position in tree to be changed */
        !            21:        short   byno;           /* by-list position */
        !            22: };
        !            23: 
        !            24: struct rang_tab
        !            25: {
        !            26:        int             relnum;         /* internal decomp relation number */
        !            27:        int             rtspec;         /* relspec of relation */
        !            28:        int             rtstat;         /* relstat of relation */
        !            29:        int             rtwid;          /* relwidth of relation */
        !            30:        long            rtcnt;          /* tupcount of relation */
        !            31:        int             rtaltnum;       /* reserved for distributed decomp */
        !            32:        char            *rtattmap;      /* reserved for distributed decomp */
        !            33:        long            rtdcnt;         /* reserved for distributed decomp */
        !            34:        struct d_range  *rtsrange;      /* reserved for distributed decomp */
        !            35: };
        !            36: 
        !            37: 
        !            38: /* The following structure reserved for distributed decomp */
        !            39: /* The order of this has been changed for proper alignment */
        !            40: struct d_range
        !            41: {
        !            42:        int             relnum;
        !            43:        int             draltnum;
        !            44:        long            drtupcnt;
        !            45:        struct d_range  *drnext;
        !            46:        int             drstat;
        !            47:        char            drsite[2];
        !            48: };
        !            49: 
        !            50: 
        !            51: /* structure used by reduction to maintain component pieces */
        !            52: struct complist
        !            53: {
        !            54:        struct complist *nextcomp;      /* next comp piece */
        !            55:        struct complist *linkcomp;      /* next clause of this comp */
        !            56:        QTREE           *clause;        /* associated clause */
        !            57:        int             bitmap;         /* map of all assoc clauses */
        !            58: };
        !            59: 
        !            60: bool   Batchupd;
        !            61: 
        !            62: struct desc_tab
        !            63: {
        !            64:        int     relnum;         /* relation number */
        !            65:        char    dtmode;         /* status of descriptor */
        !            66:        char    dtpos;          /* position of last access */
        !            67:        DESC    desc;           /* descriptor */
        !            68: };
        !            69: 
        !            70: 
        !            71: struct stacksym
        !            72: {
        !            73:        char    s_type;
        !            74:        char    s_len;
        !            75:        long    s_value[2];
        !            76: };                             /* stack for OVQP interpreter */
        !            77: 
        !            78: 
        !            79: struct simp
        !            80: {
        !            81:        int     relop;  /* value of relop in simp clause*/
        !            82:        int     att;    /* attno of attribute */
        !            83:        SYMBOL  *const; /* pointer to constant value symbol */
        !            84: };
        !            85: 
        !            86: 
        !            87: struct key
        !            88: {
        !            89:        SYMBOL  *keysym;
        !            90:        int     dnumber;
        !            91: };
        !            92: 
        !            93: extern int     Equel;
        !            94: 
        !            95: struct
        !            96: {
        !            97:                /* OVQP variables */
        !            98:        char            ov_outtup[MAXTUP];
        !            99:        char            ov_intup[MAXTUP];
        !           100:        char            *ov_origtup;
        !           101:        char            *ov_tend;       /* pts to end of data in ov_outtup */
        !           102:        short           ov_bopen;       /* TRUE if batch file is open */
        !           103:        short           ov_targvc;      /* var count in Target list (flags constant Targ. list) */
        !           104:        short           ov_qualvc;      /* var count in Qual list */
        !           105:        short           ov_userqry;     /* flags a query on the users's result rel */
        !           106:        short           ov_retrieve;    /* true is a retrieve, else false */
        !           107:        char            *ov_ovqpbuf;
        !           108:        short           ov_diffrel;     /* true is ov_source and ov_result are different */
        !           109:        short           ov_agcount;     /* count of the # of aggregates in the query */
        !           110:        short           ov_qvpointer;
        !           111:        long            ov_intid;
        !           112:        long            ov_uptid;
        !           113:        long            *ov_counter;    /* cnts "gets" done in OVQP */
        !           114:        long            ov_lotid;
        !           115:        long            ov_hitid;       /* lo & hi limits of scan in OVQP */
        !           116:        long            ov_tupsfound;   /* counts # tuples which satified the query */
        !           117:        DESC            *ov_scanr;      /* pts to desc of reln to be scanned */
        !           118:        DESC            *ov_source;     /* 0 if no source for qry, else poshorts to ov_srcdesc */
        !           119:        DESC            *ov_result;     /* 0 if no result for qry, else poshorts to ov_reldesc */
        !           120:        SYMBOL          **ov_tlist;     /* Target LIST */
        !           121:        SYMBOL          **ov_alist;     /* Aggregate LIST */
        !           122:        SYMBOL          **ov_qlist;     /* Query List */
        !           123:        SYMBOL          **ov_bylist;    /* By List */
        !           124:        struct stacksym ov_stack[STACKSIZ];
        !           125:        char            ov_keyl[MAXTUP];
        !           126:        char            ov_keyh[MAXTUP];
        !           127:        int             ov_nsimp;       /* Current no. entries in ov_simp vector */
        !           128:        int             ov_fmode;       /* find-mode determined by strategy */
        !           129:        struct simp     ov_simp[NSIMP];
        !           130:        struct key      ov_lkey_struct[MAXDOM+1];
        !           131:        struct key      ov_hkey_struct[MAXDOM+1];
        !           132: 
        !           133:                /* DECOMP/OVQP variables */
        !           134: 
        !           135:        struct agglist  *de_aggnext;    /* next in aggregate list */
        !           136:        struct agglist  *de_agglim;     /* limit in aggregate list */
        !           137:        struct hitlist  *de_hnext;
        !           138:        struct hitlist  *de_hlimit;
        !           139:        char            de_d_dbu70;
        !           140:        char            de_d_ovqp70;
        !           141:        int             de_synconly;
        !           142:        int             de_error_flag;
        !           143:        int             de_qvptr;               /* index into available de_qvect space in ovqpnod() */
        !           144:        SYMBOL          *de_qvect[MAXNODES];
        !           145:        short           de_newq;                /* OVPQ must devise new strategy */
        !           146:        short           de_newr;                /* force OVQP to reopen result relation */
        !           147:        int             de_qmode;               /* flag set to indicate mode of tuple disposition */
        !           148:        int             de_resultvar;           /* if >= 0 result variable */
        !           149:        int             de_sourcevar;           /* likewise for source variable */
        !           150:        char            *de_qbuf;               /* pointer to query buffer */
        !           151: 
        !           152: 
        !           153: 
        !           154:        QTREE           *de_qle;                /* ptr to QLEND node */
        !           155:        QTREE           *de_tr;                 /* ptr to TREE node */
        !           156:        int             de_dfiles;              /* number of available file descriptors */
        !           157:        int             de_dopnfiles;           /* Number of open file descriptors */
        !           158:        struct desc_tab de_desc[MAXRELN];       /* descriptors available for use */
        !           159:        struct rang_tab de_rangev[MAXRANGE+2];  /* global range table with extra slot for FREEVAR and SECINDVAR */
        !           160:        int             de_qry_mode;            /* mode of original query (not nec same as de_qmode) */
        !           161:        char            de_name_table[FIRSTNUM-1][MAXNAME];
        !           162:        char            de_num_used[LASTNUM+1];
        !           163:        char            de_buflag;
        !           164: } De;
        !           165: 
        !           166: short          tTdecomp[100];
        !           167: # ifdef tTf
        !           168: # undef tTf
        !           169: # endif tTf
        !           170: # define tTf(a, b)     ((b < 0) ? tTdecomp[a] : (tTdecomp[a] & (1 << b)))

unix.superglobalmegacorp.com

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