# 2.11BSD#431 - /usr/ingres/source/decomp/mapvar.c

##### Functions

    mapvar            X

       1: # include   "../ingres.h"
       2: # include   "../tree.h"
       3: # include   "../symbol.h"
       4:
       5: /*
       6: **	MAPVAR -- construct varable maps for ROOT, AND, and AGHEAD nodes.
       7: **	tl is a flag  which indicates if the target list should
       8: **	be included in the mapping.  If tl = 0, it should; else it should not.
       9: */
      10:
      11: mapvar(tree, tl)
      12: struct querytree    *tree;
      13: int          tl;
      14: {
      15:     register struct querytree   *t;
      16:     register int            rmap, lmap;
      17:     extern struct querytree     *ckvar();
      18:
      19:     t = tree;
      20:     if (t == 0)
      21:         return (0);
      22:
      23:     switch (t->sym.type)
      24:     {
      25:       case ROOT:
      26:       case AND:
      27:       case AGHEAD:
      28:         /* map the right side */
      29:         ((struct qt_root *)t)->rvarm = rmap = mapvar(t->right, tl);
      30:
      31:         /* map the left side or else use existing values */
      32:         if (tl == 0)
      33:         {
      34:             ((struct qt_root *)t)->lvarm = lmap = mapvar(t->left, tl);
      35:             ((struct qt_root *)t)->lvarc = bitcnt(lmap);
      36:         }
      37:         else
      38:             lmap = ((struct qt_root *)t)->lvarm;
      39:
      40:         /* form map of both sides */
      41:         rmap |= lmap;
      42:
      43:         /* compute total var count */
      44:         ((struct qt_root *)t)->tvarc = bitcnt(rmap);
      45:
      46:         return (rmap);
      47:
      48:       case VAR:
      49:         if (((struct qt_var *)(t = ckvar(t)))->valptr)
      50:             return (0); /* var is a constant */
      51:         return (01 << ((struct qt_var *)t)->varno);
      52:     }
      53:
      54:     /* node is not a VAR, AND, ROOT, or AGHEAD */
      55:     return (mapvar(t->left, tl) | mapvar(t->right, tl));
      56: }

#### Defined functions

mapvar defined in line 11; used 12 times

- in line 29-34(2), 55(2)
- in /usr/ingres/source/decomp/ageval.c line 88
- in /usr/ingres/source/decomp/aggregate.c line 85, 228
- in /usr/ingres/source/decomp/byeval.c line 152, 200
- in /usr/ingres/source/decomp/pull_sq.c line 140
- in /usr/ingres/source/decomp/qryproc.c line 61
- in /usr/ingres/source/decomp/reduction.c line 195

Last modified: 1995-04-14 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 879 |