Annotation of win32/sql/oracle/include/oci/odci.h, revision 1.1.1.1
1.1 parser 1: /*
2: * $Header: /var/lib/cvsroot/parser3/parser3/src/sql/oracle/oracle32/include/oci/odci.h,v 1.1 2001/08/22 14:02:20 parser Exp $
3: */
4:
5: /* Copyright (c) Oracle Corporation 1998, 1999. All Rights Reserved. */
6:
7: /*
8: NAME
9: odci.h - Oracle Data Cartridge Interface definitions
10:
11: DESCRIPTION
12: This file contains Oracle Data Cartridge Interface definitions. These
13: include the ODCI Types and Constants.
14:
15: RELATED DOCUMENTS
16:
17: INSPECTION STATUS
18: Inspection date:
19: Inspection status:
20: Estimated increasing cost defects per page:
21: Rule sets:
22:
23: ACCEPTANCE REVIEW STATUS
24: Review date:
25: Review status:
26: Reviewers:
27:
28: PUBLIC FUNCTION(S)
29: <list of external functions declared/defined - with one-line descriptions>
30:
31: PRIVATE FUNCTION(S)
32: <list of static functions defined in .c file - with one-line descriptions>
33:
34: EXAMPLES
35:
36: NOTES
37: - The constants defined here are replica of the constants defined
38: in ODCIConst Package defined as part of catodci.sql. If you change
39: these do make the similar change in catodci.sql.
40:
41: MODIFIED (MM/DD/YY)
42: nagarwal 03/07/99 - bug# 838308 - set estimate_stats=1
43: rmurthy 11/09/98 - add blocking flag
44: ddas 10/31/98 - add ODCI_QUERY_SORT_ASC and ODCI_QUERY_SORT_DESC
45: ddas 05/26/98 - fix ODCIPredInfo flag bits
46: rmurthy 06/03/98 - add macro for RegularCall
47: spsundar 05/08/98 - add constants related to ODCIIndexAlter options
48: rmurthy 04/30/98 - remove include s.h
49: rmurthy 04/20/98 - name fixes
50: rmurthy 04/13/98 - add C mappings for odci types
51: alsrivas 04/10/98 - adding defines for ODCI_INDEX1
52: jsriniva 04/04/98 - Creation
53:
54: */
55:
56: #ifndef OCI_ORACLE
57: # include <oci.h>
58: #endif
59: #ifndef ODCI_ORACLE
60: # define ODCI_ORACLE
61:
62: /*---------------------------------------------------------------------------*/
63: /* SHORT NAMES SUPPORT SECTION */
64: /*---------------------------------------------------------------------------*/
65:
66: #ifdef SLSHORTNAME
67:
68: /* The following are short names that are only supported on IBM mainframes
69: * with the SLSHORTNAME defined.
70: * With this all subsequent long names will actually be substituted with
71: * the short names here
72: */
73:
74: #define ODCIColInfo_ref odcicir
75: #define ODCIColInfoList odcicil
76: #define ODCIIndexInfo_ref odciiir
77: #define ODCIPredInfo_ref odcipir
78: #define ODCIRidList odcirl
79: #define ODCIIndexCtx_ref odciicr
80: #define ODCIObject_ref odcior
81: #define ODCIObjectList odciol
82: #define ODCIQueryInfo_ref odciqir
83: #define ODCIFuncInfo_ref odcifir
84: #define ODCICost_ref odcicr
85: #define ODCIArgDesc_ref odciadr
86: #define ODCIArgDescList odciadl
87: #define ODCIStatsOptions_ref odcisor
88: #define ODCIColInfo odcici
89: #define ODCIColInfo_ind odcicii
90: #define ODCIIndexInfo odciii
91: #define ODCIIndexInfo_ind odciiii
92: #define ODCIPredInfo odcipi
93: #define ODCIPredInfo_ind odcipii
94: #define ODCIIndexCtx odciic
95: #define ODCIIndexCtx_ind odciici
96: #define ODCIObject odcio
97: #define ODCIObject_ind odcioi
98: #define ODCIQueryInfo odciqi
99: #define ODCIQueryInfo_ind odciqii
100: #define ODCIFuncInfo odcifi
101: #define ODCIFuncInfo_infd odcifii
102: #define ODCICost odcic
103: #define ODCICost_ind odcici
104: #define ODCIArgDesc odciad
105: #define ODCIArgDesc_ind odciadi
106: #define ODCIStatsOptions odciso
107: #define ODCIStatsOptions_ind odcisoi
108:
109: #endif /* SLSHORTNAME */
110:
111: /*---------------------------------------------------------------------------
112: PUBLIC TYPES AND CONSTANTS
113: ---------------------------------------------------------------------------*/
114:
115: /* Constants for Return Status */
116: #define ODCI_SUCCESS 0
117: #define ODCI_ERROR 1
118: #define ODCI_WARNING 2
119:
120: /* Constants for ODCIPredInfo.Flags */
121: #define ODCI_PRED_EXACT_MATCH 0x0001
122: #define ODCI_PRED_PREFIX_MATCH 0x0002
123: #define ODCI_PRED_INCLUDE_START 0x0004
124: #define ODCI_PRED_INCLUDE_STOP 0x0008
125: #define ODCI_PRED_OBJECT_FUNC 0x0010
126: #define ODCI_PRED_OBJECT_PKG 0x0020
127: #define ODCI_PRED_OBJECT_TYPE 0x0040
128:
129: /* Constants for QueryInfo.Flags */
130: #define ODCI_QUERY_FIRST_ROWS 0x01
131: #define ODCI_QUERY_ALL_ROWS 0x02
132: #define ODCI_QUERY_SORT_ASC 0x04
133: #define ODCI_QUERY_SORT_DESC 0x08
134: #define ODCI_QUERY_BLOCKING 0x10
135:
136: /* Constants for ScnFlg(Func /w Index Context) */
137: #define ODCI_CLEANUP_CALL 1
138: #define ODCI_REGULAR_CALL 2
139:
140: /* Constants for ODCIFuncInfo.Flags */
141: #define ODCI_OBJECT_FUNC 0x01
142: #define ODCI_OBJECT_PKG 0x02
143: #define ODCI_OBJECT_TYPE 0x04
144:
145: /* Constants for ODCIArgDesc.ArgType */
146: #define ODCI_ARG_OTHER 1
147: #define ODCI_ARG_COL 2 /* column */
148: #define ODCI_ARG_LIT 3 /* literal */
149: #define ODCI_ARG_ATTR 4 /* object attribute */
150: #define ODCI_ARG_NULL 5
151:
152: /* Constants for ODCIStatsOptions.Options */
153: #define ODCI_PERCENT_OPTION 1
154: #define ODCI_ROW_OPTION 2
155:
156: /* Constants for ODCIStatsOptions.Flags */
157: #define ODCI_ESTIMATE_STATS 0x01
158: #define ODCI_COMPUTE_STATS 0x02
159: #define ODCI_VALIDATE 0x04
160:
161: /* Constants for ODCIIndexAlter parameter alter_option */
162: #define ODCI_ALTIDX_NONE 0
163: #define ODCI_ALTIDX_RENAME 1
164: #define ODCI_ALTIDX_REBUILD 2
165: #define ODCI_ALTIDX_REBUILD_ONL 3
166:
167: /*---------------------------------------------------------------------------
168: ODCI TYPES
169: ---------------------------------------------------------------------------*/
170: /*
171: * These are C mappings for the OTS types defined in catodci.sql
172: */
173:
174: typedef OCIRef ODCIColInfo_ref;
175: typedef OCIArray ODCIColInfoList;
176: typedef OCIRef ODCIIndexInfo_ref;
177: typedef OCIRef ODCIPredInfo_ref;
178: typedef OCIArray ODCIRidList;
179: typedef OCIRef ODCIIndexCtx_ref;
180: typedef OCIRef ODCIObject_ref;
181: typedef OCIArray ODCIObjectList;
182: typedef OCIRef ODCIQueryInfo_ref;
183: typedef OCIRef ODCIFuncInfo_ref;
184: typedef OCIRef ODCICost_ref;
185: typedef OCIRef ODCIArgDesc_ref;
186: typedef OCIArray ODCIArgDescList;
187: typedef OCIRef ODCIStatsOptions_ref;
188:
189: struct ODCIColInfo
190: {
191: OCIString* TableSchema;
192: OCIString* TableName;
193: OCIString* ColName;
194: OCIString* ColTypName;
195: OCIString* ColTypSchema;
196: };
197: typedef struct ODCIColInfo ODCIColInfo;
198:
199: struct ODCIColInfo_ind
200: {
201: OCIInd atomic;
202: OCIInd TableSchema;
203: OCIInd TableName;
204: OCIInd ColName;
205: OCIInd ColTypName;
206: OCIInd ColTypSchema;
207: };
208: typedef struct ODCIColInfo_ind ODCIColInfo_ind;
209:
210: struct ODCIIndexInfo
211: {
212: OCIString* IndexSchema;
213: OCIString* IndexName;
214: ODCIColInfoList* IndexCols;
215: };
216: typedef struct ODCIIndexInfo ODCIIndexInfo;
217:
218: struct ODCIIndexInfo_ind
219: {
220: OCIInd atomic;
221: OCIInd IndexSchema;
222: OCIInd IndexName;
223: OCIInd IndexCols;
224: };
225: typedef struct ODCIIndexInfo_ind ODCIIndexInfo_ind;
226:
227: struct ODCIPredInfo
228: {
229: OCIString* ObjectSchema;
230: OCIString* ObjectName;
231: OCIString* MethodName;
232: OCINumber Flags;
233: };
234: typedef struct ODCIPredInfo ODCIPredInfo;
235:
236: struct ODCIPredInfo_ind
237: {
238: OCIInd atomic;
239: OCIInd ObjectSchema;
240: OCIInd ObjectName;
241: OCIInd MethodName;
242: OCIInd Flags;
243: };
244: typedef struct ODCIPredInfo_ind ODCIPredInfo_ind;
245:
246: struct ODCIIndexCtx
247: {
248: struct ODCIIndexInfo IndexInfo;
249: OCIString* Rid;
250: };
251: typedef struct ODCIIndexCtx ODCIIndexCtx;
252:
253: struct ODCIIndexCtx_ind
254: {
255: OCIInd atomic;
256: struct ODCIIndexInfo_ind IndexInfo;
257: OCIInd Rid;
258: };
259: typedef struct ODCIIndexCtx_ind ODCIIndexCtx_ind;
260:
261: struct ODCIObject
262: {
263: OCIString* ObjectSchema;
264: OCIString* ObjectName;
265: };
266: typedef struct ODCIObject ODCIObject;
267:
268: struct ODCIObject_ind
269: {
270: OCIInd atomic;
271: OCIInd ObjectSchema;
272: OCIInd ObjectName;
273: };
274: typedef struct ODCIObject_ind ODCIObject_ind;
275:
276: struct ODCIQueryInfo
277: {
278: OCINumber Flags;
279: ODCIObjectList* AncOps;
280: };
281: typedef struct ODCIQueryInfo ODCIQueryInfo;
282:
283:
284: struct ODCIQueryInfo_ind
285: {
286: OCIInd atomic;
287: OCIInd Flags;
288: OCIInd AncOps;
289: };
290: typedef struct ODCIQueryInfo_ind ODCIQueryInfo_ind;
291:
292: struct ODCIFuncInfo
293: {
294: OCIString* ObjectSchema;
295: OCIString* ObjectName;
296: OCIString* MethodName;
297: OCINumber Flags;
298: };
299: typedef struct ODCIFuncInfo ODCIFuncInfo;
300:
301: struct ODCIFuncInfo_ind
302: {
303: OCIInd atomic;
304: OCIInd ObjectSchema;
305: OCIInd ObjectName;
306: OCIInd MethodName;
307: OCIInd Flags;
308: };
309: typedef struct ODCIFuncInfo_ind ODCIFuncInfo_ind;
310:
311: struct ODCICost
312: {
313: OCINumber CPUcost;
314: OCINumber IOcost;
315: OCINumber NetworkCost;
316: };
317: typedef struct ODCICost ODCICost;
318:
319: struct ODCICost_ind
320: {
321: OCIInd atomic;
322: OCIInd CPUcost;
323: OCIInd IOcost;
324: OCIInd NetworkCost;
325: };
326: typedef struct ODCICost_ind ODCICost_ind;
327:
328: struct ODCIArgDesc
329: {
330: OCINumber ArgType;
331: OCIString* TableName;
332: OCIString* TableSchema;
333: OCIString* ColName;
334: };
335: typedef struct ODCIArgDesc ODCIArgDesc;
336:
337: struct ODCIArgDesc_ind
338: {
339: OCIInd atomic;
340: OCIInd ArgType;
341: OCIInd TableName;
342: OCIInd TableSchema;
343: OCIInd ColName;
344: };
345: typedef struct ODCIArgDesc_ind ODCIArgDesc_ind;
346:
347: struct ODCIStatsOptions
348: {
349: OCINumber Sample;
350: OCINumber Options;
351: OCINumber Flags;
352: };
353: typedef struct ODCIStatsOptions ODCIStatsOptions;
354:
355: struct ODCIStatsOptions_ind
356: {
357: OCIInd atomic;
358: OCIInd Sample;
359: OCIInd Options;
360: OCIInd Flags;
361: };
362: typedef struct ODCIStatsOptions_ind ODCIStatsOptions_ind;
363:
364:
365: /*---------------------------------------------------------------------------
366: PRIVATE TYPES AND CONSTANTS
367: ---------------------------------------------------------------------------*/
368:
369:
370: /*---------------------------------------------------------------------------
371: PUBLIC FUNCTIONS
372: ---------------------------------------------------------------------------*/
373:
374:
375: /*---------------------------------------------------------------------------
376: PRIVATE FUNCTIONS
377: ---------------------------------------------------------------------------*/
378:
379:
380: #endif /* ODCI_ORACLE */
E-mail: