oracle instant client 11.2 for x86
diff --git a/sdk/include/odci.h b/sdk/include/odci.h
new file mode 100755
index 0000000..c65cfad
--- /dev/null
+++ b/sdk/include/odci.h
@@ -0,0 +1,801 @@
+/*
+ * 
+ */
+
+/* Copyright (c) 1998, 2010, Oracle and/or its affiliates. 
+All rights reserved. */
+ 
+/* 
+   NAME 
+     odci.h - Oracle Data Cartridge Interface definitions
+
+   DESCRIPTION 
+     This file contains Oracle Data Cartridge Interface definitions. These
+     include the ODCI Types and Constants.
+
+   RELATED DOCUMENTS 
+ 
+   INSPECTION STATUS 
+     Inspection date: 
+     Inspection status: 
+     Estimated increasing cost defects per page: 
+     Rule sets: 
+ 
+   ACCEPTANCE REVIEW STATUS 
+     Review date: 
+     Review status: 
+     Reviewers: 
+ 
+   PUBLIC FUNCTION(S) 
+     None.
+
+   PRIVATE FUNCTION(S)
+     None.
+
+   EXAMPLES
+
+   NOTES
+     - The constants defined here are replica of the constants defined 
+       in ODCIConst Package defined as part of catodci.sql. If you change
+       these do make the similar change in catodci.sql.
+
+   MODIFIED   (MM/DD/YY)
+   yhu         02/03/10 - add a new flag ODCI_INDEX_UGI
+   spsundar    09/13/07 - 
+   yhu         06/02/06 - add callproperty for statistics 
+   yhu         05/22/06 - add ODCI_NODATA to speed rebuild empty index or ind. 
+                          part. 
+   srirkris    05/09/06 - change ODCIOrderByInfo_ind
+   srirkris    02/06/06 - add definitions for CDI query.
+   spsundar    02/17/06 - add fields/types for system managed domain idx
+   yhu         02/08/06 - add RenameCol Na d RenameTopADT 
+   yhu         03/11/05 - add flags for rename column and rename table 
+   spsundar    11/28/05 - add fields/types for composite domain idx
+   yhu         12/06/05 - mapping table for local text indexes 
+   dmukhin     06/29/05 - ANSI prototypes; miscellaneous cleanup 
+   ayoaz       04/21/03 - add CursorNum to ODCIEnv
+   abrumm      12/30/02 - Bug #2223225: add define for
+                          ODCI_ARG_DESC_LIST_MAXSIZE
+   ayoaz       10/14/02 - Add Cardinality to ODCIArgDesc
+   ayoaz       09/11/02 - add ODCIQueryInfo to ODCIIndexCtx
+   yhu         09/19/02 - add ODCI_DEBUGGING_ON for ODCIEnv.EnvFlags
+   hsbedi      10/10/02 - add object number into ODCIExtTableInfo
+   ayoaz       08/30/02 - add ODCITable2 types
+   tchorma     07/29/02 - Add ODCIFuncCallInfo type for WITH COLUMN CONTEXT
+   hsbedi      06/29/02 - External table populate
+   yhu         07/20/01 - add parallel degree in ODCIIndexInfo.
+   abrumm      02/20/01 - ODCIExtTableInfo: add AccessParmBlob attribute
+   abrumm      01/18/01 - ODCIExtTableInfo: add default directory
+   spsundar    08/24/00 - Update attrbiute positions
+   abrumm      08/04/00 - external tables changes: ODCIExtTableInfo, constants
+   tchorma     09/11/00 - Add return code ODCI_FATAL
+   tchorma     08/08/00 - Add Update Block References Option for Alter Index
+   ayoaz       08/01/00 - Add ODCI_AGGREGATE_REUSE_CTX
+   spsundar    06/19/00 - add ODCIEnv type
+   abrumm      06/27/00 - add defines for ODCIExtTable flags
+   abrumm      06/04/00 - external tables: ODCIExtTableInfo change; add ODCIEnv
+   ddas        04/28/00 - extensible optimizer enhancements for 8.2
+   yhu         06/05/00 - add a bit in IndexInfoFlags for trans. tblspc
+   yhu         04/10/00 - add ODCIPartInfo & remove ODCIIndexPartList
+   abrumm      03/29/00 - external table support
+   spsundar    02/14/00 - update odci definitions for 8.2
+   nagarwal    03/07/99 - bug# 838308 - set estimate_stats=1
+   rmurthy     11/09/98 - add blocking flag
+   ddas        10/31/98 - add ODCI_QUERY_SORT_ASC and ODCI_QUERY_SORT_DESC
+   ddas        05/26/98 - fix ODCIPredInfo flag bits
+   rmurthy     06/03/98 - add macro for RegularCall
+   spsundar    05/08/98 - add constants related to ODCIIndexAlter options
+   rmurthy     04/30/98 - remove include s.h
+   rmurthy     04/20/98 - name fixes
+   rmurthy     04/13/98 - add C mappings for odci types
+   alsrivas    04/10/98 - adding defines for ODCI_INDEX1
+   jsriniva    04/04/98 - Creation
+
+*/
+
+#ifndef OCI_ORACLE
+# include <oci.h>
+#endif
+#ifndef ODCI_ORACLE
+# define ODCI_ORACLE
+
+/*---------------------------------------------------------------------------*/
+/*                         SHORT NAMES SUPPORT SECTION                       */
+/*---------------------------------------------------------------------------*/
+
+#ifdef SLSHORTNAME
+
+/* The following are short names that are only supported on IBM mainframes
+ *   with the SLSHORTNAME defined.
+ * With this all subsequent long names will actually be substituted with
+ *  the short names here
+ */
+
+#define ODCIColInfo_ref             odcicir
+#define ODCIColInfoList             odcicil
+#define ODCIColInfoList2            odcicil2
+#define ODCIIndexInfo_ref           odciiir
+#define ODCIPredInfo_ref            odcipir
+#define ODCIRidList                 odcirl
+#define ODCIIndexCtx_ref            odciicr
+#define ODCIObject_ref              odcior
+#define ODCIObjectList              odciol
+#define ODCIQueryInfo_ref           odciqir
+#define ODCIFuncInfo_ref            odcifir
+#define ODCICost_ref                odcicr
+#define ODCIArgDesc_ref             odciadr
+#define ODCIArgDescList             odciadl
+#define ODCIStatsOptions_ref        odcisor
+#define ODCIColInfo                 odcici
+#define ODCIColInfo_ind             odcicii
+#define ODCIIndexInfo               odciii
+#define ODCIIndexInfo_ind           odciiii
+#define ODCIPredInfo                odcipi
+#define ODCIPredInfo_ind            odcipii
+#define ODCIIndexCtx                odciic
+#define ODCIIndexCtx_ind            odciici
+#define ODCIObject                  odcio
+#define ODCIObject_ind              odcioi
+#define ODCIQueryInfo               odciqi
+#define ODCIQueryInfo_ind           odciqii
+#define ODCIFuncInfo                odcifi
+#define ODCIFuncInfo_infd           odcifii
+#define ODCICost                    odcic
+#define ODCICost_ind                odcici
+#define ODCIArgDesc                 odciad
+#define ODCIArgDesc_ind             odciadi
+#define ODCIStatsOptions            odciso
+#define ODCIStatsOptions_ind        odcisoi
+#define ODCIPartInfo                odcipti
+#define ODCIPartInfo_ind            odciptii
+#define ODCIPartInfo_ref            odciptir
+#define ODCIExtTableInfo            odcixt
+#define ODCIExtTableInfo_ind        odcixti
+#define ODCIExtTableInfo_ref        odcixtr
+#define ODCIExtTableQCInfo          odcixq
+#define ODCIExtTableQCInfo_ind      odcixqi
+#define ODCIExtTableQCInfo_ref      odcixqr
+#define ODCIFuncCallInfo            odcifc
+#define ODCIFuncCall_ind            odcifci
+#define ODCIFuncCall_ref            odcifcr
+#define ODCIColValList              odcicvl
+#define ODCIColArrayList            odcical
+#define ODCIFilterInfoList          odciflil
+#define ODCIOrderByInfoList         odciobil
+#define ODCIFilterInfo_ref          odciflir
+#define ODCIOrderByInfo_ref         odciobir
+#define ODCICompQueryInfo_ref       odcicqir
+#define ODCIFilterInfo              odcifli
+#define ODCIOrderByInfo             odciobi
+#define ODCICompQueryInfo           odcicqi
+#define ODCIFilterInfo_ind          odciflii
+#define ODCIOrderByInfo_ind         odciobii
+#define ODCICompQueryInfo_ind       odcicqii
+
+#endif                                                        /* SLSHORTNAME */
+
+/*---------------------------------------------------------------------------
+                     PUBLIC TYPES AND CONSTANTS
+  ---------------------------------------------------------------------------*/
+
+/* Constants for Return Status */
+#define ODCI_SUCCESS             0
+#define ODCI_ERROR               1
+#define ODCI_WARNING             2
+#define ODCI_ERROR_CONTINUE      3
+#define ODCI_FATAL               4
+
+/* Constants for ODCIPredInfo.Flags */
+#define ODCI_PRED_EXACT_MATCH    0x0001
+#define ODCI_PRED_PREFIX_MATCH   0x0002
+#define ODCI_PRED_INCLUDE_START  0x0004
+#define ODCI_PRED_INCLUDE_STOP   0x0008
+#define ODCI_PRED_OBJECT_FUNC    0x0010
+#define ODCI_PRED_OBJECT_PKG     0x0020
+#define ODCI_PRED_OBJECT_TYPE    0x0040
+#define ODCI_PRED_MULTI_TABLE    0x0080
+#define ODCI_PRED_NOT_EQUAL      0x0100
+
+/* Constants for QueryInfo.Flags */
+#define ODCI_QUERY_FIRST_ROWS    0x01
+#define ODCI_QUERY_ALL_ROWS      0x02
+#define ODCI_QUERY_SORT_ASC      0x04
+#define ODCI_QUERY_SORT_DESC     0x08
+#define ODCI_QUERY_BLOCKING      0x10
+
+/* Constants for ScnFlg(Func /w Index Context) */
+#define ODCI_CLEANUP_CALL        1
+#define ODCI_REGULAR_CALL        2
+
+/* Constants for ODCIFuncInfo.Flags */
+#define ODCI_OBJECT_FUNC         0x01
+#define ODCI_OBJECT_PKG          0x02
+#define ODCI_OBJECT_TYPE         0x04
+
+/* Constants for ODCIArgDesc.ArgType */
+#define ODCI_ARG_OTHER           1
+#define ODCI_ARG_COL             2                                 /* column */
+#define ODCI_ARG_LIT             3                                /* literal */
+#define ODCI_ARG_ATTR            4                       /* object attribute */
+#define ODCI_ARG_NULL            5
+#define ODCI_ARG_CURSOR          6
+
+/* Maximum size of ODCIArgDescList array */
+#define ODCI_ARG_DESC_LIST_MAXSIZE 32767
+
+/* Constants for ODCIStatsOptions.Options */
+#define ODCI_PERCENT_OPTION      1
+#define ODCI_ROW_OPTION          2
+
+/* Constants for ODCIStatsOptions.Flags */
+#define ODCI_ESTIMATE_STATS     0x01
+#define ODCI_COMPUTE_STATS      0x02
+#define ODCI_VALIDATE           0x04
+
+/* Constants for ODCIIndexAlter parameter alter_option */
+#define ODCI_ALTIDX_NONE               0
+#define ODCI_ALTIDX_RENAME             1
+#define ODCI_ALTIDX_REBUILD            2
+#define ODCI_ALTIDX_REBUILD_ONL        3
+#define ODCI_ALTIDX_MODIFY_COL         4
+#define ODCI_ALTIDX_UPDATE_BLOCK_REFS  5
+#define ODCI_ALTIDX_RENAME_COL         6
+#define ODCI_ALTIDX_RENAME_TAB         7
+#define ODCI_ALTIDX_MIGRATE            8
+
+/* Constants for ODCIIndexInfo.IndexInfoFlags */
+#define ODCI_INDEX_LOCAL         0x0001
+#define ODCI_INDEX_RANGE_PARTN   0x0002
+#define ODCI_INDEX_HASH_PARTN    0x0004
+#define ODCI_INDEX_ONLINE        0x0008
+#define ODCI_INDEX_PARALLEL      0x0010
+#define ODCI_INDEX_UNUSABLE      0x0020
+#define ODCI_INDEX_ONIOT         0x0040
+#define ODCI_INDEX_TRANS_TBLSPC  0x0080
+#define ODCI_INDEX_FUNCTION_IDX  0x0100
+#define ODCI_INDEX_LIST_PARTN    0x0200
+#define ODCI_INDEX_UGI           0x0400
+
+/* Constants for ODCIIndexInfo.IndexParaDegree */
+#define ODCI_INDEX_DEFAULT_DEGREE 32767
+
+/* Constants for ODCIEnv.EnvFlags */
+#define ODCI_DEBUGGING_ON        0x01
+#define ODCI_NODATA              0x02
+
+/* Constants for ODCIEnv.CallProperty */
+#define ODCI_CALL_NONE           0
+#define ODCI_CALL_FIRST          1
+#define ODCI_CALL_INTERMEDIATE   2
+#define ODCI_CALL_FINAL          3
+#define ODCI_CALL_REBUILD_INDEX  4
+#define ODCI_CALL_REBUILD_PMO    5
+#define ODCI_CALL_STATSGLOBAL    6
+#define ODCI_CALL_STATSGLOBALANDPARTITION    7
+#define ODCI_CALL_STATSPARTITION             8
+
+/* Constants for ODCIExtTableInfo.OpCode */
+#define ODCI_EXTTABLE_INFO_OPCODE_FETCH           1
+#define ODCI_EXTTABLE_INFO_OPCODE_POPULATE        2
+
+/* Constants (bit definitions) for ODCIExtTableInfo.Flag */
+    /* sampling type: row or block */
+#define ODCI_EXTTABLE_INFO_FLAG_SAMPLE           0x00000001
+#define ODCI_EXTTABLE_INFO_FLAG_SAMPLE_BLOCK     0x00000002
+    /* AccessParmClob, AccessParmBlob discriminator */
+#define ODCI_EXTTABLE_INFO_FLAG_ACCESS_PARM_CLOB 0x00000004
+#define ODCI_EXTTABLE_INFO_FLAG_ACCESS_PARM_BLOB 0x00000008
+
+/* Constants for ODCIExtTableInfo.IntraSourceConcurrency */
+#define ODCI_TRUE  1
+#define ODCI_FALSE 0
+
+/* Constants (bit definitions) for ODCIExtTable{Open,Fetch,Populate,Close}
+ * Flag argument.
+ */
+#define ODCI_EXTTABLE_OPEN_FLAGS_QC     0x00000001  /* caller is Query Coord */
+#define ODCI_EXTTABLE_OPEN_FLAGS_SHADOW 0x00000002  /* caller is shadow proc */
+#define ODCI_EXTTABLE_OPEN_FLAGS_SLAVE  0x00000004  /* caller is slave  proc */
+
+#define ODCI_EXTTABLE_FETCH_FLAGS_EOS   0x00000001 /* end-of-stream on fetch */
+
+/* Constants for Flags argument to ODCIAggregateTerminate */
+#define ODCI_AGGREGATE_REUSE_CTX  1
+
+/* Constants for ODCIColInfo.Flags */
+#define ODCI_COMP_FILTERBY_COL     0x0001
+#define ODCI_COMP_ORDERBY_COL      0x0002
+#define ODCI_COMP_ORDERDSC_COL     0x0004
+#define ODCI_COMP_UPDATED_COL      0x0008
+#define ODCI_COMP_RENAMED_COL      0x0010
+#define ODCI_COMP_RENAMED_TOPADT   0x0020
+
+/* Constants for ODCIOrderByInfo.ExprType */
+#define ODCI_COLUMN_EXPR   1
+#define ODCI_ANCOP_EXPR    2
+
+/* Constants for ODCIOrderByInfo.SortOrder */
+#define ODCI_SORT_ASC    1
+#define ODCI_SORT_DESC   2
+#define ODCI_NULLS_FIRST 4
+
+/* Constants for ODCIPartInfo.PartOp */
+#define  ODCI_ADD_PARTITION   1
+#define  ODCI_DROP_PARTITION  2
+
+/*---------------------------------------------------------------------------
+                     ODCI TYPES
+  ---------------------------------------------------------------------------*/
+/*
+ * These are C mappings for the OTS types defined in catodci.sql
+ */
+
+typedef OCIRef   ODCIColInfo_ref;
+typedef OCIArray ODCIColInfoList;
+typedef OCIArray ODCIColInfoList2;
+typedef OCIRef   ODCIIndexInfo_ref;
+typedef OCIRef   ODCIPredInfo_ref;
+typedef OCIArray ODCIRidList;
+typedef OCIRef   ODCIIndexCtx_ref;
+typedef OCIRef   ODCIObject_ref;
+typedef OCIArray ODCIObjectList;
+typedef OCIRef   ODCIQueryInfo_ref;
+typedef OCIRef   ODCIFuncInfo_ref;
+typedef OCIRef   ODCICost_ref;
+typedef OCIRef   ODCIArgDesc_ref;
+typedef OCIArray ODCIArgDescList;
+typedef OCIRef   ODCIStatsOptions_ref;
+typedef OCIRef   ODCIPartInfo_ref;
+typedef OCIRef   ODCIEnv_ref;
+typedef OCIRef   ODCIExtTableInfo_ref;             /* external table support */
+typedef OCIArray ODCIGranuleList;                  /* external table support */
+typedef OCIRef   ODCIExtTableQCInfo_ref;           /* external table support */
+typedef OCIRef   ODCIFuncCallInfo_ref;
+typedef OCIArray ODCINumberList;
+typedef OCIArray ODCIPartInfoList;
+typedef OCIArray ODCIColValList;
+typedef OCIArray ODCIColArrayList;
+typedef OCIArray ODCIFilterInfoList;
+typedef OCIArray ODCIOrderByInfoList;
+typedef OCIRef   ODCIFilterInfo_ref;
+typedef OCIRef   ODCIOrderByInfo_ref;
+typedef OCIRef   ODCICompQueryInfo_ref;
+ 
+struct ODCIColInfo
+{
+   OCIString* TableSchema;
+   OCIString* TableName;
+   OCIString* ColName;
+   OCIString* ColTypName;
+   OCIString* ColTypSchema;
+   OCIString* TablePartition;
+   OCINumber  ColFlags;
+   OCINumber  ColOrderPos;
+   OCINumber  TablePartitionIden;
+   OCINumber  TablePartitionTotal;
+};
+typedef struct ODCIColInfo ODCIColInfo;
+ 
+struct ODCIColInfo_ind
+{
+   OCIInd atomic;
+   OCIInd TableSchema;
+   OCIInd TableName;
+   OCIInd ColName;
+   OCIInd ColTypName;
+   OCIInd ColTypSchema;
+   OCIInd TablePartition;
+   OCIInd ColFlags;
+   OCIInd ColOrderPos;
+   OCIInd TablePartitionIden;
+   OCIInd TablePartitionTotal;
+};
+typedef struct ODCIColInfo_ind ODCIColInfo_ind;
+
+struct ODCIFuncCallInfo
+{
+   struct ODCIColInfo ColInfo;
+};
+
+struct ODCIFuncCallInfo_ind
+{
+  struct ODCIColInfo_ind ColInfo;
+};
+ 
+struct ODCIIndexInfo
+{
+   OCIString*       IndexSchema;
+   OCIString*       IndexName;
+   ODCIColInfoList* IndexCols;
+   OCIString*       IndexPartition;
+   OCINumber        IndexInfoFlags;
+   OCINumber        IndexParaDegree;
+   OCINumber        IndexPartitionIden;
+   OCINumber        IndexPartitionTotal;
+};
+typedef struct ODCIIndexInfo ODCIIndexInfo;
+ 
+struct ODCIIndexInfo_ind
+{
+   OCIInd atomic;
+   OCIInd IndexSchema;
+   OCIInd IndexName;
+   OCIInd IndexCols;
+   OCIInd IndexPartition;
+   OCIInd IndexInfoFlags;
+   OCIInd IndexParaDegree;
+   OCIInd IndexPartitionIden;
+   OCIInd IndexPartitionTotal;
+};
+typedef struct ODCIIndexInfo_ind ODCIIndexInfo_ind;
+ 
+struct ODCIPredInfo
+{
+   OCIString* ObjectSchema;
+   OCIString* ObjectName;
+   OCIString* MethodName;
+   OCINumber  Flags;
+};
+typedef struct ODCIPredInfo ODCIPredInfo;
+ 
+struct ODCIPredInfo_ind
+{
+   OCIInd atomic;
+   OCIInd ObjectSchema;
+   OCIInd ObjectName;
+   OCIInd MethodName;
+   OCIInd Flags;
+};
+typedef struct ODCIPredInfo_ind ODCIPredInfo_ind;
+
+struct ODCIFilterInfo
+{
+  ODCIColInfo ColInfo;
+  OCINumber Flags;
+  OCIAnyData *strt;
+  OCIAnyData *stop;
+};
+typedef struct ODCIFilterInfo ODCIFilterInfo;
+
+struct ODCIFilterInfo_ind
+{
+  OCIInd atomic;
+  ODCIColInfo_ind ColInfo;
+  OCIInd  Flags;
+  OCIInd  strt;
+  OCIInd  stop;
+};
+typedef struct ODCIFilterInfo_ind ODCIFilterInfo_ind;
+
+
+struct ODCIOrderByInfo
+{
+  OCINumber ExprType;
+  OCIString *ObjectSchema;
+  OCIString *TableName;
+  OCIString *ExprName;
+  OCINumber SortOrder;
+};
+typedef struct ODCIOrderByInfo ODCIOrderByInfo;
+
+struct ODCIOrderByInfo_ind
+{
+  OCIInd atomic;
+  OCIInd ExprType;
+  OCIInd ObjectSchema;
+  OCIInd TableName;
+  OCIInd ExprName;
+  OCIInd SortOrder;
+};
+typedef struct ODCIOrderByInfo_ind ODCIOrderByInfo_ind;
+
+
+struct ODCICompQueryInfo
+{
+  ODCIFilterInfoList  *PredInfo;
+  ODCIOrderByInfoList *ObyInfo;
+};
+typedef struct ODCICompQueryInfo ODCICompQueryInfo;
+
+struct ODCICompQueryInfo_ind
+{
+  OCIInd atomic;
+  OCIInd PredInfo;
+  OCIInd ObyInfo;
+};
+typedef struct ODCICompQueryInfo_ind ODCICompQueryInfo_ind;
+
+ 
+struct ODCIObject
+{
+   OCIString* ObjectSchema;
+   OCIString* ObjectName;
+};
+typedef struct ODCIObject ODCIObject;
+ 
+struct ODCIObject_ind
+{
+   OCIInd atomic;
+   OCIInd ObjectSchema;
+   OCIInd ObjectName;
+};
+typedef struct ODCIObject_ind ODCIObject_ind;
+ 
+struct ODCIQueryInfo
+{
+   OCINumber       Flags;
+   ODCIObjectList* AncOps;
+   ODCICompQueryInfo CompInfo;
+};
+typedef struct ODCIQueryInfo ODCIQueryInfo;
+
+ 
+struct ODCIQueryInfo_ind
+{
+   OCIInd atomic;
+   OCIInd Flags;
+   OCIInd AncOps;
+   ODCICompQueryInfo_ind CompInfo;
+};
+typedef struct ODCIQueryInfo_ind ODCIQueryInfo_ind;
+ 
+struct ODCIIndexCtx
+{
+   struct ODCIIndexInfo IndexInfo;
+   OCIString*           Rid;
+   struct ODCIQueryInfo QueryInfo;
+};
+typedef struct ODCIIndexCtx ODCIIndexCtx;
+ 
+struct ODCIIndexCtx_ind
+{
+   OCIInd                   atomic;
+   struct ODCIIndexInfo_ind IndexInfo;
+   OCIInd                   Rid;
+   struct ODCIQueryInfo_ind QueryInfo;
+};
+typedef struct ODCIIndexCtx_ind ODCIIndexCtx_ind;
+ 
+struct ODCIFuncInfo
+{
+   OCIString* ObjectSchema;
+   OCIString* ObjectName;
+   OCIString* MethodName;
+   OCINumber Flags;
+};
+typedef struct ODCIFuncInfo ODCIFuncInfo;
+ 
+struct ODCIFuncInfo_ind
+{
+   OCIInd atomic;
+   OCIInd ObjectSchema;
+   OCIInd ObjectName;
+   OCIInd MethodName;
+   OCIInd Flags;
+};
+typedef struct ODCIFuncInfo_ind ODCIFuncInfo_ind;
+ 
+struct ODCICost
+{
+   OCINumber  CPUcost;
+   OCINumber  IOcost;
+   OCINumber  NetworkCost;
+   OCIString* IndexCostInfo;
+};
+typedef struct ODCICost ODCICost;
+ 
+struct ODCICost_ind
+{
+   OCIInd atomic;
+   OCIInd CPUcost;
+   OCIInd IOcost;
+   OCIInd NetworkCost;
+   OCIInd IndexCostInfo;
+};
+typedef struct ODCICost_ind ODCICost_ind;
+ 
+struct ODCIArgDesc
+{
+   OCINumber  ArgType;
+   OCIString* TableName;
+   OCIString* TableSchema;
+   OCIString* ColName;
+   OCIString* TablePartitionLower;
+   OCIString* TablePartitionUpper;
+   OCINumber  Cardinality;
+};
+typedef struct ODCIArgDesc ODCIArgDesc;
+ 
+struct ODCIArgDesc_ind
+{
+   OCIInd atomic;
+   OCIInd ArgType;
+   OCIInd TableName;
+   OCIInd TableSchema;
+   OCIInd ColName;
+   OCIInd TablePartitionLower;
+   OCIInd TablePartitionUpper;
+   OCIInd Cardinality;
+};
+typedef struct ODCIArgDesc_ind ODCIArgDesc_ind;
+ 
+struct ODCIStatsOptions
+{
+   OCINumber Sample;
+   OCINumber Options;
+   OCINumber Flags;
+};
+typedef struct ODCIStatsOptions ODCIStatsOptions;
+ 
+struct ODCIStatsOptions_ind
+{
+   OCIInd atomic;
+   OCIInd Sample;
+   OCIInd Options;
+   OCIInd Flags;
+};
+typedef struct ODCIStatsOptions_ind ODCIStatsOptions_ind;
+
+struct ODCIEnv
+{
+   OCINumber EnvFlags;
+   OCINumber CallProperty;
+   OCINumber DebugLevel;
+   OCINumber CursorNum;
+};
+typedef struct ODCIEnv ODCIEnv;
+
+struct ODCIEnv_ind
+{
+   OCIInd _atomic;
+   OCIInd EnvFlags;
+   OCIInd CallProperty;
+   OCIInd DebugLevel;
+   OCIInd CursorNum;
+};
+typedef struct ODCIEnv_ind ODCIEnv_ind;
+ 
+struct ODCIPartInfo
+{
+   OCIString* TablePartition;
+   OCIString* IndexPartition;
+   OCINumber  IndexPartitionIden;
+   OCINumber  PartOp;
+};
+typedef struct ODCIPartInfo ODCIPartInfo;
+ 
+struct ODCIPartInfo_ind
+{
+   OCIInd atomic;
+   OCIInd TablePartition;
+   OCIInd IndexPartition;
+   OCIInd IndexPartitionIden;
+   OCIInd PartOp;
+};
+typedef struct ODCIPartInfo_ind ODCIPartInfo_ind;
+
+/*---------- External Tables ----------*/
+struct ODCIExtTableInfo
+{
+   OCIString*       TableSchema;
+   OCIString*       TableName;
+   ODCIColInfoList* RefCols;
+   OCIClobLocator*  AccessParmClob;
+   OCIBlobLocator*  AccessParmBlob;
+   ODCIArgDescList* Locations;
+   ODCIArgDescList* Directories;
+   OCIString*       DefaultDirectory;
+   OCIString*       DriverType;
+   OCINumber        OpCode;
+   OCINumber        AgentNum;
+   OCINumber        GranuleSize;
+   OCINumber        Flag;
+   OCINumber        SamplePercent;
+   OCINumber        MaxDoP;
+   OCIRaw*          SharedBuf;
+   OCIString*       MTableName;
+   OCIString*       MTableSchema;
+   OCINumber        TableObjNo;
+};
+typedef struct ODCIExtTableInfo ODCIExtTableInfo;
+
+struct ODCIExtTableInfo_ind
+{
+   OCIInd _atomic;
+   OCIInd TableSchema;
+   OCIInd TableName;
+   OCIInd RefCols;
+   OCIInd AccessParmClob;
+   OCIInd AccessParmBlob;
+   OCIInd Locations;
+   OCIInd Directories;
+   OCIInd DefaultDirectory;
+   OCIInd DriverType;
+   OCIInd OpCode;
+   OCIInd AgentNum;
+   OCIInd GranuleSize;
+   OCIInd Flag;
+   OCIInd SamplePercent;
+   OCIInd MaxDoP;
+   OCIInd SharedBuf;
+   OCIInd MTableName;
+   OCIInd MTableSchema;
+   OCIInd TableObjNo;
+};
+typedef struct ODCIExtTableInfo_ind ODCIExtTableInfo_ind;
+
+struct ODCIExtTableQCInfo
+{
+   OCINumber        NumGranules;
+   OCINumber        NumLocations;
+   ODCIGranuleList* GranuleInfo;
+   OCINumber        IntraSourceConcurrency;
+   OCINumber        MaxDoP;
+   OCIRaw*          SharedBuf;
+};
+typedef struct ODCIExtTableQCInfo ODCIExtTableQCInfo;
+
+struct ODCIExtTableQCInfo_ind
+{
+   OCIInd _atomic;
+   OCIInd NumGranules;
+   OCIInd NumLocations;
+   OCIInd GranuleInfo;
+   OCIInd IntraSourceConcurrency;
+   OCIInd MaxDoP;
+   OCIInd SharedBuf;
+};
+typedef struct ODCIExtTableQCInfo_ind ODCIExtTableQCInfo_ind;
+
+/*********************************************************/
+/* Table Function Info types (used by ODCITablePrepare)  */
+/*********************************************************/
+
+struct ODCITabFuncInfo
+{
+  ODCINumberList*  Attrs;
+  OCIType*         RetType;
+};
+typedef struct ODCITabFuncInfo ODCITabFuncInfo;
+
+struct ODCITabFuncInfo_ind
+{
+  OCIInd _atomic;
+  OCIInd Attrs;
+  OCIInd RetType;
+};
+typedef struct ODCITabFuncInfo_ind ODCITabFuncInfo_ind;
+
+/*********************************************************************/
+/* Table Function Statistics types (used by ODCIStatsTableFunction)  */
+/*********************************************************************/
+
+struct ODCITabFuncStats
+{
+  OCINumber num_rows;
+};
+typedef struct ODCITabFuncStats ODCITabFuncStats;
+
+struct ODCITabFuncStats_ind
+{
+  OCIInd _atomic;
+  OCIInd num_rows;
+};
+typedef struct ODCITabFuncStats_ind ODCITabFuncStats_ind;
+
+/*---------------------------------------------------------------------------
+                     PRIVATE TYPES AND CONSTANTS
+  ---------------------------------------------------------------------------*/
+
+
+/*---------------------------------------------------------------------------
+                           PUBLIC FUNCTIONS
+  ---------------------------------------------------------------------------*/
+
+
+/*---------------------------------------------------------------------------
+                          PRIVATE FUNCTIONS
+  ---------------------------------------------------------------------------*/
+
+
+#endif                                              /* ODCI_ORACLE */