#ifndef DPI_PUBLIC
#define DPI_PUBLIC
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _MSC_VER
#if _MSC_VER < 1600
#define int8_t signed __int8
#define int16_t signed __int16
#define int32_t signed __int32
#define int64_t signed __int64
#define uint8_t unsigned __int8
#define uint16_t unsigned __int16
#define uint32_t unsigned __int32
#define uint64_t unsigned __int64
#endif
#endif
#ifndef int8_t
#include <stdint.h>
#endif
#ifdef _MSC_VER
#if _MSC_VER < 1900
#define __func__ __FUNCTION__
#endif
#endif
#if defined(_MSC_VER) && defined(DPI_EXPORTS)
#define DPI_EXPORT __declspec(dllexport)
#else
#define DPI_EXPORT
#endif
#define DPI_MAJOR_VERSION 5
#define DPI_MINOR_VERSION 4
#define DPI_PATCH_LEVEL 0
#define DPI_VERSION_SUFFIX
#define DPI_STR_HELPER(x) #x
#define DPI_STR(x) DPI_STR_HELPER(x)
#define DPI_VERSION_STRING \
DPI_STR(DPI_MAJOR_VERSION) "." \
DPI_STR(DPI_MINOR_VERSION) "." \
DPI_STR(DPI_PATCH_LEVEL) \
DPI_VERSION_SUFFIX
#define DPI_DEFAULT_DRIVER_NAME "ODPI-C : " DPI_VERSION_STRING
#define DPI_VERSION_TO_NUMBER(major, minor, patch) \
((major * 10000) + (minor * 100) + patch)
#define DPI_VERSION_NUMBER \
DPI_VERSION_TO_NUMBER(DPI_MAJOR_VERSION, DPI_MINOR_VERSION, \
DPI_PATCH_LEVEL)
#define DPI_ORACLE_VERSION_TO_NUMBER(versionNum, releaseNum, updateNum, \
portReleaseNum, portUpdateNum) \
((versionNum * 100000000) + (releaseNum * 1000000) + \
(updateNum * 10000) + (portReleaseNum * 100) + (portUpdateNum))
#define DPI_DEFAULT_FETCH_ARRAY_SIZE 100
#define DPI_DEFAULT_PREFETCH_ROWS 2
#define DPI_DEFAULT_PING_INTERVAL 60
#define DPI_DEFAULT_PING_TIMEOUT 5000
#define DPI_DEFAULT_STMT_CACHE_SIZE 20
#define DPI_DEQ_WAIT_NO_WAIT 0
#define DPI_DEQ_WAIT_FOREVER ((uint32_t) -1)
#define DPI_MAX_INT64_PRECISION 18
#define DPI_SUCCESS 0
#define DPI_FAILURE -1
#define DPI_DEBUG_LEVEL_UNREPORTED_ERRORS 0x0001
#define DPI_DEBUG_LEVEL_REFS 0x0002
#define DPI_DEBUG_LEVEL_FNS 0x0004
#define DPI_DEBUG_LEVEL_ERRORS 0x0008
#define DPI_DEBUG_LEVEL_SQL 0x0010
#define DPI_DEBUG_LEVEL_MEM 0x0020
#define DPI_DEBUG_LEVEL_LOAD_LIB 0x0040
typedef uint32_t dpiAuthMode;
#define DPI_MODE_AUTH_DEFAULT 0x00000000
#define DPI_MODE_AUTH_SYSDBA 0x00000002
#define DPI_MODE_AUTH_SYSOPER 0x00000004
#define DPI_MODE_AUTH_PRELIM 0x00000008
#define DPI_MODE_AUTH_SYSASM 0x00008000
#define DPI_MODE_AUTH_SYSBKP 0x00020000
#define DPI_MODE_AUTH_SYSDGD 0x00040000
#define DPI_MODE_AUTH_SYSKMT 0x00080000
#define DPI_MODE_AUTH_SYSRAC 0x00100000
typedef uint32_t dpiConnCloseMode;
#define DPI_MODE_CONN_CLOSE_DEFAULT 0x0000
#define DPI_MODE_CONN_CLOSE_DROP 0x0001
#define DPI_MODE_CONN_CLOSE_RETAG 0x0002
typedef uint32_t dpiCreateMode;
#define DPI_MODE_CREATE_DEFAULT 0x00000000
#define DPI_MODE_CREATE_THREADED 0x00000001
#define DPI_MODE_CREATE_EVENTS 0x00000004
typedef uint32_t dpiDeqMode;
#define DPI_MODE_DEQ_BROWSE 1
#define DPI_MODE_DEQ_LOCKED 2
#define DPI_MODE_DEQ_REMOVE 3
#define DPI_MODE_DEQ_REMOVE_NO_DATA 4
typedef uint32_t dpiDeqNavigation;
#define DPI_DEQ_NAV_FIRST_MSG 1
#define DPI_DEQ_NAV_NEXT_TRANSACTION 2
#define DPI_DEQ_NAV_NEXT_MSG 3
typedef uint32_t dpiEventType;
#define DPI_EVENT_NONE 0
#define DPI_EVENT_STARTUP 1
#define DPI_EVENT_SHUTDOWN 2
#define DPI_EVENT_SHUTDOWN_ANY 3
#define DPI_EVENT_DEREG 5
#define DPI_EVENT_OBJCHANGE 6
#define DPI_EVENT_QUERYCHANGE 7
#define DPI_EVENT_AQ 100
#define DPI_JSON_OPT_DEFAULT 0x00
#define DPI_JSON_OPT_NUMBER_AS_STRING 0x01
#define DPI_JSON_OPT_DATE_AS_DOUBLE 0x02
typedef uint32_t dpiExecMode;
#define DPI_MODE_EXEC_DEFAULT 0x00000000
#define DPI_MODE_EXEC_DESCRIBE_ONLY 0x00000010
#define DPI_MODE_EXEC_COMMIT_ON_SUCCESS 0x00000020
#define DPI_MODE_EXEC_BATCH_ERRORS 0x00000080
#define DPI_MODE_EXEC_PARSE_ONLY 0x00000100
#define DPI_MODE_EXEC_ARRAY_DML_ROWCOUNTS 0x00100000
typedef uint16_t dpiFetchMode;
#define DPI_MODE_FETCH_NEXT 0x0002
#define DPI_MODE_FETCH_FIRST 0x0004
#define DPI_MODE_FETCH_LAST 0x0008
#define DPI_MODE_FETCH_PRIOR 0x0010
#define DPI_MODE_FETCH_ABSOLUTE 0x0020
#define DPI_MODE_FETCH_RELATIVE 0x0040
typedef uint16_t dpiMessageDeliveryMode;
#define DPI_MODE_MSG_PERSISTENT 1
#define DPI_MODE_MSG_BUFFERED 2
#define DPI_MODE_MSG_PERSISTENT_OR_BUFFERED 3
typedef uint32_t dpiMessageState;
#define DPI_MSG_STATE_READY 0
#define DPI_MSG_STATE_WAITING 1
#define DPI_MSG_STATE_PROCESSED 2
#define DPI_MSG_STATE_EXPIRED 3
typedef uint32_t dpiNativeTypeNum;
#define DPI_NATIVE_TYPE_INT64 3000
#define DPI_NATIVE_TYPE_UINT64 3001
#define DPI_NATIVE_TYPE_FLOAT 3002
#define DPI_NATIVE_TYPE_DOUBLE 3003
#define DPI_NATIVE_TYPE_BYTES 3004
#define DPI_NATIVE_TYPE_TIMESTAMP 3005
#define DPI_NATIVE_TYPE_INTERVAL_DS 3006
#define DPI_NATIVE_TYPE_INTERVAL_YM 3007
#define DPI_NATIVE_TYPE_LOB 3008
#define DPI_NATIVE_TYPE_OBJECT 3009
#define DPI_NATIVE_TYPE_STMT 3010
#define DPI_NATIVE_TYPE_BOOLEAN 3011
#define DPI_NATIVE_TYPE_ROWID 3012
#define DPI_NATIVE_TYPE_JSON 3013
#define DPI_NATIVE_TYPE_JSON_OBJECT 3014
#define DPI_NATIVE_TYPE_JSON_ARRAY 3015
#define DPI_NATIVE_TYPE_NULL 3016
#define DPI_NATIVE_TYPE_VECTOR 3017
typedef uint32_t dpiOpCode;
#define DPI_OPCODE_ALL_OPS 0x0
#define DPI_OPCODE_ALL_ROWS 0x1
#define DPI_OPCODE_INSERT 0x2
#define DPI_OPCODE_UPDATE 0x4
#define DPI_OPCODE_DELETE 0x8
#define DPI_OPCODE_ALTER 0x10
#define DPI_OPCODE_DROP 0x20
#define DPI_OPCODE_UNKNOWN 0x40
typedef uint32_t dpiOracleTypeNum;
#define DPI_ORACLE_TYPE_NONE 2000
#define DPI_ORACLE_TYPE_VARCHAR 2001
#define DPI_ORACLE_TYPE_NVARCHAR 2002
#define DPI_ORACLE_TYPE_CHAR 2003
#define DPI_ORACLE_TYPE_NCHAR 2004
#define DPI_ORACLE_TYPE_ROWID 2005
#define DPI_ORACLE_TYPE_RAW 2006
#define DPI_ORACLE_TYPE_NATIVE_FLOAT 2007
#define DPI_ORACLE_TYPE_NATIVE_DOUBLE 2008
#define DPI_ORACLE_TYPE_NATIVE_INT 2009
#define DPI_ORACLE_TYPE_NUMBER 2010
#define DPI_ORACLE_TYPE_DATE 2011
#define DPI_ORACLE_TYPE_TIMESTAMP 2012
#define DPI_ORACLE_TYPE_TIMESTAMP_TZ 2013
#define DPI_ORACLE_TYPE_TIMESTAMP_LTZ 2014
#define DPI_ORACLE_TYPE_INTERVAL_DS 2015
#define DPI_ORACLE_TYPE_INTERVAL_YM 2016
#define DPI_ORACLE_TYPE_CLOB 2017
#define DPI_ORACLE_TYPE_NCLOB 2018
#define DPI_ORACLE_TYPE_BLOB 2019
#define DPI_ORACLE_TYPE_BFILE 2020
#define DPI_ORACLE_TYPE_STMT 2021
#define DPI_ORACLE_TYPE_BOOLEAN 2022
#define DPI_ORACLE_TYPE_OBJECT 2023
#define DPI_ORACLE_TYPE_LONG_VARCHAR 2024
#define DPI_ORACLE_TYPE_LONG_RAW 2025
#define DPI_ORACLE_TYPE_NATIVE_UINT 2026
#define DPI_ORACLE_TYPE_JSON 2027
#define DPI_ORACLE_TYPE_JSON_OBJECT 2028
#define DPI_ORACLE_TYPE_JSON_ARRAY 2029
#define DPI_ORACLE_TYPE_UROWID 2030
#define DPI_ORACLE_TYPE_LONG_NVARCHAR 2031
#define DPI_ORACLE_TYPE_XMLTYPE 2032
#define DPI_ORACLE_TYPE_VECTOR 2033
#define DPI_ORACLE_TYPE_JSON_ID 2034
#define DPI_ORACLE_TYPE_MAX 2035
typedef uint32_t dpiPoolCloseMode;
#define DPI_MODE_POOL_CLOSE_DEFAULT 0x0000
#define DPI_MODE_POOL_CLOSE_FORCE 0x0001
typedef uint8_t dpiPoolGetMode;
#define DPI_MODE_POOL_GET_WAIT 0
#define DPI_MODE_POOL_GET_NOWAIT 1
#define DPI_MODE_POOL_GET_FORCEGET 2
#define DPI_MODE_POOL_GET_TIMEDWAIT 3
typedef uint32_t dpiPurity;
#define DPI_PURITY_DEFAULT 0
#define DPI_PURITY_NEW 1
#define DPI_PURITY_SELF 2
typedef uint32_t dpiShutdownMode;
#define DPI_MODE_SHUTDOWN_DEFAULT 0
#define DPI_MODE_SHUTDOWN_TRANSACTIONAL 1
#define DPI_MODE_SHUTDOWN_TRANSACTIONAL_LOCAL 2
#define DPI_MODE_SHUTDOWN_IMMEDIATE 3
#define DPI_MODE_SHUTDOWN_ABORT 4
#define DPI_MODE_SHUTDOWN_FINAL 5
#define DPI_SODA_FLAGS_DEFAULT 0x00
#define DPI_SODA_FLAGS_ATOMIC_COMMIT 0x01
#define DPI_SODA_FLAGS_CREATE_COLL_MAP 0x02
#define DPI_SODA_FLAGS_INDEX_DROP_FORCE 0x04
typedef uint32_t dpiStartupMode;
#define DPI_MODE_STARTUP_DEFAULT 0
#define DPI_MODE_STARTUP_FORCE 1
#define DPI_MODE_STARTUP_RESTRICT 2
typedef uint8_t dpiServerType;
#define DPI_SERVER_TYPE_UNKNOWN 0
#define DPI_SERVER_TYPE_DEDICATED 1
#define DPI_SERVER_TYPE_SHARED 2
#define DPI_SERVER_TYPE_POOLED 4
typedef uint16_t dpiStatementType;
#define DPI_STMT_TYPE_UNKNOWN 0
#define DPI_STMT_TYPE_SELECT 1
#define DPI_STMT_TYPE_UPDATE 2
#define DPI_STMT_TYPE_DELETE 3
#define DPI_STMT_TYPE_INSERT 4
#define DPI_STMT_TYPE_CREATE 5
#define DPI_STMT_TYPE_DROP 6
#define DPI_STMT_TYPE_ALTER 7
#define DPI_STMT_TYPE_BEGIN 8
#define DPI_STMT_TYPE_DECLARE 9
#define DPI_STMT_TYPE_CALL 10
#define DPI_STMT_TYPE_EXPLAIN_PLAN 15
#define DPI_STMT_TYPE_MERGE 16
#define DPI_STMT_TYPE_ROLLBACK 17
#define DPI_STMT_TYPE_COMMIT 21
typedef uint8_t dpiSubscrGroupingClass;
#define DPI_SUBSCR_GROUPING_CLASS_TIME 1
typedef uint8_t dpiSubscrGroupingType;
#define DPI_SUBSCR_GROUPING_TYPE_SUMMARY 1
#define DPI_SUBSCR_GROUPING_TYPE_LAST 2
typedef uint32_t dpiSubscrNamespace;
#define DPI_SUBSCR_NAMESPACE_AQ 1
#define DPI_SUBSCR_NAMESPACE_DBCHANGE 2
typedef uint32_t dpiSubscrProtocol;
#define DPI_SUBSCR_PROTO_CALLBACK 0
#define DPI_SUBSCR_PROTO_MAIL 1
#define DPI_SUBSCR_PROTO_PLSQL 2
#define DPI_SUBSCR_PROTO_HTTP 3
typedef uint32_t dpiSubscrQOS;
#define DPI_SUBSCR_QOS_RELIABLE 0x01
#define DPI_SUBSCR_QOS_DEREG_NFY 0x02
#define DPI_SUBSCR_QOS_ROWIDS 0x04
#define DPI_SUBSCR_QOS_QUERY 0x08
#define DPI_SUBSCR_QOS_BEST_EFFORT 0x10
typedef uint32_t dpiTpcBeginFlags;
#define DPI_TPC_BEGIN_JOIN 0x00000002
#define DPI_TPC_BEGIN_NEW 0x00000001
#define DPI_TPC_BEGIN_PROMOTE 0x00000008
#define DPI_TPC_BEGIN_RESUME 0x00000004
typedef uint32_t dpiTpcEndFlags;
#define DPI_TPC_END_NORMAL 0
#define DPI_TPC_END_SUSPEND 0x00100000
typedef uint8_t dpiVectorFlags;
#define DPI_VECTOR_FLAGS_FLEXIBLE_DIM 0x01
typedef uint8_t dpiVectorFormat;
#define DPI_VECTOR_FORMAT_FLOAT32 2
#define DPI_VECTOR_FORMAT_FLOAT64 3
#define DPI_VECTOR_FORMAT_INT8 4
#define DPI_VECTOR_FORMAT_BINARY 5
typedef uint32_t dpiVisibility;
#define DPI_VISIBILITY_IMMEDIATE 1
#define DPI_VISIBILITY_ON_COMMIT 2
typedef struct dpiConn dpiConn;
typedef struct dpiContext dpiContext;
typedef struct dpiDeqOptions dpiDeqOptions;
typedef struct dpiEnqOptions dpiEnqOptions;
typedef struct dpiJson dpiJson;
typedef struct dpiLob dpiLob;
typedef struct dpiMsgProps dpiMsgProps;
typedef struct dpiObject dpiObject;
typedef struct dpiObjectAttr dpiObjectAttr;
typedef struct dpiObjectType dpiObjectType;
typedef struct dpiPool dpiPool;
typedef struct dpiQueue dpiQueue;
typedef struct dpiRowid dpiRowid;
typedef struct dpiSodaColl dpiSodaColl;
typedef struct dpiSodaCollCursor dpiSodaCollCursor;
typedef struct dpiSodaDb dpiSodaDb;
typedef struct dpiSodaDoc dpiSodaDoc;
typedef struct dpiSodaDocCursor dpiSodaDocCursor;
typedef struct dpiStmt dpiStmt;
typedef struct dpiSubscr dpiSubscr;
typedef struct dpiVar dpiVar;
typedef struct dpiVector dpiVector;
typedef struct dpiAccessToken dpiAccessToken;
typedef struct dpiAnnotation dpiAnnotation;
typedef struct dpiAppContext dpiAppContext;
typedef struct dpiCommonCreateParams dpiCommonCreateParams;
typedef struct dpiConnCreateParams dpiConnCreateParams;
typedef struct dpiConnInfo dpiConnInfo;
typedef struct dpiContextCreateParams dpiContextCreateParams;
typedef struct dpiData dpiData;
typedef union dpiDataBuffer dpiDataBuffer;
typedef struct dpiDataTypeInfo dpiDataTypeInfo;
typedef struct dpiEncodingInfo dpiEncodingInfo;
typedef struct dpiErrorInfo dpiErrorInfo;
typedef struct dpiJsonNode dpiJsonNode;
typedef struct dpiMsgRecipient dpiMsgRecipient;
typedef struct dpiObjectAttrInfo dpiObjectAttrInfo;
typedef struct dpiObjectTypeInfo dpiObjectTypeInfo;
typedef struct dpiPoolCreateParams dpiPoolCreateParams;
typedef struct dpiQueryInfo dpiQueryInfo;
typedef struct dpiShardingKeyColumn dpiShardingKeyColumn;
typedef struct dpiStringList dpiSodaCollNames;
typedef struct dpiSodaOperOptions dpiSodaOperOptions;
typedef struct dpiStmtInfo dpiStmtInfo;
typedef struct dpiStringList dpiStringList;
typedef struct dpiSubscrCreateParams dpiSubscrCreateParams;
typedef struct dpiSubscrMessage dpiSubscrMessage;
typedef struct dpiSubscrMessageQuery dpiSubscrMessageQuery;
typedef struct dpiSubscrMessageRow dpiSubscrMessageRow;
typedef struct dpiSubscrMessageTable dpiSubscrMessageTable;
typedef struct dpiVectorInfo dpiVectorInfo;
typedef union dpiVectorDimensionBuffer dpiVectorDimensionBuffer;
typedef struct dpiVersionInfo dpiVersionInfo;
typedef struct dpiXid dpiXid;
typedef int (*dpiAccessTokenCallback)(void *context,
dpiAccessToken *accessToken);
typedef struct {
char *ptr;
uint32_t length;
const char *encoding;
} dpiBytes;
typedef struct {
int32_t days;
int32_t hours;
int32_t minutes;
int32_t seconds;
int32_t fseconds;
} dpiIntervalDS;
typedef struct {
int32_t years;
int32_t months;
} dpiIntervalYM;
struct dpiJsonNode {
dpiOracleTypeNum oracleTypeNum;
dpiNativeTypeNum nativeTypeNum;
dpiDataBuffer *value;
};
typedef struct {
uint32_t numFields;
char **fieldNames;
uint32_t *fieldNameLengths;
dpiJsonNode *fields;
dpiDataBuffer *fieldValues;
} dpiJsonObject;
typedef struct {
uint32_t numElements;
dpiJsonNode *elements;
dpiDataBuffer *elementValues;
} dpiJsonArray;
typedef struct {
int16_t year;
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t minute;
uint8_t second;
uint32_t fsecond;
int8_t tzHourOffset;
int8_t tzMinuteOffset;
} dpiTimestamp;
union dpiDataBuffer {
int asBoolean;
uint8_t asUint8;
uint16_t asUint16;
uint32_t asUint32;
int64_t asInt64;
uint64_t asUint64;
float asFloat;
double asDouble;
char *asString;
void *asRaw;
dpiBytes asBytes;
dpiTimestamp asTimestamp;
dpiIntervalDS asIntervalDS;
dpiIntervalYM asIntervalYM;
dpiJson *asJson;
dpiJsonObject asJsonObject;
dpiJsonArray asJsonArray;
dpiLob *asLOB;
dpiObject *asObject;
dpiStmt *asStmt;
dpiRowid *asRowid;
dpiVector *asVector;
};
struct dpiAnnotation {
const char *key;
uint32_t keyLength;
const char *value;
uint32_t valueLength;
};
struct dpiAppContext {
const char *namespaceName;
uint32_t namespaceNameLength;
const char *name;
uint32_t nameLength;
const char *value;
uint32_t valueLength;
};
struct dpiCommonCreateParams {
dpiCreateMode createMode;
const char *encoding;
const char *nencoding;
const char *edition;
uint32_t editionLength;
const char *driverName;
uint32_t driverNameLength;
int sodaMetadataCache;
uint32_t stmtCacheSize;
dpiAccessToken *accessToken;
};
struct dpiConnCreateParams {
dpiAuthMode authMode;
const char *connectionClass;
uint32_t connectionClassLength;
dpiPurity purity;
const char *newPassword;
uint32_t newPasswordLength;
dpiAppContext *appContext;
uint32_t numAppContext;
int externalAuth;
void *externalHandle;
dpiPool *pool;
const char *tag;
uint32_t tagLength;
int matchAnyTag;
const char *outTag;
uint32_t outTagLength;
int outTagFound;
dpiShardingKeyColumn *shardingKeyColumns;
uint8_t numShardingKeyColumns;
dpiShardingKeyColumn *superShardingKeyColumns;
uint8_t numSuperShardingKeyColumns;
int outNewSession;
};
struct dpiConnInfo {
const char *dbDomain;
uint32_t dbDomainLength;
const char *dbName;
uint32_t dbNameLength;
const char *instanceName;
uint32_t instanceNameLength;
const char *serviceName;
uint32_t serviceNameLength;
uint32_t maxIdentifierLength;
uint32_t maxOpenCursors;
uint8_t serverType;
};
struct dpiContextCreateParams {
const char *defaultDriverName;
const char *defaultEncoding;
const char *loadErrorUrl;
const char *oracleClientLibDir;
const char *oracleClientConfigDir;
int sodaUseJsonDesc;
int useJsonId;
};
struct dpiData {
int isNull;
dpiDataBuffer value;
};
struct dpiDataTypeInfo {
dpiOracleTypeNum oracleTypeNum;
dpiNativeTypeNum defaultNativeTypeNum;
uint16_t ociTypeCode;
uint32_t dbSizeInBytes;
uint32_t clientSizeInBytes;
uint32_t sizeInChars;
int16_t precision;
int8_t scale;
uint8_t fsPrecision;
dpiObjectType *objectType;
int isJson;
const char *domainSchema;
uint32_t domainSchemaLength;
const char *domainName;
uint32_t domainNameLength;
uint32_t numAnnotations;
dpiAnnotation *annotations;
int isOson;
uint32_t vectorDimensions;
uint8_t vectorFormat;
uint8_t vectorFlags;
};
struct dpiAccessToken {
const char *token;
uint32_t tokenLength;
const char *privateKey;
uint32_t privateKeyLength;
};
struct dpiEncodingInfo {
const char *encoding;
int32_t maxBytesPerCharacter;
const char *nencoding;
int32_t nmaxBytesPerCharacter;
};
struct dpiErrorInfo {
int32_t code;
uint16_t offset16;
const char *message;
uint32_t messageLength;
const char *encoding;
const char *fnName;
const char *action;
const char *sqlState;
int isRecoverable;
int isWarning;
uint32_t offset;
};
struct dpiObjectAttrInfo {
const char *name;
uint32_t nameLength;
dpiDataTypeInfo typeInfo;
};
struct dpiObjectTypeInfo {
const char *schema;
uint32_t schemaLength;
const char *name;
uint32_t nameLength;
int isCollection;
dpiDataTypeInfo elementTypeInfo;
uint16_t numAttributes;
const char *packageName;
uint32_t packageNameLength;
};
struct dpiPoolCreateParams {
uint32_t minSessions;
uint32_t maxSessions;
uint32_t sessionIncrement;
int pingInterval;
int pingTimeout;
int homogeneous;
int externalAuth;
dpiPoolGetMode getMode;
const char *outPoolName;
uint32_t outPoolNameLength;
uint32_t timeout;
uint32_t waitTimeout;
uint32_t maxLifetimeSession;
const char *plsqlFixupCallback;
uint32_t plsqlFixupCallbackLength;
uint32_t maxSessionsPerShard;
dpiAccessTokenCallback accessTokenCallback;
void *accessTokenCallbackContext;
};
struct dpiQueryInfo {
const char *name;
uint32_t nameLength;
dpiDataTypeInfo typeInfo;
int nullOk;
};
struct dpiMsgRecipient {
const char *name;
uint32_t nameLength;
};
struct dpiShardingKeyColumn {
dpiOracleTypeNum oracleTypeNum;
dpiNativeTypeNum nativeTypeNum;
dpiDataBuffer value;
};
struct dpiStringList {
union {
uint32_t numStrings;
uint32_t numNames;
};
union {
const char **strings;
const char **names;
};
union {
uint32_t *stringLengths;
uint32_t *nameLengths;
};
};
struct dpiSodaOperOptions {
uint32_t numKeys;
const char **keys;
uint32_t *keyLengths;
const char *key;
uint32_t keyLength;
const char *version;
uint32_t versionLength;
const char *filter;
uint32_t filterLength;
uint32_t skip;
uint32_t limit;
uint32_t fetchArraySize;
const char *hint;
uint32_t hintLength;
int lock;
};
struct dpiStmtInfo {
int isQuery;
int isPLSQL;
int isDDL;
int isDML;
dpiStatementType statementType;
int isReturning;
};
typedef void (*dpiSubscrCallback)(void* context, dpiSubscrMessage *message);
struct dpiSubscrCreateParams {
dpiSubscrNamespace subscrNamespace;
dpiSubscrProtocol protocol;
dpiSubscrQOS qos;
dpiOpCode operations;
uint32_t portNumber;
uint32_t timeout;
const char *name;
uint32_t nameLength;
dpiSubscrCallback callback;
void *callbackContext;
const char *recipientName;
uint32_t recipientNameLength;
const char *ipAddress;
uint32_t ipAddressLength;
uint8_t groupingClass;
uint32_t groupingValue;
uint8_t groupingType;
uint64_t outRegId;
int clientInitiated;
};
struct dpiSubscrMessage {
dpiEventType eventType;
const char *dbName;
uint32_t dbNameLength;
dpiSubscrMessageTable *tables;
uint32_t numTables;
dpiSubscrMessageQuery *queries;
uint32_t numQueries;
dpiErrorInfo *errorInfo;
const void *txId;
uint32_t txIdLength;
int registered;
const char *queueName;
uint32_t queueNameLength;
const char *consumerName;
uint32_t consumerNameLength;
const void *aqMsgId;
uint32_t aqMsgIdLength;
};
struct dpiSubscrMessageQuery {
uint64_t id;
dpiOpCode operation;
dpiSubscrMessageTable *tables;
uint32_t numTables;
};
struct dpiSubscrMessageRow {
dpiOpCode operation;
const char *rowid;
uint32_t rowidLength;
};
struct dpiSubscrMessageTable {
dpiOpCode operation;
const char *name;
uint32_t nameLength;
dpiSubscrMessageRow *rows;
uint32_t numRows;
};
struct dpiVersionInfo {
int versionNum;
int releaseNum;
int updateNum;
int portReleaseNum;
int portUpdateNum;
uint32_t fullVersionNum;
};
union dpiVectorDimensionBuffer {
void* asPtr;
int8_t* asInt8;
float* asFloat;
double* asDouble;
};
struct dpiVectorInfo {
uint8_t format;
uint32_t numDimensions;
uint8_t dimensionSize;
dpiVectorDimensionBuffer dimensions;
};
struct dpiXid {
long formatId;
const char *globalTransactionId;
uint32_t globalTransactionIdLength;
const char *branchQualifier;
uint32_t branchQualifierLength;
};
#define dpiContext_create(majorVersion, minorVersion, context, errorInfo) \
dpiContext_createWithParams(majorVersion, minorVersion, NULL, context, \
errorInfo)
DPI_EXPORT int dpiContext_createWithParams(unsigned int majorVersion,
unsigned int minorVersion, dpiContextCreateParams *params,
dpiContext **context, dpiErrorInfo *errorInfo);
DPI_EXPORT int dpiContext_destroy(dpiContext *context);
DPI_EXPORT int dpiContext_freeStringList(dpiContext *context,
dpiStringList *list);
DPI_EXPORT int dpiContext_getClientVersion(const dpiContext *context,
dpiVersionInfo *versionInfo);
DPI_EXPORT void dpiContext_getError(const dpiContext *context,
dpiErrorInfo *errorInfo);
DPI_EXPORT int dpiContext_initCommonCreateParams(const dpiContext *context,
dpiCommonCreateParams *params);
DPI_EXPORT int dpiContext_initConnCreateParams(const dpiContext *context,
dpiConnCreateParams *params);
DPI_EXPORT int dpiContext_initPoolCreateParams(const dpiContext *context,
dpiPoolCreateParams *params);
DPI_EXPORT int dpiContext_initSodaOperOptions(const dpiContext *context,
dpiSodaOperOptions *options);
DPI_EXPORT int dpiContext_initSubscrCreateParams(const dpiContext *context,
dpiSubscrCreateParams *params);
DPI_EXPORT int dpiConn_addRef(dpiConn *conn);
DPI_EXPORT int dpiConn_breakExecution(dpiConn *conn);
DPI_EXPORT int dpiConn_changePassword(dpiConn *conn, const char *userName,
uint32_t userNameLength, const char *oldPassword,
uint32_t oldPasswordLength, const char *newPassword,
uint32_t newPasswordLength);
DPI_EXPORT int dpiConn_close(dpiConn *conn, dpiConnCloseMode mode,
const char *tag, uint32_t tagLength);
DPI_EXPORT int dpiConn_commit(dpiConn *conn);
DPI_EXPORT int dpiConn_create(const dpiContext *context, const char *userName,
uint32_t userNameLength, const char *password, uint32_t passwordLength,
const char *connectString, uint32_t connectStringLength,
const dpiCommonCreateParams *commonParams,
dpiConnCreateParams *createParams, dpiConn **conn);
DPI_EXPORT int dpiConn_deqObject(dpiConn *conn, const char *queueName,
uint32_t queueNameLength, dpiDeqOptions *options, dpiMsgProps *props,
dpiObject *payload, const char **msgId, uint32_t *msgIdLength);
DPI_EXPORT int dpiConn_enqObject(dpiConn *conn, const char *queueName,
uint32_t queueNameLength, dpiEnqOptions *options, dpiMsgProps *props,
dpiObject *payload, const char **msgId, uint32_t *msgIdLength);
DPI_EXPORT int dpiConn_getCallTimeout(dpiConn *conn, uint32_t *value);
DPI_EXPORT int dpiConn_getCurrentSchema(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getDbDomain(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getDbName(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getEdition(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getEncodingInfo(dpiConn *conn, dpiEncodingInfo *info);
DPI_EXPORT int dpiConn_getExternalName(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getHandle(dpiConn *conn, void **handle);
DPI_EXPORT int dpiConn_getInfo(dpiConn *conn, dpiConnInfo *info);
DPI_EXPORT int dpiConn_getInstanceName(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getInternalName(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getIsHealthy(dpiConn *conn, int *isHealthy);
DPI_EXPORT int dpiConn_getLTXID(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getMaxOpenCursors(dpiConn *conn,
uint32_t *maxOpenCursors);
DPI_EXPORT int dpiConn_getObjectType(dpiConn *conn, const char *name,
uint32_t nameLength, dpiObjectType **objType);
DPI_EXPORT int dpiConn_getOciAttr(dpiConn *conn, uint32_t handleType,
uint32_t attribute, dpiDataBuffer *value, uint32_t *valueLength);
DPI_EXPORT int dpiConn_getServerVersion(dpiConn *conn,
const char **releaseString, uint32_t *releaseStringLength,
dpiVersionInfo *versionInfo);
DPI_EXPORT int dpiConn_getServiceName(dpiConn *conn, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiConn_getSodaDb(dpiConn *conn, dpiSodaDb **db);
DPI_EXPORT int dpiConn_getStmtCacheSize(dpiConn *conn, uint32_t *cacheSize);
DPI_EXPORT int dpiConn_getTransactionInProgress(dpiConn *conn,
int *txnInProgress);
DPI_EXPORT int dpiConn_newDeqOptions(dpiConn *conn, dpiDeqOptions **options);
DPI_EXPORT int dpiConn_newEnqOptions(dpiConn *conn, dpiEnqOptions **options);
DPI_EXPORT int dpiConn_newJson(dpiConn *conn, dpiJson **json);
DPI_EXPORT int dpiConn_newJsonQueue(dpiConn *conn, const char *name,
uint32_t nameLength, dpiQueue **queue);
DPI_EXPORT int dpiConn_newMsgProps(dpiConn *conn, dpiMsgProps **props);
DPI_EXPORT int dpiConn_newQueue(dpiConn *conn, const char *name,
uint32_t nameLength, dpiObjectType *payloadType, dpiQueue **queue);
DPI_EXPORT int dpiConn_newTempLob(dpiConn *conn, dpiOracleTypeNum lobType,
dpiLob **lob);
DPI_EXPORT int dpiConn_newVar(dpiConn *conn, dpiOracleTypeNum oracleTypeNum,
dpiNativeTypeNum nativeTypeNum, uint32_t maxArraySize, uint32_t size,
int sizeIsBytes, int isArray, dpiObjectType *objType, dpiVar **var,
dpiData **data);
DPI_EXPORT int dpiConn_newVector(dpiConn *conn, dpiVectorInfo *info,
dpiVector **vector);
DPI_EXPORT int dpiConn_ping(dpiConn *conn);
DPI_EXPORT int dpiConn_prepareStmt(dpiConn *conn, int scrollable,
const char *sql, uint32_t sqlLength, const char *tag,
uint32_t tagLength, dpiStmt **stmt);
DPI_EXPORT int dpiConn_release(dpiConn *conn);
DPI_EXPORT int dpiConn_rollback(dpiConn *conn);
DPI_EXPORT int dpiConn_setAction(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setCallTimeout(dpiConn *conn, uint32_t value);
DPI_EXPORT int dpiConn_setClientIdentifier(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setClientInfo(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setCurrentSchema(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setDbOp(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setEcontextId(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setExternalName(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setInternalName(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setModule(dpiConn *conn, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiConn_setOciAttr(dpiConn *conn, uint32_t handleType,
uint32_t attribute, void *value, uint32_t valueLength);
DPI_EXPORT int dpiConn_setStmtCacheSize(dpiConn *conn, uint32_t cacheSize);
DPI_EXPORT int dpiConn_shutdownDatabase(dpiConn *conn, dpiShutdownMode mode);
DPI_EXPORT int dpiConn_startupDatabase(dpiConn *conn, dpiStartupMode mode);
DPI_EXPORT int dpiConn_startupDatabaseWithPfile(dpiConn *conn,
const char *pfile, uint32_t pfileLength, dpiStartupMode mode);
DPI_EXPORT int dpiConn_subscribe(dpiConn *conn, dpiSubscrCreateParams *params,
dpiSubscr **subscr);
DPI_EXPORT int dpiConn_tpcBegin(dpiConn *conn, dpiXid *xid,
uint32_t transactionTimeout, uint32_t flags);
DPI_EXPORT int dpiConn_tpcCommit(dpiConn *conn, dpiXid *xid, int onePhase);
DPI_EXPORT int dpiConn_tpcEnd(dpiConn *conn, dpiXid *xid, uint32_t flags);
DPI_EXPORT int dpiConn_tpcForget(dpiConn *conn, dpiXid *xid);
DPI_EXPORT int dpiConn_tpcPrepare(dpiConn *conn, dpiXid *xid,
int *commitNeeded);
DPI_EXPORT int dpiConn_tpcRollback(dpiConn *conn, dpiXid *xid);
DPI_EXPORT int dpiConn_unsubscribe(dpiConn *conn, dpiSubscr *subscr);
DPI_EXPORT int dpiData_getBool(dpiData *data);
DPI_EXPORT dpiBytes *dpiData_getBytes(dpiData *data);
DPI_EXPORT double dpiData_getDouble(dpiData *data);
DPI_EXPORT float dpiData_getFloat(dpiData *data);
DPI_EXPORT int64_t dpiData_getInt64(dpiData *data);
DPI_EXPORT dpiIntervalDS *dpiData_getIntervalDS(dpiData *data);
DPI_EXPORT dpiIntervalYM *dpiData_getIntervalYM(dpiData *data);
DPI_EXPORT int dpiData_getIsNull(dpiData *data);
DPI_EXPORT dpiJson *dpiData_getJson(dpiData *data);
DPI_EXPORT dpiJsonArray *dpiData_getJsonArray(dpiData *data);
DPI_EXPORT dpiJsonObject *dpiData_getJsonObject(dpiData *data);
DPI_EXPORT dpiLob *dpiData_getLOB(dpiData *data);
DPI_EXPORT dpiObject *dpiData_getObject(dpiData *data);
DPI_EXPORT dpiStmt *dpiData_getStmt(dpiData *data);
DPI_EXPORT dpiTimestamp *dpiData_getTimestamp(dpiData *data);
DPI_EXPORT uint64_t dpiData_getUint64(dpiData *data);
DPI_EXPORT void dpiData_setBool(dpiData *data, int value);
DPI_EXPORT void dpiData_setBytes(dpiData *data, char *ptr, uint32_t length);
DPI_EXPORT void dpiData_setDouble(dpiData *data, double value);
DPI_EXPORT void dpiData_setFloat(dpiData *data, float value);
DPI_EXPORT void dpiData_setInt64(dpiData *data, int64_t value);
DPI_EXPORT void dpiData_setIntervalDS(dpiData *data, int32_t days,
int32_t hours, int32_t minutes, int32_t seconds, int32_t fsceconds);
DPI_EXPORT void dpiData_setIntervalYM(dpiData *data, int32_t years,
int32_t months);
DPI_EXPORT void dpiData_setLOB(dpiData *data, dpiLob *lob);
DPI_EXPORT void dpiData_setNull(dpiData *data);
DPI_EXPORT void dpiData_setObject(dpiData *data, dpiObject *obj);
DPI_EXPORT void dpiData_setStmt(dpiData *data, dpiStmt *stmt);
DPI_EXPORT void dpiData_setTimestamp(dpiData *data, int16_t year,
uint8_t month, uint8_t day, uint8_t hour, uint8_t minute,
uint8_t second, uint32_t fsecond, int8_t tzHourOffset,
int8_t tzMinuteOffset);
DPI_EXPORT void dpiData_setUint64(dpiData *data, uint64_t value);
DPI_EXPORT int dpiDeqOptions_addRef(dpiDeqOptions *options);
DPI_EXPORT int dpiDeqOptions_getCondition(dpiDeqOptions *options,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiDeqOptions_getConsumerName(dpiDeqOptions *options,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiDeqOptions_getCorrelation(dpiDeqOptions *options,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiDeqOptions_getMode(dpiDeqOptions *options,
dpiDeqMode *value);
DPI_EXPORT int dpiDeqOptions_getMsgId(dpiDeqOptions *options,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiDeqOptions_getNavigation(dpiDeqOptions *options,
dpiDeqNavigation *value);
DPI_EXPORT int dpiDeqOptions_getTransformation(dpiDeqOptions *options,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiDeqOptions_getVisibility(dpiDeqOptions *options,
dpiVisibility *value);
DPI_EXPORT int dpiDeqOptions_getWait(dpiDeqOptions *options, uint32_t *value);
DPI_EXPORT int dpiDeqOptions_release(dpiDeqOptions *options);
DPI_EXPORT int dpiDeqOptions_setCondition(dpiDeqOptions *options,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiDeqOptions_setConsumerName(dpiDeqOptions *options,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiDeqOptions_setCorrelation(dpiDeqOptions *options,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiDeqOptions_setDeliveryMode(dpiDeqOptions *options,
dpiMessageDeliveryMode value);
DPI_EXPORT int dpiDeqOptions_setMode(dpiDeqOptions *options, dpiDeqMode value);
DPI_EXPORT int dpiDeqOptions_setMsgId(dpiDeqOptions *options,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiDeqOptions_setNavigation(dpiDeqOptions *options,
dpiDeqNavigation value);
DPI_EXPORT int dpiDeqOptions_setTransformation(dpiDeqOptions *options,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiDeqOptions_setVisibility(dpiDeqOptions *options,
dpiVisibility value);
DPI_EXPORT int dpiDeqOptions_setWait(dpiDeqOptions *options, uint32_t value);
DPI_EXPORT int dpiEnqOptions_addRef(dpiEnqOptions *options);
DPI_EXPORT int dpiEnqOptions_getTransformation(dpiEnqOptions *options,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiEnqOptions_getVisibility(dpiEnqOptions *options,
dpiVisibility *value);
DPI_EXPORT int dpiEnqOptions_release(dpiEnqOptions *options);
DPI_EXPORT int dpiEnqOptions_setDeliveryMode(dpiEnqOptions *options,
dpiMessageDeliveryMode value);
DPI_EXPORT int dpiEnqOptions_setTransformation(dpiEnqOptions *options,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiEnqOptions_setVisibility(dpiEnqOptions *options,
dpiVisibility value);
DPI_EXPORT int dpiJson_addRef(dpiJson *json);
DPI_EXPORT int dpiJson_getValue(dpiJson *json, uint32_t options,
dpiJsonNode **topNode);
DPI_EXPORT int dpiJson_release(dpiJson *json);
DPI_EXPORT int dpiJson_setFromText(dpiJson *json, const char *value,
uint64_t valueLength, uint32_t flags);
DPI_EXPORT int dpiJson_setValue(dpiJson *json, dpiJsonNode *topNode);
DPI_EXPORT int dpiLob_addRef(dpiLob *lob);
DPI_EXPORT int dpiLob_close(dpiLob *lob);
DPI_EXPORT int dpiLob_closeResource(dpiLob *lob);
DPI_EXPORT int dpiLob_copy(dpiLob *lob, dpiLob **copiedLob);
DPI_EXPORT int dpiLob_getBufferSize(dpiLob *lob, uint64_t sizeInChars,
uint64_t *sizeInBytes);
DPI_EXPORT int dpiLob_getChunkSize(dpiLob *lob, uint32_t *size);
DPI_EXPORT int dpiLob_getDirectoryAndFileName(dpiLob *lob,
const char **directoryAlias, uint32_t *directoryAliasLength,
const char **fileName, uint32_t *fileNameLength);
DPI_EXPORT int dpiLob_getFileExists(dpiLob *lob, int *exists);
DPI_EXPORT int dpiLob_getIsResourceOpen(dpiLob *lob, int *isOpen);
DPI_EXPORT int dpiLob_getSize(dpiLob *lob, uint64_t *size);
DPI_EXPORT int dpiLob_getType(dpiLob *lob, dpiOracleTypeNum *type);
DPI_EXPORT int dpiLob_openResource(dpiLob *lob);
DPI_EXPORT int dpiLob_readBytes(dpiLob *lob, uint64_t offset, uint64_t amount,
char *value, uint64_t *valueLength);
DPI_EXPORT int dpiLob_release(dpiLob *lob);
DPI_EXPORT int dpiLob_setDirectoryAndFileName(dpiLob *lob,
const char *directoryAlias, uint32_t directoryAliasLength,
const char *fileName, uint32_t fileNameLength);
DPI_EXPORT int dpiLob_setFromBytes(dpiLob *lob, const char *value,
uint64_t valueLength);
DPI_EXPORT int dpiLob_trim(dpiLob *lob, uint64_t newSize);
DPI_EXPORT int dpiLob_writeBytes(dpiLob *lob, uint64_t offset,
const char *value, uint64_t valueLength);
DPI_EXPORT int dpiMsgProps_addRef(dpiMsgProps *props);
DPI_EXPORT int dpiMsgProps_getNumAttempts(dpiMsgProps *props, int32_t *value);
DPI_EXPORT int dpiMsgProps_getCorrelation(dpiMsgProps *props,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiMsgProps_getDelay(dpiMsgProps *props, int32_t *value);
DPI_EXPORT int dpiMsgProps_getDeliveryMode(dpiMsgProps *props,
dpiMessageDeliveryMode *value);
DPI_EXPORT int dpiMsgProps_getEnqTime(dpiMsgProps *props, dpiTimestamp *value);
DPI_EXPORT int dpiMsgProps_getExceptionQ(dpiMsgProps *props,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiMsgProps_getExpiration(dpiMsgProps *props, int32_t *value);
DPI_EXPORT int dpiMsgProps_getMsgId(dpiMsgProps *props, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiMsgProps_getOriginalMsgId(dpiMsgProps *props,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiMsgProps_getPayload(dpiMsgProps *props, dpiObject **obj,
const char **value, uint32_t *valueLength);
DPI_EXPORT int dpiMsgProps_getPayloadJson(dpiMsgProps *props, dpiJson **json);
DPI_EXPORT int dpiMsgProps_getPriority(dpiMsgProps *props, int32_t *value);
DPI_EXPORT int dpiMsgProps_getState(dpiMsgProps *props,
dpiMessageState *value);
DPI_EXPORT int dpiMsgProps_release(dpiMsgProps *props);
DPI_EXPORT int dpiMsgProps_setCorrelation(dpiMsgProps *props,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiMsgProps_setDelay(dpiMsgProps *props, int32_t value);
DPI_EXPORT int dpiMsgProps_setExceptionQ(dpiMsgProps *props, const char *value,
uint32_t valueLength);
DPI_EXPORT int dpiMsgProps_setExpiration(dpiMsgProps *props, int32_t value);
DPI_EXPORT int dpiMsgProps_setOriginalMsgId(dpiMsgProps *props,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiMsgProps_setPayloadBytes(dpiMsgProps *props,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiMsgProps_setPayloadJson(dpiMsgProps *props, dpiJson *json);
DPI_EXPORT int dpiMsgProps_setPayloadObject(dpiMsgProps *props,
dpiObject *obj);
DPI_EXPORT int dpiMsgProps_setPriority(dpiMsgProps *props, int32_t value);
DPI_EXPORT int dpiMsgProps_setRecipients(dpiMsgProps *props,
dpiMsgRecipient *recipients, uint32_t numRecipients);
DPI_EXPORT int dpiObject_addRef(dpiObject *obj);
DPI_EXPORT int dpiObject_appendElement(dpiObject *obj,
dpiNativeTypeNum nativeTypeNum, dpiData *value);
DPI_EXPORT int dpiObject_copy(dpiObject *obj, dpiObject **copiedObj);
DPI_EXPORT int dpiObject_deleteElementByIndex(dpiObject *obj, int32_t index);
DPI_EXPORT int dpiObject_getAttributeValue(dpiObject *obj, dpiObjectAttr *attr,
dpiNativeTypeNum nativeTypeNum, dpiData *value);
DPI_EXPORT int dpiObject_getElementExistsByIndex(dpiObject *obj, int32_t index,
int *exists);
DPI_EXPORT int dpiObject_getElementValueByIndex(dpiObject *obj, int32_t index,
dpiNativeTypeNum nativeTypeNum, dpiData *value);
DPI_EXPORT int dpiObject_getFirstIndex(dpiObject *obj, int32_t *index,
int *exists);
DPI_EXPORT int dpiObject_getLastIndex(dpiObject *obj, int32_t *index,
int *exists);
DPI_EXPORT int dpiObject_getNextIndex(dpiObject *obj, int32_t index,
int32_t *nextIndex, int *exists);
DPI_EXPORT int dpiObject_getPrevIndex(dpiObject *obj, int32_t index,
int32_t *prevIndex, int *exists);
DPI_EXPORT int dpiObject_getSize(dpiObject *obj, int32_t *size);
DPI_EXPORT int dpiObject_release(dpiObject *obj);
DPI_EXPORT int dpiObject_setAttributeValue(dpiObject *obj, dpiObjectAttr *attr,
dpiNativeTypeNum nativeTypeNum, dpiData *value);
DPI_EXPORT int dpiObject_setElementValueByIndex(dpiObject *obj, int32_t index,
dpiNativeTypeNum nativeTypeNum, dpiData *value);
DPI_EXPORT int dpiObject_trim(dpiObject *obj, uint32_t numToTrim);
DPI_EXPORT int dpiObjectAttr_addRef(dpiObjectAttr *attr);
DPI_EXPORT int dpiObjectAttr_getInfo(dpiObjectAttr *attr,
dpiObjectAttrInfo *info);
DPI_EXPORT int dpiObjectAttr_release(dpiObjectAttr *attr);
DPI_EXPORT int dpiObjectType_addRef(dpiObjectType *objType);
DPI_EXPORT int dpiObjectType_createObject(dpiObjectType *objType,
dpiObject **obj);
DPI_EXPORT int dpiObjectType_getAttributes(dpiObjectType *objType,
uint16_t numAttributes, dpiObjectAttr **attributes);
DPI_EXPORT int dpiObjectType_getInfo(dpiObjectType *objType,
dpiObjectTypeInfo *info);
DPI_EXPORT int dpiObjectType_release(dpiObjectType *objType);
DPI_EXPORT int dpiPool_acquireConnection(dpiPool *pool, const char *userName,
uint32_t userNameLength, const char *password, uint32_t passwordLength,
dpiConnCreateParams *createParams, dpiConn **conn);
DPI_EXPORT int dpiPool_addRef(dpiPool *pool);
DPI_EXPORT int dpiPool_close(dpiPool *pool, dpiPoolCloseMode closeMode);
DPI_EXPORT int dpiPool_create(const dpiContext *context, const char *userName,
uint32_t userNameLength, const char *password, uint32_t passwordLength,
const char *connectString, uint32_t connectStringLength,
const dpiCommonCreateParams *commonParams,
dpiPoolCreateParams *createParams, dpiPool **pool);
DPI_EXPORT int dpiPool_getBusyCount(dpiPool *pool, uint32_t *value);
DPI_EXPORT int dpiPool_getEncodingInfo(dpiPool *pool, dpiEncodingInfo *info);
DPI_EXPORT int dpiPool_getGetMode(dpiPool *pool, dpiPoolGetMode *value);
DPI_EXPORT int dpiPool_getMaxLifetimeSession(dpiPool *pool, uint32_t *value);
DPI_EXPORT int dpiPool_getMaxSessionsPerShard(dpiPool *pool, uint32_t *value);
DPI_EXPORT int dpiPool_getOpenCount(dpiPool *pool, uint32_t *value);
DPI_EXPORT int dpiPool_getSodaMetadataCache(dpiPool *pool, int *enabled);
DPI_EXPORT int dpiPool_getStmtCacheSize(dpiPool *pool, uint32_t *cacheSize);
DPI_EXPORT int dpiPool_getTimeout(dpiPool *pool, uint32_t *value);
DPI_EXPORT int dpiPool_getWaitTimeout(dpiPool *pool, uint32_t *value);
DPI_EXPORT int dpiPool_getPingInterval(dpiPool *pool, int *value);
DPI_EXPORT int dpiPool_release(dpiPool *pool);
DPI_EXPORT int dpiPool_setAccessToken(dpiPool *pool, dpiAccessToken *params);
DPI_EXPORT int dpiPool_setGetMode(dpiPool *pool, dpiPoolGetMode value);
DPI_EXPORT int dpiPool_setMaxLifetimeSession(dpiPool *pool, uint32_t value);
DPI_EXPORT int dpiPool_setMaxSessionsPerShard(dpiPool *pool, uint32_t value);
DPI_EXPORT int dpiPool_setSodaMetadataCache(dpiPool *pool, int enabled);
DPI_EXPORT int dpiPool_setStmtCacheSize(dpiPool *pool, uint32_t cacheSize);
DPI_EXPORT int dpiPool_setTimeout(dpiPool *pool, uint32_t value);
DPI_EXPORT int dpiPool_setWaitTimeout(dpiPool *pool, uint32_t value);
DPI_EXPORT int dpiPool_setPingInterval(dpiPool *pool, int value);
DPI_EXPORT int dpiQueue_addRef(dpiQueue *queue);
DPI_EXPORT int dpiQueue_deqMany(dpiQueue *queue, uint32_t *numProps,
dpiMsgProps **props);
DPI_EXPORT int dpiQueue_deqOne(dpiQueue *queue, dpiMsgProps **props);
DPI_EXPORT int dpiQueue_enqMany(dpiQueue *queue, uint32_t numProps,
dpiMsgProps **props);
DPI_EXPORT int dpiQueue_enqOne(dpiQueue *queue, dpiMsgProps *props);
DPI_EXPORT int dpiQueue_getDeqOptions(dpiQueue *queue,
dpiDeqOptions **options);
DPI_EXPORT int dpiQueue_getEnqOptions(dpiQueue *queue,
dpiEnqOptions **options);
DPI_EXPORT int dpiQueue_release(dpiQueue *queue);
DPI_EXPORT int dpiPool_reconfigure(dpiPool *pool, uint32_t minSessions,
uint32_t maxSessions, uint32_t sessionIncrement);
DPI_EXPORT int dpiSodaColl_addRef(dpiSodaColl *coll);
DPI_EXPORT int dpiSodaColl_createIndex(dpiSodaColl *coll,
const char *indexSpec, uint32_t indexSpecLength, uint32_t flags);
DPI_EXPORT int dpiSodaColl_drop(dpiSodaColl *coll, uint32_t flags,
int *isDropped);
DPI_EXPORT int dpiSodaColl_dropIndex(dpiSodaColl *coll, const char *name,
uint32_t nameLength, uint32_t flags, int *isDropped);
DPI_EXPORT int dpiSodaColl_find(dpiSodaColl *coll,
const dpiSodaOperOptions *options, uint32_t flags,
dpiSodaDocCursor **cursor);
DPI_EXPORT int dpiSodaColl_findOne(dpiSodaColl *coll,
const dpiSodaOperOptions *options, uint32_t flags, dpiSodaDoc **doc);
DPI_EXPORT int dpiSodaColl_getDataGuide(dpiSodaColl *coll, uint32_t flags,
dpiSodaDoc **doc);
DPI_EXPORT int dpiSodaColl_getDocCount(dpiSodaColl *coll,
const dpiSodaOperOptions *options, uint32_t flags, uint64_t *count);
DPI_EXPORT int dpiSodaColl_getMetadata(dpiSodaColl *coll, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiSodaColl_getName(dpiSodaColl *coll, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiSodaColl_insertMany(dpiSodaColl *coll, uint32_t numDocs,
dpiSodaDoc **docs, uint32_t flags, dpiSodaDoc **insertedDocs);
DPI_EXPORT int dpiSodaColl_insertManyWithOptions(dpiSodaColl *coll,
uint32_t numDocs, dpiSodaDoc **docs, dpiSodaOperOptions *options,
uint32_t flags, dpiSodaDoc **insertedDocs);
DPI_EXPORT int dpiSodaColl_insertOne(dpiSodaColl *coll, dpiSodaDoc *doc,
uint32_t flags, dpiSodaDoc **insertedDoc);
DPI_EXPORT int dpiSodaColl_insertOneWithOptions(dpiSodaColl *coll,
dpiSodaDoc *doc, dpiSodaOperOptions *options, uint32_t flags,
dpiSodaDoc **insertedDoc);
DPI_EXPORT int dpiSodaColl_listIndexes(dpiSodaColl *coll, uint32_t flags,
dpiStringList *list);
DPI_EXPORT int dpiSodaColl_release(dpiSodaColl *coll);
DPI_EXPORT int dpiSodaColl_remove(dpiSodaColl *coll,
const dpiSodaOperOptions *options, uint32_t flags, uint64_t *count);
DPI_EXPORT int dpiSodaColl_replaceOne(dpiSodaColl *coll,
const dpiSodaOperOptions *options, dpiSodaDoc *doc, uint32_t flags,
int *replaced, dpiSodaDoc **replacedDoc);
DPI_EXPORT int dpiSodaColl_save(dpiSodaColl *coll, dpiSodaDoc *doc,
uint32_t flags, dpiSodaDoc **savedDoc);
DPI_EXPORT int dpiSodaColl_saveWithOptions(dpiSodaColl *coll, dpiSodaDoc *doc,
dpiSodaOperOptions *options, uint32_t flags, dpiSodaDoc **savedDoc);
DPI_EXPORT int dpiSodaColl_truncate(dpiSodaColl *coll);
DPI_EXPORT int dpiSodaCollCursor_addRef(dpiSodaCollCursor *cursor);
DPI_EXPORT int dpiSodaCollCursor_close(dpiSodaCollCursor *cursor);
DPI_EXPORT int dpiSodaCollCursor_getNext(dpiSodaCollCursor *cursor,
uint32_t flags, dpiSodaColl **coll);
DPI_EXPORT int dpiSodaCollCursor_release(dpiSodaCollCursor *cursor);
DPI_EXPORT int dpiSodaDb_addRef(dpiSodaDb *db);
DPI_EXPORT int dpiSodaDb_createCollection(dpiSodaDb *db, const char *name,
uint32_t nameLength, const char *metadata, uint32_t metadataLength,
uint32_t flags, dpiSodaColl **coll);
DPI_EXPORT int dpiSodaDb_createDocument(dpiSodaDb *db, const char *key,
uint32_t keyLength, const char *content, uint32_t contentLength,
const char *mediaType, uint32_t mediaTypeLength, uint32_t flags,
dpiSodaDoc **doc);
DPI_EXPORT int dpiSodaDb_createJsonDocument(dpiSodaDb *db, const char *key,
uint32_t keyLength, const dpiJsonNode *content, uint32_t flags,
dpiSodaDoc **doc);
DPI_EXPORT int dpiSodaDb_freeCollectionNames(dpiSodaDb *db,
dpiStringList *names);
DPI_EXPORT int dpiSodaDb_getCollections(dpiSodaDb *db, const char *startName,
uint32_t startNameLength, uint32_t flags, dpiSodaCollCursor **cursor);
DPI_EXPORT int dpiSodaDb_getCollectionNames(dpiSodaDb *db,
const char *startName, uint32_t startNameLength, uint32_t limit,
uint32_t flags, dpiStringList *names);
DPI_EXPORT int dpiSodaDb_openCollection(dpiSodaDb *db, const char *name,
uint32_t nameLength, uint32_t flags, dpiSodaColl **coll);
DPI_EXPORT int dpiSodaDb_release(dpiSodaDb *db);
DPI_EXPORT int dpiSodaDoc_addRef(dpiSodaDoc *cursor);
DPI_EXPORT int dpiSodaDoc_getContent(dpiSodaDoc *doc, const char **value,
uint32_t *valueLength, const char **encoding);
DPI_EXPORT int dpiSodaDoc_getCreatedOn(dpiSodaDoc *doc, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiSodaDoc_getIsJson(dpiSodaDoc *doc, int *isJson);
DPI_EXPORT int dpiSodaDoc_getJsonContent(dpiSodaDoc *doc, dpiJson **value);
DPI_EXPORT int dpiSodaDoc_getKey(dpiSodaDoc *doc, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiSodaDoc_getLastModified(dpiSodaDoc *doc, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiSodaDoc_getMediaType(dpiSodaDoc *doc, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiSodaDoc_getVersion(dpiSodaDoc *doc, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiSodaDoc_release(dpiSodaDoc *doc);
DPI_EXPORT int dpiSodaDocCursor_addRef(dpiSodaDocCursor *cursor);
DPI_EXPORT int dpiSodaDocCursor_close(dpiSodaDocCursor *cursor);
DPI_EXPORT int dpiSodaDocCursor_getNext(dpiSodaDocCursor *cursor,
uint32_t flags, dpiSodaDoc **doc);
DPI_EXPORT int dpiSodaDocCursor_release(dpiSodaDocCursor *cursor);
DPI_EXPORT int dpiStmt_addRef(dpiStmt *stmt);
DPI_EXPORT int dpiStmt_bindByName(dpiStmt *stmt, const char *name,
uint32_t nameLength, dpiVar *var);
DPI_EXPORT int dpiStmt_bindByPos(dpiStmt *stmt, uint32_t pos, dpiVar *var);
DPI_EXPORT int dpiStmt_bindValueByName(dpiStmt *stmt, const char *name,
uint32_t nameLength, dpiNativeTypeNum nativeTypeNum, dpiData *data);
DPI_EXPORT int dpiStmt_bindValueByPos(dpiStmt *stmt, uint32_t pos,
dpiNativeTypeNum nativeTypeNum, dpiData *data);
DPI_EXPORT int dpiStmt_close(dpiStmt *stmt, const char *tag,
uint32_t tagLength);
DPI_EXPORT int dpiStmt_define(dpiStmt *stmt, uint32_t pos, dpiVar *var);
DPI_EXPORT int dpiStmt_defineValue(dpiStmt *stmt, uint32_t pos,
dpiOracleTypeNum oracleTypeNum, dpiNativeTypeNum nativeTypeNum,
uint32_t size, int sizeIsBytes, dpiObjectType *objType);
DPI_EXPORT int dpiStmt_execute(dpiStmt *stmt, dpiExecMode mode,
uint32_t *numQueryColumns);
DPI_EXPORT int dpiStmt_executeMany(dpiStmt *stmt, dpiExecMode mode,
uint32_t numIters);
DPI_EXPORT int dpiStmt_fetch(dpiStmt *stmt, int *found,
uint32_t *bufferRowIndex);
DPI_EXPORT int dpiStmt_fetchRows(dpiStmt *stmt, uint32_t maxRows,
uint32_t *bufferRowIndex, uint32_t *numRowsFetched, int *moreRows);
DPI_EXPORT int dpiStmt_getBatchErrorCount(dpiStmt *stmt, uint32_t *count);
DPI_EXPORT int dpiStmt_getBatchErrors(dpiStmt *stmt, uint32_t numErrors,
dpiErrorInfo *errors);
DPI_EXPORT int dpiStmt_getBindCount(dpiStmt *stmt, uint32_t *count);
DPI_EXPORT int dpiStmt_getBindNames(dpiStmt *stmt, uint32_t *numBindNames,
const char **bindNames, uint32_t *bindNameLengths);
DPI_EXPORT int dpiStmt_getFetchArraySize(dpiStmt *stmt, uint32_t *arraySize);
DPI_EXPORT int dpiStmt_getImplicitResult(dpiStmt *stmt,
dpiStmt **implicitResult);
DPI_EXPORT int dpiStmt_getInfo(dpiStmt *stmt, dpiStmtInfo *info);
DPI_EXPORT int dpiStmt_getLastRowid(dpiStmt *stmt, dpiRowid **rowid);
DPI_EXPORT int dpiStmt_getNumQueryColumns(dpiStmt *stmt,
uint32_t *numQueryColumns);
DPI_EXPORT int dpiStmt_getOciAttr(dpiStmt *stmt, uint32_t attribute,
dpiDataBuffer *value, uint32_t *valueLength);
DPI_EXPORT int dpiStmt_getPrefetchRows(dpiStmt *stmt, uint32_t *numRows);
DPI_EXPORT int dpiStmt_getQueryInfo(dpiStmt *stmt, uint32_t pos,
dpiQueryInfo *info);
DPI_EXPORT int dpiStmt_getQueryValue(dpiStmt *stmt, uint32_t pos,
dpiNativeTypeNum *nativeTypeNum, dpiData **data);
DPI_EXPORT int dpiStmt_getRowCount(dpiStmt *stmt, uint64_t *count);
DPI_EXPORT int dpiStmt_getRowCounts(dpiStmt *stmt, uint32_t *numRowCounts,
uint64_t **rowCounts);
DPI_EXPORT int dpiStmt_getSubscrQueryId(dpiStmt *stmt, uint64_t *queryId);
DPI_EXPORT int dpiStmt_release(dpiStmt *stmt);
DPI_EXPORT int dpiStmt_scroll(dpiStmt *stmt, dpiFetchMode mode, int32_t offset,
int32_t rowCountOffset);
DPI_EXPORT int dpiStmt_setFetchArraySize(dpiStmt *stmt, uint32_t arraySize);
DPI_EXPORT int dpiStmt_setOciAttr(dpiStmt *stmt, uint32_t attribute,
void *value, uint32_t valueLength);
DPI_EXPORT int dpiStmt_setPrefetchRows(dpiStmt *stmt,
uint32_t numRows);
DPI_EXPORT int dpiStmt_deleteFromCache(dpiStmt *stmt);
DPI_EXPORT int dpiRowid_addRef(dpiRowid *rowid);
DPI_EXPORT int dpiRowid_getStringValue(dpiRowid *rowid, const char **value,
uint32_t *valueLength);
DPI_EXPORT int dpiRowid_release(dpiRowid *subscr);
DPI_EXPORT int dpiSubscr_addRef(dpiSubscr *subscr);
DPI_EXPORT int dpiSubscr_prepareStmt(dpiSubscr *subscr, const char *sql,
uint32_t sqlLength, dpiStmt **stmt);
DPI_EXPORT int dpiSubscr_release(dpiSubscr *subscr);
DPI_EXPORT int dpiVar_addRef(dpiVar *var);
DPI_EXPORT int dpiVar_copyData(dpiVar *var, uint32_t pos, dpiVar *sourceVar,
uint32_t sourcePos);
DPI_EXPORT int dpiVar_getNumElementsInArray(dpiVar *var,
uint32_t *numElements);
DPI_EXPORT int dpiVar_getReturnedData(dpiVar *var, uint32_t pos,
uint32_t *numElements, dpiData **data);
DPI_EXPORT int dpiVar_getSizeInBytes(dpiVar *var, uint32_t *sizeInBytes);
DPI_EXPORT int dpiVar_release(dpiVar *var);
DPI_EXPORT int dpiVar_setFromBytes(dpiVar *var, uint32_t pos,
const char *value, uint32_t valueLength);
DPI_EXPORT int dpiVar_setFromJson(dpiVar *var, uint32_t pos, dpiJson *json);
DPI_EXPORT int dpiVar_setFromLob(dpiVar *var, uint32_t pos, dpiLob *lob);
DPI_EXPORT int dpiVar_setFromObject(dpiVar *var, uint32_t pos, dpiObject *obj);
DPI_EXPORT int dpiVar_setFromRowid(dpiVar *var, uint32_t pos, dpiRowid *rowid);
DPI_EXPORT int dpiVar_setFromStmt(dpiVar *var, uint32_t pos, dpiStmt *stmt);
DPI_EXPORT int dpiVar_setFromVector(dpiVar *var, uint32_t pos,
dpiVector *vector);
DPI_EXPORT int dpiVar_setNumElementsInArray(dpiVar *var, uint32_t numElements);
DPI_EXPORT int dpiVector_addRef(dpiVector *vector);
DPI_EXPORT int dpiVector_getValue(dpiVector *vector, dpiVectorInfo *info);
DPI_EXPORT int dpiVector_release(dpiVector *vector);
DPI_EXPORT int dpiVector_setValue(dpiVector *vector, dpiVectorInfo *info);
#ifdef __cplusplus
}
#endif
#endif