1: # include   <ingres.h>
   2: # include   <aux.h>
   3: # include   <symbol.h>
   4: # include   <tree.h>
   5: # include   <pv.h>
   6: # include   "qrymod.h"
   7: # include   <sccs.h>
   8: 
   9: SCCSID(@(#)issue.c	8.1	12/31/84)
  10: 
  11: /*
  12: **  ISSUE -- issue query to rest of system
  13: **
  14: **	This function issues a query to the rest of the INGRES system.
  15: **	The sync from below is read, but not passed up.
  16: **
  17: **	Parameters:
  18: **		tree -- pointer to tree to issue.
  19: **
  20: **	Returns:
  21: **		none.
  22: **
  23: **	Side Effects:
  24: **		A query is executed.
  25: **
  26: **	Trace Flags:
  27: **		71
  28: */
  29: 
  30: issue(state, tree)
  31: int state;
  32: QTREE   *tree;
  33: {
  34: #	ifdef xQTR2
  35:     if (tTf(71, 0))
  36:         printf("issue:\n");
  37: #	endif
  38: 
  39:     initp();
  40:     setp(PV_QTREE, tree, 0);
  41:     call(state, NULL);
  42: }
  43: /*
  44: **  ISSUEINVERT -- issue a query, but invert the qualification
  45: **
  46: **	This routine is similar to 'issue', except that it issues
  47: **	a query with the qualification inverted.  The inversion
  48: **	(and subsequent tree normalization) is done on a duplicate
  49: **	of the tree.
  50: **
  51: **	Parameters:
  52: **		root -- the root of the tree to issue.
  53: **
  54: **	Returns:
  55: **		none.
  56: **
  57: **	Side Effects:
  58: **		'root' is issued.
  59: **
  60: **	Trace Flags:
  61: **		none
  62: */
  63: 
  64: issueinvert(root)
  65: QTREE   *root;
  66: {
  67:     register QTREE  *t;
  68:     register QTREE  *uop;
  69:     extern QTREE    *treedup();
  70:     extern QTREE    *trimqlend(), *norml();
  71: 
  72:     /* make duplicate of tree */
  73:     t = treedup(root);
  74: 
  75:     /* prepend NOT node to qualification */
  76:     uop = (QTREE *) need(Qbuf, QT_HDR_SIZ + sizeof(short));
  77:     uop->left = NULL;
  78:     uop->right = t->right;
  79:     uop->sym.type = UOP;
  80:     uop->sym.len = sizeof(short);
  81:     uop->sym.value.sym_op.opno = opNOT;
  82:     t->right = uop;
  83: 
  84:     /* normalize and issue */
  85:     t->right = norml(trimqlend(t->right));
  86:     issue(mdQRY, t);
  87: }

Defined functions

issue defined in line 9; used 1 times
  • in line 86
issueinvert defined in line 64; used 1 times
Last modified: 1986-04-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 886
Valid CSS Valid XHTML 1.0 Strict