blob: c65cfad689ff8f4989eb8e722a96f90fb2a87ba3 [file] [log] [blame]
Tang Cheng37650ea2014-10-20 16:14:41 +08001/*
2 *
3 */
4
5/* Copyright (c) 1998, 2010, Oracle and/or its affiliates.
6All rights reserved. */
7
8/*
9 NAME
10 odci.h - Oracle Data Cartridge Interface definitions
11
12 DESCRIPTION
13 This file contains Oracle Data Cartridge Interface definitions. These
14 include the ODCI Types and Constants.
15
16 RELATED DOCUMENTS
17
18 INSPECTION STATUS
19 Inspection date:
20 Inspection status:
21 Estimated increasing cost defects per page:
22 Rule sets:
23
24 ACCEPTANCE REVIEW STATUS
25 Review date:
26 Review status:
27 Reviewers:
28
29 PUBLIC FUNCTION(S)
30 None.
31
32 PRIVATE FUNCTION(S)
33 None.
34
35 EXAMPLES
36
37 NOTES
38 - The constants defined here are replica of the constants defined
39 in ODCIConst Package defined as part of catodci.sql. If you change
40 these do make the similar change in catodci.sql.
41
42 MODIFIED (MM/DD/YY)
43 yhu 02/03/10 - add a new flag ODCI_INDEX_UGI
44 spsundar 09/13/07 -
45 yhu 06/02/06 - add callproperty for statistics
46 yhu 05/22/06 - add ODCI_NODATA to speed rebuild empty index or ind.
47 part.
48 srirkris 05/09/06 - change ODCIOrderByInfo_ind
49 srirkris 02/06/06 - add definitions for CDI query.
50 spsundar 02/17/06 - add fields/types for system managed domain idx
51 yhu 02/08/06 - add RenameCol Na d RenameTopADT
52 yhu 03/11/05 - add flags for rename column and rename table
53 spsundar 11/28/05 - add fields/types for composite domain idx
54 yhu 12/06/05 - mapping table for local text indexes
55 dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
56 ayoaz 04/21/03 - add CursorNum to ODCIEnv
57 abrumm 12/30/02 - Bug #2223225: add define for
58 ODCI_ARG_DESC_LIST_MAXSIZE
59 ayoaz 10/14/02 - Add Cardinality to ODCIArgDesc
60 ayoaz 09/11/02 - add ODCIQueryInfo to ODCIIndexCtx
61 yhu 09/19/02 - add ODCI_DEBUGGING_ON for ODCIEnv.EnvFlags
62 hsbedi 10/10/02 - add object number into ODCIExtTableInfo
63 ayoaz 08/30/02 - add ODCITable2 types
64 tchorma 07/29/02 - Add ODCIFuncCallInfo type for WITH COLUMN CONTEXT
65 hsbedi 06/29/02 - External table populate
66 yhu 07/20/01 - add parallel degree in ODCIIndexInfo.
67 abrumm 02/20/01 - ODCIExtTableInfo: add AccessParmBlob attribute
68 abrumm 01/18/01 - ODCIExtTableInfo: add default directory
69 spsundar 08/24/00 - Update attrbiute positions
70 abrumm 08/04/00 - external tables changes: ODCIExtTableInfo, constants
71 tchorma 09/11/00 - Add return code ODCI_FATAL
72 tchorma 08/08/00 - Add Update Block References Option for Alter Index
73 ayoaz 08/01/00 - Add ODCI_AGGREGATE_REUSE_CTX
74 spsundar 06/19/00 - add ODCIEnv type
75 abrumm 06/27/00 - add defines for ODCIExtTable flags
76 abrumm 06/04/00 - external tables: ODCIExtTableInfo change; add ODCIEnv
77 ddas 04/28/00 - extensible optimizer enhancements for 8.2
78 yhu 06/05/00 - add a bit in IndexInfoFlags for trans. tblspc
79 yhu 04/10/00 - add ODCIPartInfo & remove ODCIIndexPartList
80 abrumm 03/29/00 - external table support
81 spsundar 02/14/00 - update odci definitions for 8.2
82 nagarwal 03/07/99 - bug# 838308 - set estimate_stats=1
83 rmurthy 11/09/98 - add blocking flag
84 ddas 10/31/98 - add ODCI_QUERY_SORT_ASC and ODCI_QUERY_SORT_DESC
85 ddas 05/26/98 - fix ODCIPredInfo flag bits
86 rmurthy 06/03/98 - add macro for RegularCall
87 spsundar 05/08/98 - add constants related to ODCIIndexAlter options
88 rmurthy 04/30/98 - remove include s.h
89 rmurthy 04/20/98 - name fixes
90 rmurthy 04/13/98 - add C mappings for odci types
91 alsrivas 04/10/98 - adding defines for ODCI_INDEX1
92 jsriniva 04/04/98 - Creation
93
94*/
95
96#ifndef OCI_ORACLE
97# include <oci.h>
98#endif
99#ifndef ODCI_ORACLE
100# define ODCI_ORACLE
101
102/*---------------------------------------------------------------------------*/
103/* SHORT NAMES SUPPORT SECTION */
104/*---------------------------------------------------------------------------*/
105
106#ifdef SLSHORTNAME
107
108/* The following are short names that are only supported on IBM mainframes
109 * with the SLSHORTNAME defined.
110 * With this all subsequent long names will actually be substituted with
111 * the short names here
112 */
113
114#define ODCIColInfo_ref odcicir
115#define ODCIColInfoList odcicil
116#define ODCIColInfoList2 odcicil2
117#define ODCIIndexInfo_ref odciiir
118#define ODCIPredInfo_ref odcipir
119#define ODCIRidList odcirl
120#define ODCIIndexCtx_ref odciicr
121#define ODCIObject_ref odcior
122#define ODCIObjectList odciol
123#define ODCIQueryInfo_ref odciqir
124#define ODCIFuncInfo_ref odcifir
125#define ODCICost_ref odcicr
126#define ODCIArgDesc_ref odciadr
127#define ODCIArgDescList odciadl
128#define ODCIStatsOptions_ref odcisor
129#define ODCIColInfo odcici
130#define ODCIColInfo_ind odcicii
131#define ODCIIndexInfo odciii
132#define ODCIIndexInfo_ind odciiii
133#define ODCIPredInfo odcipi
134#define ODCIPredInfo_ind odcipii
135#define ODCIIndexCtx odciic
136#define ODCIIndexCtx_ind odciici
137#define ODCIObject odcio
138#define ODCIObject_ind odcioi
139#define ODCIQueryInfo odciqi
140#define ODCIQueryInfo_ind odciqii
141#define ODCIFuncInfo odcifi
142#define ODCIFuncInfo_infd odcifii
143#define ODCICost odcic
144#define ODCICost_ind odcici
145#define ODCIArgDesc odciad
146#define ODCIArgDesc_ind odciadi
147#define ODCIStatsOptions odciso
148#define ODCIStatsOptions_ind odcisoi
149#define ODCIPartInfo odcipti
150#define ODCIPartInfo_ind odciptii
151#define ODCIPartInfo_ref odciptir
152#define ODCIExtTableInfo odcixt
153#define ODCIExtTableInfo_ind odcixti
154#define ODCIExtTableInfo_ref odcixtr
155#define ODCIExtTableQCInfo odcixq
156#define ODCIExtTableQCInfo_ind odcixqi
157#define ODCIExtTableQCInfo_ref odcixqr
158#define ODCIFuncCallInfo odcifc
159#define ODCIFuncCall_ind odcifci
160#define ODCIFuncCall_ref odcifcr
161#define ODCIColValList odcicvl
162#define ODCIColArrayList odcical
163#define ODCIFilterInfoList odciflil
164#define ODCIOrderByInfoList odciobil
165#define ODCIFilterInfo_ref odciflir
166#define ODCIOrderByInfo_ref odciobir
167#define ODCICompQueryInfo_ref odcicqir
168#define ODCIFilterInfo odcifli
169#define ODCIOrderByInfo odciobi
170#define ODCICompQueryInfo odcicqi
171#define ODCIFilterInfo_ind odciflii
172#define ODCIOrderByInfo_ind odciobii
173#define ODCICompQueryInfo_ind odcicqii
174
175#endif /* SLSHORTNAME */
176
177/*---------------------------------------------------------------------------
178 PUBLIC TYPES AND CONSTANTS
179 ---------------------------------------------------------------------------*/
180
181/* Constants for Return Status */
182#define ODCI_SUCCESS 0
183#define ODCI_ERROR 1
184#define ODCI_WARNING 2
185#define ODCI_ERROR_CONTINUE 3
186#define ODCI_FATAL 4
187
188/* Constants for ODCIPredInfo.Flags */
189#define ODCI_PRED_EXACT_MATCH 0x0001
190#define ODCI_PRED_PREFIX_MATCH 0x0002
191#define ODCI_PRED_INCLUDE_START 0x0004
192#define ODCI_PRED_INCLUDE_STOP 0x0008
193#define ODCI_PRED_OBJECT_FUNC 0x0010
194#define ODCI_PRED_OBJECT_PKG 0x0020
195#define ODCI_PRED_OBJECT_TYPE 0x0040
196#define ODCI_PRED_MULTI_TABLE 0x0080
197#define ODCI_PRED_NOT_EQUAL 0x0100
198
199/* Constants for QueryInfo.Flags */
200#define ODCI_QUERY_FIRST_ROWS 0x01
201#define ODCI_QUERY_ALL_ROWS 0x02
202#define ODCI_QUERY_SORT_ASC 0x04
203#define ODCI_QUERY_SORT_DESC 0x08
204#define ODCI_QUERY_BLOCKING 0x10
205
206/* Constants for ScnFlg(Func /w Index Context) */
207#define ODCI_CLEANUP_CALL 1
208#define ODCI_REGULAR_CALL 2
209
210/* Constants for ODCIFuncInfo.Flags */
211#define ODCI_OBJECT_FUNC 0x01
212#define ODCI_OBJECT_PKG 0x02
213#define ODCI_OBJECT_TYPE 0x04
214
215/* Constants for ODCIArgDesc.ArgType */
216#define ODCI_ARG_OTHER 1
217#define ODCI_ARG_COL 2 /* column */
218#define ODCI_ARG_LIT 3 /* literal */
219#define ODCI_ARG_ATTR 4 /* object attribute */
220#define ODCI_ARG_NULL 5
221#define ODCI_ARG_CURSOR 6
222
223/* Maximum size of ODCIArgDescList array */
224#define ODCI_ARG_DESC_LIST_MAXSIZE 32767
225
226/* Constants for ODCIStatsOptions.Options */
227#define ODCI_PERCENT_OPTION 1
228#define ODCI_ROW_OPTION 2
229
230/* Constants for ODCIStatsOptions.Flags */
231#define ODCI_ESTIMATE_STATS 0x01
232#define ODCI_COMPUTE_STATS 0x02
233#define ODCI_VALIDATE 0x04
234
235/* Constants for ODCIIndexAlter parameter alter_option */
236#define ODCI_ALTIDX_NONE 0
237#define ODCI_ALTIDX_RENAME 1
238#define ODCI_ALTIDX_REBUILD 2
239#define ODCI_ALTIDX_REBUILD_ONL 3
240#define ODCI_ALTIDX_MODIFY_COL 4
241#define ODCI_ALTIDX_UPDATE_BLOCK_REFS 5
242#define ODCI_ALTIDX_RENAME_COL 6
243#define ODCI_ALTIDX_RENAME_TAB 7
244#define ODCI_ALTIDX_MIGRATE 8
245
246/* Constants for ODCIIndexInfo.IndexInfoFlags */
247#define ODCI_INDEX_LOCAL 0x0001
248#define ODCI_INDEX_RANGE_PARTN 0x0002
249#define ODCI_INDEX_HASH_PARTN 0x0004
250#define ODCI_INDEX_ONLINE 0x0008
251#define ODCI_INDEX_PARALLEL 0x0010
252#define ODCI_INDEX_UNUSABLE 0x0020
253#define ODCI_INDEX_ONIOT 0x0040
254#define ODCI_INDEX_TRANS_TBLSPC 0x0080
255#define ODCI_INDEX_FUNCTION_IDX 0x0100
256#define ODCI_INDEX_LIST_PARTN 0x0200
257#define ODCI_INDEX_UGI 0x0400
258
259/* Constants for ODCIIndexInfo.IndexParaDegree */
260#define ODCI_INDEX_DEFAULT_DEGREE 32767
261
262/* Constants for ODCIEnv.EnvFlags */
263#define ODCI_DEBUGGING_ON 0x01
264#define ODCI_NODATA 0x02
265
266/* Constants for ODCIEnv.CallProperty */
267#define ODCI_CALL_NONE 0
268#define ODCI_CALL_FIRST 1
269#define ODCI_CALL_INTERMEDIATE 2
270#define ODCI_CALL_FINAL 3
271#define ODCI_CALL_REBUILD_INDEX 4
272#define ODCI_CALL_REBUILD_PMO 5
273#define ODCI_CALL_STATSGLOBAL 6
274#define ODCI_CALL_STATSGLOBALANDPARTITION 7
275#define ODCI_CALL_STATSPARTITION 8
276
277/* Constants for ODCIExtTableInfo.OpCode */
278#define ODCI_EXTTABLE_INFO_OPCODE_FETCH 1
279#define ODCI_EXTTABLE_INFO_OPCODE_POPULATE 2
280
281/* Constants (bit definitions) for ODCIExtTableInfo.Flag */
282 /* sampling type: row or block */
283#define ODCI_EXTTABLE_INFO_FLAG_SAMPLE 0x00000001
284#define ODCI_EXTTABLE_INFO_FLAG_SAMPLE_BLOCK 0x00000002
285 /* AccessParmClob, AccessParmBlob discriminator */
286#define ODCI_EXTTABLE_INFO_FLAG_ACCESS_PARM_CLOB 0x00000004
287#define ODCI_EXTTABLE_INFO_FLAG_ACCESS_PARM_BLOB 0x00000008
288
289/* Constants for ODCIExtTableInfo.IntraSourceConcurrency */
290#define ODCI_TRUE 1
291#define ODCI_FALSE 0
292
293/* Constants (bit definitions) for ODCIExtTable{Open,Fetch,Populate,Close}
294 * Flag argument.
295 */
296#define ODCI_EXTTABLE_OPEN_FLAGS_QC 0x00000001 /* caller is Query Coord */
297#define ODCI_EXTTABLE_OPEN_FLAGS_SHADOW 0x00000002 /* caller is shadow proc */
298#define ODCI_EXTTABLE_OPEN_FLAGS_SLAVE 0x00000004 /* caller is slave proc */
299
300#define ODCI_EXTTABLE_FETCH_FLAGS_EOS 0x00000001 /* end-of-stream on fetch */
301
302/* Constants for Flags argument to ODCIAggregateTerminate */
303#define ODCI_AGGREGATE_REUSE_CTX 1
304
305/* Constants for ODCIColInfo.Flags */
306#define ODCI_COMP_FILTERBY_COL 0x0001
307#define ODCI_COMP_ORDERBY_COL 0x0002
308#define ODCI_COMP_ORDERDSC_COL 0x0004
309#define ODCI_COMP_UPDATED_COL 0x0008
310#define ODCI_COMP_RENAMED_COL 0x0010
311#define ODCI_COMP_RENAMED_TOPADT 0x0020
312
313/* Constants for ODCIOrderByInfo.ExprType */
314#define ODCI_COLUMN_EXPR 1
315#define ODCI_ANCOP_EXPR 2
316
317/* Constants for ODCIOrderByInfo.SortOrder */
318#define ODCI_SORT_ASC 1
319#define ODCI_SORT_DESC 2
320#define ODCI_NULLS_FIRST 4
321
322/* Constants for ODCIPartInfo.PartOp */
323#define ODCI_ADD_PARTITION 1
324#define ODCI_DROP_PARTITION 2
325
326/*---------------------------------------------------------------------------
327 ODCI TYPES
328 ---------------------------------------------------------------------------*/
329/*
330 * These are C mappings for the OTS types defined in catodci.sql
331 */
332
333typedef OCIRef ODCIColInfo_ref;
334typedef OCIArray ODCIColInfoList;
335typedef OCIArray ODCIColInfoList2;
336typedef OCIRef ODCIIndexInfo_ref;
337typedef OCIRef ODCIPredInfo_ref;
338typedef OCIArray ODCIRidList;
339typedef OCIRef ODCIIndexCtx_ref;
340typedef OCIRef ODCIObject_ref;
341typedef OCIArray ODCIObjectList;
342typedef OCIRef ODCIQueryInfo_ref;
343typedef OCIRef ODCIFuncInfo_ref;
344typedef OCIRef ODCICost_ref;
345typedef OCIRef ODCIArgDesc_ref;
346typedef OCIArray ODCIArgDescList;
347typedef OCIRef ODCIStatsOptions_ref;
348typedef OCIRef ODCIPartInfo_ref;
349typedef OCIRef ODCIEnv_ref;
350typedef OCIRef ODCIExtTableInfo_ref; /* external table support */
351typedef OCIArray ODCIGranuleList; /* external table support */
352typedef OCIRef ODCIExtTableQCInfo_ref; /* external table support */
353typedef OCIRef ODCIFuncCallInfo_ref;
354typedef OCIArray ODCINumberList;
355typedef OCIArray ODCIPartInfoList;
356typedef OCIArray ODCIColValList;
357typedef OCIArray ODCIColArrayList;
358typedef OCIArray ODCIFilterInfoList;
359typedef OCIArray ODCIOrderByInfoList;
360typedef OCIRef ODCIFilterInfo_ref;
361typedef OCIRef ODCIOrderByInfo_ref;
362typedef OCIRef ODCICompQueryInfo_ref;
363
364struct ODCIColInfo
365{
366 OCIString* TableSchema;
367 OCIString* TableName;
368 OCIString* ColName;
369 OCIString* ColTypName;
370 OCIString* ColTypSchema;
371 OCIString* TablePartition;
372 OCINumber ColFlags;
373 OCINumber ColOrderPos;
374 OCINumber TablePartitionIden;
375 OCINumber TablePartitionTotal;
376};
377typedef struct ODCIColInfo ODCIColInfo;
378
379struct ODCIColInfo_ind
380{
381 OCIInd atomic;
382 OCIInd TableSchema;
383 OCIInd TableName;
384 OCIInd ColName;
385 OCIInd ColTypName;
386 OCIInd ColTypSchema;
387 OCIInd TablePartition;
388 OCIInd ColFlags;
389 OCIInd ColOrderPos;
390 OCIInd TablePartitionIden;
391 OCIInd TablePartitionTotal;
392};
393typedef struct ODCIColInfo_ind ODCIColInfo_ind;
394
395struct ODCIFuncCallInfo
396{
397 struct ODCIColInfo ColInfo;
398};
399
400struct ODCIFuncCallInfo_ind
401{
402 struct ODCIColInfo_ind ColInfo;
403};
404
405struct ODCIIndexInfo
406{
407 OCIString* IndexSchema;
408 OCIString* IndexName;
409 ODCIColInfoList* IndexCols;
410 OCIString* IndexPartition;
411 OCINumber IndexInfoFlags;
412 OCINumber IndexParaDegree;
413 OCINumber IndexPartitionIden;
414 OCINumber IndexPartitionTotal;
415};
416typedef struct ODCIIndexInfo ODCIIndexInfo;
417
418struct ODCIIndexInfo_ind
419{
420 OCIInd atomic;
421 OCIInd IndexSchema;
422 OCIInd IndexName;
423 OCIInd IndexCols;
424 OCIInd IndexPartition;
425 OCIInd IndexInfoFlags;
426 OCIInd IndexParaDegree;
427 OCIInd IndexPartitionIden;
428 OCIInd IndexPartitionTotal;
429};
430typedef struct ODCIIndexInfo_ind ODCIIndexInfo_ind;
431
432struct ODCIPredInfo
433{
434 OCIString* ObjectSchema;
435 OCIString* ObjectName;
436 OCIString* MethodName;
437 OCINumber Flags;
438};
439typedef struct ODCIPredInfo ODCIPredInfo;
440
441struct ODCIPredInfo_ind
442{
443 OCIInd atomic;
444 OCIInd ObjectSchema;
445 OCIInd ObjectName;
446 OCIInd MethodName;
447 OCIInd Flags;
448};
449typedef struct ODCIPredInfo_ind ODCIPredInfo_ind;
450
451struct ODCIFilterInfo
452{
453 ODCIColInfo ColInfo;
454 OCINumber Flags;
455 OCIAnyData *strt;
456 OCIAnyData *stop;
457};
458typedef struct ODCIFilterInfo ODCIFilterInfo;
459
460struct ODCIFilterInfo_ind
461{
462 OCIInd atomic;
463 ODCIColInfo_ind ColInfo;
464 OCIInd Flags;
465 OCIInd strt;
466 OCIInd stop;
467};
468typedef struct ODCIFilterInfo_ind ODCIFilterInfo_ind;
469
470
471struct ODCIOrderByInfo
472{
473 OCINumber ExprType;
474 OCIString *ObjectSchema;
475 OCIString *TableName;
476 OCIString *ExprName;
477 OCINumber SortOrder;
478};
479typedef struct ODCIOrderByInfo ODCIOrderByInfo;
480
481struct ODCIOrderByInfo_ind
482{
483 OCIInd atomic;
484 OCIInd ExprType;
485 OCIInd ObjectSchema;
486 OCIInd TableName;
487 OCIInd ExprName;
488 OCIInd SortOrder;
489};
490typedef struct ODCIOrderByInfo_ind ODCIOrderByInfo_ind;
491
492
493struct ODCICompQueryInfo
494{
495 ODCIFilterInfoList *PredInfo;
496 ODCIOrderByInfoList *ObyInfo;
497};
498typedef struct ODCICompQueryInfo ODCICompQueryInfo;
499
500struct ODCICompQueryInfo_ind
501{
502 OCIInd atomic;
503 OCIInd PredInfo;
504 OCIInd ObyInfo;
505};
506typedef struct ODCICompQueryInfo_ind ODCICompQueryInfo_ind;
507
508
509struct ODCIObject
510{
511 OCIString* ObjectSchema;
512 OCIString* ObjectName;
513};
514typedef struct ODCIObject ODCIObject;
515
516struct ODCIObject_ind
517{
518 OCIInd atomic;
519 OCIInd ObjectSchema;
520 OCIInd ObjectName;
521};
522typedef struct ODCIObject_ind ODCIObject_ind;
523
524struct ODCIQueryInfo
525{
526 OCINumber Flags;
527 ODCIObjectList* AncOps;
528 ODCICompQueryInfo CompInfo;
529};
530typedef struct ODCIQueryInfo ODCIQueryInfo;
531
532
533struct ODCIQueryInfo_ind
534{
535 OCIInd atomic;
536 OCIInd Flags;
537 OCIInd AncOps;
538 ODCICompQueryInfo_ind CompInfo;
539};
540typedef struct ODCIQueryInfo_ind ODCIQueryInfo_ind;
541
542struct ODCIIndexCtx
543{
544 struct ODCIIndexInfo IndexInfo;
545 OCIString* Rid;
546 struct ODCIQueryInfo QueryInfo;
547};
548typedef struct ODCIIndexCtx ODCIIndexCtx;
549
550struct ODCIIndexCtx_ind
551{
552 OCIInd atomic;
553 struct ODCIIndexInfo_ind IndexInfo;
554 OCIInd Rid;
555 struct ODCIQueryInfo_ind QueryInfo;
556};
557typedef struct ODCIIndexCtx_ind ODCIIndexCtx_ind;
558
559struct ODCIFuncInfo
560{
561 OCIString* ObjectSchema;
562 OCIString* ObjectName;
563 OCIString* MethodName;
564 OCINumber Flags;
565};
566typedef struct ODCIFuncInfo ODCIFuncInfo;
567
568struct ODCIFuncInfo_ind
569{
570 OCIInd atomic;
571 OCIInd ObjectSchema;
572 OCIInd ObjectName;
573 OCIInd MethodName;
574 OCIInd Flags;
575};
576typedef struct ODCIFuncInfo_ind ODCIFuncInfo_ind;
577
578struct ODCICost
579{
580 OCINumber CPUcost;
581 OCINumber IOcost;
582 OCINumber NetworkCost;
583 OCIString* IndexCostInfo;
584};
585typedef struct ODCICost ODCICost;
586
587struct ODCICost_ind
588{
589 OCIInd atomic;
590 OCIInd CPUcost;
591 OCIInd IOcost;
592 OCIInd NetworkCost;
593 OCIInd IndexCostInfo;
594};
595typedef struct ODCICost_ind ODCICost_ind;
596
597struct ODCIArgDesc
598{
599 OCINumber ArgType;
600 OCIString* TableName;
601 OCIString* TableSchema;
602 OCIString* ColName;
603 OCIString* TablePartitionLower;
604 OCIString* TablePartitionUpper;
605 OCINumber Cardinality;
606};
607typedef struct ODCIArgDesc ODCIArgDesc;
608
609struct ODCIArgDesc_ind
610{
611 OCIInd atomic;
612 OCIInd ArgType;
613 OCIInd TableName;
614 OCIInd TableSchema;
615 OCIInd ColName;
616 OCIInd TablePartitionLower;
617 OCIInd TablePartitionUpper;
618 OCIInd Cardinality;
619};
620typedef struct ODCIArgDesc_ind ODCIArgDesc_ind;
621
622struct ODCIStatsOptions
623{
624 OCINumber Sample;
625 OCINumber Options;
626 OCINumber Flags;
627};
628typedef struct ODCIStatsOptions ODCIStatsOptions;
629
630struct ODCIStatsOptions_ind
631{
632 OCIInd atomic;
633 OCIInd Sample;
634 OCIInd Options;
635 OCIInd Flags;
636};
637typedef struct ODCIStatsOptions_ind ODCIStatsOptions_ind;
638
639struct ODCIEnv
640{
641 OCINumber EnvFlags;
642 OCINumber CallProperty;
643 OCINumber DebugLevel;
644 OCINumber CursorNum;
645};
646typedef struct ODCIEnv ODCIEnv;
647
648struct ODCIEnv_ind
649{
650 OCIInd _atomic;
651 OCIInd EnvFlags;
652 OCIInd CallProperty;
653 OCIInd DebugLevel;
654 OCIInd CursorNum;
655};
656typedef struct ODCIEnv_ind ODCIEnv_ind;
657
658struct ODCIPartInfo
659{
660 OCIString* TablePartition;
661 OCIString* IndexPartition;
662 OCINumber IndexPartitionIden;
663 OCINumber PartOp;
664};
665typedef struct ODCIPartInfo ODCIPartInfo;
666
667struct ODCIPartInfo_ind
668{
669 OCIInd atomic;
670 OCIInd TablePartition;
671 OCIInd IndexPartition;
672 OCIInd IndexPartitionIden;
673 OCIInd PartOp;
674};
675typedef struct ODCIPartInfo_ind ODCIPartInfo_ind;
676
677/*---------- External Tables ----------*/
678struct ODCIExtTableInfo
679{
680 OCIString* TableSchema;
681 OCIString* TableName;
682 ODCIColInfoList* RefCols;
683 OCIClobLocator* AccessParmClob;
684 OCIBlobLocator* AccessParmBlob;
685 ODCIArgDescList* Locations;
686 ODCIArgDescList* Directories;
687 OCIString* DefaultDirectory;
688 OCIString* DriverType;
689 OCINumber OpCode;
690 OCINumber AgentNum;
691 OCINumber GranuleSize;
692 OCINumber Flag;
693 OCINumber SamplePercent;
694 OCINumber MaxDoP;
695 OCIRaw* SharedBuf;
696 OCIString* MTableName;
697 OCIString* MTableSchema;
698 OCINumber TableObjNo;
699};
700typedef struct ODCIExtTableInfo ODCIExtTableInfo;
701
702struct ODCIExtTableInfo_ind
703{
704 OCIInd _atomic;
705 OCIInd TableSchema;
706 OCIInd TableName;
707 OCIInd RefCols;
708 OCIInd AccessParmClob;
709 OCIInd AccessParmBlob;
710 OCIInd Locations;
711 OCIInd Directories;
712 OCIInd DefaultDirectory;
713 OCIInd DriverType;
714 OCIInd OpCode;
715 OCIInd AgentNum;
716 OCIInd GranuleSize;
717 OCIInd Flag;
718 OCIInd SamplePercent;
719 OCIInd MaxDoP;
720 OCIInd SharedBuf;
721 OCIInd MTableName;
722 OCIInd MTableSchema;
723 OCIInd TableObjNo;
724};
725typedef struct ODCIExtTableInfo_ind ODCIExtTableInfo_ind;
726
727struct ODCIExtTableQCInfo
728{
729 OCINumber NumGranules;
730 OCINumber NumLocations;
731 ODCIGranuleList* GranuleInfo;
732 OCINumber IntraSourceConcurrency;
733 OCINumber MaxDoP;
734 OCIRaw* SharedBuf;
735};
736typedef struct ODCIExtTableQCInfo ODCIExtTableQCInfo;
737
738struct ODCIExtTableQCInfo_ind
739{
740 OCIInd _atomic;
741 OCIInd NumGranules;
742 OCIInd NumLocations;
743 OCIInd GranuleInfo;
744 OCIInd IntraSourceConcurrency;
745 OCIInd MaxDoP;
746 OCIInd SharedBuf;
747};
748typedef struct ODCIExtTableQCInfo_ind ODCIExtTableQCInfo_ind;
749
750/*********************************************************/
751/* Table Function Info types (used by ODCITablePrepare) */
752/*********************************************************/
753
754struct ODCITabFuncInfo
755{
756 ODCINumberList* Attrs;
757 OCIType* RetType;
758};
759typedef struct ODCITabFuncInfo ODCITabFuncInfo;
760
761struct ODCITabFuncInfo_ind
762{
763 OCIInd _atomic;
764 OCIInd Attrs;
765 OCIInd RetType;
766};
767typedef struct ODCITabFuncInfo_ind ODCITabFuncInfo_ind;
768
769/*********************************************************************/
770/* Table Function Statistics types (used by ODCIStatsTableFunction) */
771/*********************************************************************/
772
773struct ODCITabFuncStats
774{
775 OCINumber num_rows;
776};
777typedef struct ODCITabFuncStats ODCITabFuncStats;
778
779struct ODCITabFuncStats_ind
780{
781 OCIInd _atomic;
782 OCIInd num_rows;
783};
784typedef struct ODCITabFuncStats_ind ODCITabFuncStats_ind;
785
786/*---------------------------------------------------------------------------
787 PRIVATE TYPES AND CONSTANTS
788 ---------------------------------------------------------------------------*/
789
790
791/*---------------------------------------------------------------------------
792 PUBLIC FUNCTIONS
793 ---------------------------------------------------------------------------*/
794
795
796/*---------------------------------------------------------------------------
797 PRIVATE FUNCTIONS
798 ---------------------------------------------------------------------------*/
799
800
801#endif /* ODCI_ORACLE */