1: #
2: /*
3: ** SYMBOL.H -- definition of internal symbols.
4: **
5: ** Version:
6: ** @(#)symbol.h 8.1 12/31/84
7: */
8:
9: # ifndef AND
10:
11:
12:
13: # define AND 'a'
14: # define OR 'o'
15: # define UOP 'U' /* UNARY OPERATORS */
16: # define opPLUS 0
17: # define opMINUS 1
18: # define opNOT 2
19: # define opATAN 3
20: # define opCOS 4
21: # define opGAMMA 5
22: # define opLOG 6
23: # define opASCII 7
24: # define opSIN 8
25: # define opSQRT 9
26: # define opABS 10
27: # define opEXP 11
28: # define opINT1 12
29: # define opINT2 13
30: # define opINT4 14
31: # define opFLOAT4 15
32: # define opFLOAT8 16
33:
34: # define BOP 'B' /* BINARY OPERATORS */
35: # define opADD 0
36: # define opSUB 1
37: # define opMUL 2
38: # define opDIV 3
39: # define opPOW 4
40: # define opEQ 5
41: # define opNE 6
42: # define opLT 7
43: # define opLE 8
44: # define opGT 9
45: # define opGE 10
46: # define opMOD 11
47: # define opCONCAT 12
48:
49: # define AOP 'A' /* AGGREGATE OPERATORS */
50: # define opCOUNT 0
51: # define opCOUNTU 1
52: # define opSUM 2
53: # define opSUMU 3
54: # define opAVG 4
55: # define opAVGU 5
56: # define opMIN 6
57: # define opMAX 7
58: # define opANY 8
59:
60: # define COP 'C' /* CONSTANT OPERATORS */
61: # define BADCOP -1 /* error return on lookup */
62: # define opDBA 0
63: # define opUSERCODE 1
64: # define opDATE 2
65: # define opTIME 3
66:
67:
68: # define RESDOM 'r' /* RESULT DOMAIN NUMBER */
69: # define VAR 'v' /* VARIABLE */
70: # define S_VAR 's' /* variable for which
71: * a substitution has been done, * Only occurs in the ovqp-decomp
72: * merged process.
73: */
74:
75: # define QMODE 'Q' /* QUERY MODE */
76: # define mdRETTERM 0 /* retrieve to terminal, used by decomp-ovqp */
77: # define mdRETR 1 /* retrieve, into rel perhaps */
78: # define mdAPP 2 /* append to rel */
79: # define mdREPL 3 /* replace in rel */
80: # define mdDEL 4 /* delete from rel */
81: # define mdCOPY 5 /* copy into/from rel */
82: # define mdCREATE 6 /* create new relation */
83: # define mdDESTROY 7 /* destroy old relation */
84: # define mdHELP 8 /* print info on relation */
85: # define mdINDEX 9 /* create secondary index */
86: # define mdMODIFY 10 /* change access structure of rel */
87: # define mdPRINT 11 /* print rel on terminal */
88: # define mdRANGE 12 /* declare range variable */
89: # define mdSAVE 13 /* save relation date */
90: /* unused 14 unused */
91: # define mdRET_UNI 15 /* retrieve unique */
92: # define mdVIEW 16 /* extra info for view def, to qrymod */
93: # define mdUPDATE 17 /* update processor */
94: # define mdRESETREL 18 /* modify to truncated */
95: # define mdDISPLAY 19 /* dump qm decl */
96: # define mdNETQRY 20 /* reserved for distr ingres */
97: # define mdMOVEREL 21 /* reserved for distr ingres */
98: # define mdPROT 22 /* extra info for permit def, to qrymod */
99: # define mdINTEG 23 /* extra info for integrity def, to qrymod */
100: # define mdDCREATE 24 /* reserved for distr ingres */
101: # define mdWAITQRY 25 /* reserved for distr ingres */
102: # define mdREMQM 26 /* remove permit integrity definition */
103: # define mdDISTRIB 27 /* reserved for distr ingres */
104: # define mdKSORT 28 /* ksort function */
105: # define mdSYSFUNC 29 /* sysmod routine */
106: # define mdSTOP 30 /* extra info for Heidi */
107:
108: /* special modes used only for control module communication */
109: # define mdQRY 1 /* general query call */
110: # define mdDECOMP 2 /* call decomp */
111: # define mdPARSER 3 /* parser module */
112:
113: # define ROOT 'R' /* ROOT of QUERY TREE */
114: # define QLEND 'q' /* NULL branch at end of QUAL */
115: # define TREE 'T' /* SIGNALS BEGINNING of TREE */
116: # define BYHEAD 'H' /* BY LIST HEAD */
117: # define AGHEAD 'h' /* AGGREGATE HEAD */
118:
119: # define SITE 'S' /* reserved for distr ingres */
120:
121: # define INT 'i' /* INTEGER CONSTANT */
122: # define FLOAT 'f' /* FLOATING POINT CONSTANT */
123: # define CHAR 'c' /* CHARACTER CONSTANT */
124: # define BINARY 'b' /* BINARY CONSTANT (used in printup */
125: # define TUPLE 't' /* TUPLE (used in ctlmod) */
126:
127:
128: # define RESULTVAR '=' /* RESULT RELATION VAR NO. */
129: # define SOURCEID '<' /* SOURCE RELATION NAME(S) */
130: # define RESULTID '>' /* RESULT RELATION NAME */
131:
132:
133:
134:
135: # define CHANGESTRAT 'g' /* FOR OVQP TO DEVISE NEW STRATEGY */
136: # define USERQRY 'u' /* Tells OVQP result rel is a user rel */
137: # define EXIT 'x' /* tells OVQP that query is done */
138: # define ACK 1 /* OVQP should write an acknowledging EOP */
139: # define NOACK 2 /* OVQP should not acknowledge */
140: # define RUBACK 3 /* internal mode for DECOMP */
141: # define REOPENRES 'O' /* OVQP should reopen result relation */
142: # define RETVAL 'V' /* RETURN FROM OVQP */
143: # define UPDATE -3 /* tells DECOMP to call update */
144: # define NOUPDATE -2 /* tells DECOMP not to call update */
145: # define EMPTY -1
146: # define NONEMPTY 0
147: # define EOTUP 'Z' /* end of tuple symbol send by OVQP to equel */
148:
149: /* The following are pattern matching symbols used by ovqp */
150: # define PAT_ANY 1 /* matches 0 or more char */
151: # define PAT_ONE 2 /* matches any one char */
152: # define PAT_LBRAC 3 /* left bracket for char groupings */
153: # define PAT_RBRAC 4 /* right bracket for char groupings */
154: # define PAT_GLOB 5 /* indicates global string matching */
155: # define PAT_SPEC 6 /* matches 0 or more char and indexes them */
156:
157: /* The following are interval delimiter types used by ovqp */
158: # define OPEN 0
159: # define CLOSED 1
160:
161: # endif AND
Defined macros
ACK
defined in line
138;
never used
AND
defined in line
13; used 1 times
AOP
defined in line
49;
never used
BOP
defined in line
34;
never used
CHAR
defined in line
123;
never used
COP
defined in line
60;
never used
EXIT
defined in line
137;
never used
INT
defined in line
121;
never used
OPEN
defined in line
158;
never used
OR
defined in line
14;
never used
QMODE
defined in line
75;
never used
ROOT
defined in line
113;
never used
SITE
defined in line
119;
never used
S_VAR
defined in line
70;
never used
TREE
defined in line
115;
never used
UOP
defined in line
15;
never used
VAR
defined in line
69;
never used
mdAPP
defined in line
78;
never used
mdDEL
defined in line
80;
never used
opABS
defined in line
26;
never used
opADD
defined in line
35;
never used
opANY
defined in line
58;
never used
opAVG
defined in line
54;
never used
opCOS
defined in line
20;
never used
opDBA
defined in line
62;
never used
opDIV
defined in line
38;
never used
opEQ
defined in line
40;
never used
opEXP
defined in line
27;
never used
opGE
defined in line
45;
never used
opGT
defined in line
44;
never used
opLE
defined in line
43;
never used
opLOG
defined in line
22;
never used
opLT
defined in line
42;
never used
opMAX
defined in line
57;
never used
opMIN
defined in line
56;
never used
opMOD
defined in line
46;
never used
opMUL
defined in line
37;
never used
opNE
defined in line
41;
never used
opNOT
defined in line
18;
never used
opPOW
defined in line
39;
never used
opSIN
defined in line
24;
never used
opSUB
defined in line
36;
never used
opSUM
defined in line
52;
never used