ittia/db.h File Reference

Entry point for the ITTIA DB C API. More...

#include <ittia/os/os_config.h>
#include <ittia/os/os_byte_order.h>
#include <ittia/os/os_wait_time.h>
#include <ittia/db/db_defs.h>
#include "ittia/os/os_error.h"

Data Structures

struct  db_alloc_t
 Standard allocator for API data structures. More...
union  db_largeint_t
 Large integer (64-bit) data type. More...
union  db_ulargeint_t
 Unsigned large integer (64-bit) data type. More...
struct  db_date_t
 Date data type. More...
struct  db_odbc_date_t
 ODBC-compatible date structure. More...
struct  db_time_t
 Time data type. More...
struct  db_odbc_time_t
 ODBC-compatible time structure. More...
struct  db_datetime_t
 Date and time data type. More...
struct  db_timestamp_t
 Timestamp data type. More...
struct  db_odbc_timestamp_t
 ODBC-compatible timestamp structure. More...
struct  db_blob_t
 BLOB access data type. More...
struct  db_oid_t
 Database object identity. More...
struct  db_config_t
 ITTIA DB library configuration. More...
struct  db_crypt_t
 Encryption hook interface. More...
struct  db_file_storage_config_t
 Database file storage configuration. More...
struct  db_memory_storage_config_t
 Database memory storage configuration. More...
struct  db_storage_config_t
 General storage configuration. More...
struct  db_fielddef_t
 Field definition. More...
struct  db_paramdef_t
 SQL query parameter definition. More...
struct  db_bind_t
 Row binding description. More...
struct  db_bufmgr_stat_t
 C_API. More...
struct  db_buf_stat_t
 Statistics on a specific page in the database or buffer in the cache. More...
struct  lm_local_config_t
 Lock manager configuration for local lock manager. More...
struct  lm_config_t
 Lock manager configuration. More...
struct  db_memory_segment_t
 Memory segment for general allocation. More...
struct  db_memory_config_t
 Configuration for built-in memory allocator. More...
struct  db_init_t
 Extended library initialization parameters. More...
struct  db_done_t
 Extended library decommissioning parameters. More...
struct  db_xid_t
 Persistent transaction identifier. More...
struct  db_dtm_info_t
 Distributed transaction information. More...
struct  db_seqdef_t
 Sequence definition. More...
struct  db_indexfield_t
 Index field definition. More...
struct  db_indexdef_t
 Index definition. More...
struct  db_foreign_key_def_t
 Foreign key definition. More...
struct  db_tabledef_t
 Table definition. More...
struct  db_table_cursor_t
 Table cursor settings. More...
struct  db_event_t
 C_API. More...
struct  db_server_config_t
 IPC server configuration. More...
struct  db_statitem_t
 Measured statistics item. More...
struct  db_api_statistics_t
 Count ITTIA DB C API handles opened by the application to measure resource usage and prevent leaks. More...
struct  db_lm_statistics_t
 Lock manager statistics. More...
struct  db_mem_statistics_t
 Statistics for memory allocation with the built-in allocator. More...
struct  db_rep_table_info_t
 Replication settings for a table. More...
struct  db_rep_journal_info_t
 Replication journal information. More...
struct  db_rep_peerdef_t
 Replication peer definition. More...
struct  db_rep_config_t
 Database replication configuration. More...

Defines

#define DB_API_100   0x100
#define DB_API_101   0x101
#define DB_API_102   0x102
#define DB_API_103   0x103
#define DB_API_104   0x104
#define DB_API_105   0x105
#define DB_API_106   0x106
#define DB_API_107   0x107
#define DB_API_108   0x108
#define DB_API_109   0x109
#define DB_API_10A   0x10A
#define DB_API_10B   0x10B
#define DB_API_VER   DB_API_10B
#define DB_DECLARE_HANDLE(name)   typedef struct name##_s * name
#define DB_NAME(x)   x
#define DB_ALLOC_INITIALIZER()   { NULL, 0 }
#define DB_OK   ((db_result_t)1)
#define DB_FAIL   ((db_result_t)0)
#define DB_WTIME_FAIL   ((db_wtime_t)(-1))
#define DB_LEN_FAIL   ((db_len_t)(-1))
#define DB_OID_TAG_NONE   0
#define DB_OID_INITIALIZER()   { DB_ALLOC_INITIALIZER() , DB_OID_TAG_NONE }
#define DB_BIND_SIZE(type, member)   sizeof(((type*)DB_STATIC_CAST_ADDRESS)->member)
#define DB_BIND_OFFSET(type, member)   (((db_addr_t)&(((type*)DB_STATIC_CAST_ADDRESS)->member))-DB_STATIC_CAST_ADDRESS)
#define DB_BIND_ADDRESS(var)   ((db_addr_t)(void*)(var))
#define DB_MEMFLAGS_TRACE   1
#define DB_FK_ACTION_RESTRICT   0
#define DB_FK_ACTION_CASCADE   1
#define DB_FK_ACTION_SETNULL   2
#define DB_FK_ACTION_SETDEFAULT   3
#define DB_FK_MATCH_SIMPLE   0
#define DB_FK_MATCH_FULL   1
#define DB_FK_NOT_DEFERRABLE   0
#define DB_FK_DEFERRABLE   1
#define DB_FK_CHECK_IMMEDIATE   0
#define DB_FK_CHECK_DEFERRED   1
#define _DB_SERVER_SHM_ENABLE   1
#define DB_TRACE_BUFMGR   0x00000002u
#define DB_TRACE_LOCKMGR   0x00000004u
#define DB_TRACE_LOGMGR   0x00000008u
#define DB_TRACE_SPACEMGR   0x00000010u
#define DB_TRACE_TXMGR   0x00000020u
#define DB_TRACE_CATALOG   0x00000040u
#define DB_TRACE_API   0x00000100u
#define DB_TRACE_ALL   0x7FFFFFFFu
#define _DB_SAVEPOINT_DEFAULT   0
#define _DB_SAVEPOINT_UNIQUE   1
#define _DB_SAVEPOINT_NESTED   2
#define _DB_SAVEPOINT_OVERRIDE   3
#define DB_SAVEPOINT_DEFAULT   _DB_SAVEPOINT_DEFAULT
#define DB_SAVEPOINT_UNIQUE   _DB_SAVEPOINT_UNIQUE
#define DB_SAVEPOINT_NESTED   _DB_SAVEPOINT_NESTED
#define DB_SAVEPOINT_OVERRIDE   _DB_SAVEPOINT_OVERRIDE
#define DB_STATISTICS_QUERY   0
#define DB_STATISTICS_RESET   1
#define DB_STATISTICS_ENABLE   2
#define DB_STATISTICS_DISABLE   4
#define DB_REP_ADDRESS_NONE   0
#define DB_REP_ADDRESS_ALL   INT32_MAX
#define DB_REP_MODE_NONE   0
#define DB_REP_MODE_IN   1
#define DB_REP_MODE_OUT   2
#define DB_REP_MODE_INOUT   (DB_REP_MODE_IN | DB_REP_MODE_OUT)
#define DB_REP_STATE_LOCAL   0
#define DB_REP_STATE_DELIVERY   1
#define DB_REP_STATE_REMOTE   2
#define DB_REP_STATE_DELIVERED   3
#define DB_REP_STATE_REFUSED   4
#define DB_REP_STATE_IGNORED   5
#define DB_REP_RESOLVE_PRIORITY_MIN   0x00001
#define DB_REP_RESOLVE_PRIORITY_MAX   0x000fe
#define DB_REP_RESOLVE_ACCEPT   0x00000u
#define DB_REP_RESOLVE_REFUSE   0x000ffu
#define DB_REP_RESOLVE_PRIORITY_MASK   0x000ffu
#define DB_REP_RESOLVE_EXCL   0x01000u
#define DB_REP_RESOLVE_DISABLE   0x02000u
#define DB_REPTYPE_NONE   0
#define DB_REPTYPE_ADHOC   1
#define DB_REPTYPE_SYNC   2
#define DB_MEM_TIGHT   _DB_MEM_TIGHT
#define DB_MEM_COMPACT   _DB_MEM_COMPACT
#define DB_MEM_LARGE   _DB_MEM_LARGE
#define DB_SINGLE_PROCESS   _DB_SINGLE_PROCESS
#define DB_DUPLICATE_SAME_FLAGS   _DB_DUPLICATE_SAME_FLAGS
#define LM_NONE   _LM_NONE
#define LM_LOCAL   _LM_LOCAL
#define DB_SEQUENCE_MIN   _DB_SEQUENCE_MIN
#define DB_SEQUENCE_MAX   _DB_SEQUENCE_MAX
#define DB_SEQUENCE_ERROR   _DB_SEQUENCE_ERROR
#define DB_FILE_TYPE_MASK   _DB_FILE_TYPE_MASK
#define DB_FILE_INTERFACE_MASK   _DB_FILE_INTERFACE_MASK
#define DB_DEFAULT_JOURNAL   _DB_DEFAULT_JOURNAL
#define DB_INTERNAL_JOURNAL   _DB_INTERNAL_JOURNAL
#define DB_EXTERNAL_JOURNAL   _DB_EXTERNAL_JOURNAL
#define DB_NULL_JOURNAL   _DB_NULL_JOURNAL
#define DB_DUMMY_JOURNAL   _DB_DUMMY_JOURNAL
#define DB_COLTYPE_IS_UTFSTR(a)   (a == DB_COLTYPE_UTF8STR || a == DB_COLTYPE_UTF16STR || a == DB_COLTYPE_UTF32STR)
#define DB_SOFT_SHUTDOWN   _DB_SOFT_SHUTDOWN
#define DB_DESCRIBE_TABLE_FIELDS   _DB_DESCRIBE_TABLE_FIELDS
#define DB_DESCRIBE_TABLE_INDEXES   _DB_DESCRIBE_TABLE_INDEXES
#define DB_DESCRIBE_TABLE_FOREIGN_KEYS   _DB_DESCRIBE_TABLE_FOREIGN_KEYS
#define DB_DESCRIBE_TABLE_MASK   _DB_DESCRIBE_TABLE_MASK
#define DB_WATCH_ROW_INSERT   _DB_WATCH_ROW_INSERT
#define DB_WATCH_ROW_UPDATE   _DB_WATCH_ROW_UPDATE
#define DB_WATCH_ROW_DELETE   _DB_WATCH_ROW_DELETE
#define DB_INFO_ERROR   _DB_INFO_ERROR
#define DB_INFO_APIVER   _DB_INFO_APIVER
#define DB_INFO_MINAPI   _DB_INFO_MINAPI
#define DB_INFO_MAJOR   _DB_INFO_MAJOR
#define DB_INFO_MINOR   _DB_INFO_MINOR
#define DB_INFO_PATCH   _DB_INFO_PATCH
#define DB_INFO_BUILD   _DB_INFO_BUILD
#define DB_INFO_FULL_ANSI_NAME   _DB_INFO_FULL_ANSI_NAME
#define DB_INFO_FULL_UTF8_NAME   _DB_INFO_FULL_UTF8_NAME
#define DB_INFO_FULL_UTF16_NAME   _DB_INFO_FULL_UTF16_NAME
#define DB_INFO_FULL_UTF32_NAME   _DB_INFO_FULL_UTF32_NAME
#define DB_INFO_SHORT_ANSI_NAME   _DB_INFO_SHORT_ANSI_NAME
#define DB_INFO_SHORT_UTF8_NAME   _DB_INFO_SHORT_UTF8_NAME
#define DB_INFO_SHORT_UTF16_NAME   _DB_INFO_SHORT_UTF16_NAME
#define DB_INFO_SHORT_UTF32_NAME   _DB_INFO_SHORT_UTF32_NAME
#define DB_INFO_DEBUG   _DB_INFO_DEBUG
#define DB_INFO_THREAD   _DB_INFO_THREAD
#define DB_INFO_SHAREDLIB   _DB_INFO_SHAREDLIB
#define DB_INFO_DISPOSITION   _DB_INFO_DISPOSITION
#define DB_DISPOSITION_STANDALONE   _DB_DISPOSITION_STANDALONE
#define DB_DISPOSITION_IPCSOCKETS   _DB_DISPOSITION_IPCSOCKETS
#define DB_INFO_SUPPORT   _DB_INFO_SUPPORT
#define DB_SUPPORT_LOGGING   _DB_SUPPORT_LOGGING
#define DB_SUPPORT_CRYPT   _DB_SUPPORT_CRYPT
#define DB_SUPPORT_WATCHER   _DB_SUPPORT_WATCHER
#define DB_SUPPORT_SEQUENCE   _DB_SUPPORT_SEQUENCE
#define DB_SUPPORT_BLOB   _DB_SUPPORT_BLOB
#define DB_SUPPORT_SQL   _DB_SUPPORT_SQL
#define DB_SUPPORT_TYPECVT   _DB_SUPPORT_TYPECVT
#define DB_SUPPORT_UNICODE   _DB_SUPPORT_UNICODE
#define DB_SUPPORT_DDL   _DB_SUPPORT_DDL
#define DB_SUPPORT_ATOMIC_TX   _DB_SUPPORT_ATOMIC_TX
#define DB_SUPPORT_ATOMIC_OP   _DB_SUPPORT_ATOMIC_OP
#define DB_SUPPORT_FILTERS   _DB_SUPPORT_FILTERS
#define DB_SUPPORT_SORT   _DB_SUPPORT_SORT
#define DB_SUPPORT_REPLICATION   _DB_SUPPORT_REPLICATION
#define DB_INFO_LOCK_LEVEL   _DB_INFO_LOCK_LEVEL
#define DB_LOCK_LEVEL_NONE   _DB_LOCK_LEVEL_NONE
#define DB_LOCK_LEVEL_ROW   _DB_LOCK_LEVEL_ROW
#define DB_LOCK_LEVEL_STORAGE   _DB_LOCK_LEVEL_STORAGE
#define DB_PRIO_MIN   _DB_PRIO_MIN
#define DB_PRIO_MAX   _DB_PRIO_MAX
#define DB_PRIO_NORMAL   _DB_PRIO_NORMAL
#define DB_SERVER_SHM_ENABLE   _DB_SERVER_SHM_ENABLE
Lock Type

#define DB_LOCK_DEFAULT   _DB_LOCK_DEFAULT
#define DB_LOCK_SHARED   _DB_LOCK_SHARED
#define DB_LOCK_EXCLUSIVE   _DB_LOCK_EXCLUSIVE
#define DB_LOCK_MODE_MASK   _DB_LOCK_MODE_MASK
Cursor Scan Flags

#define DB_SCAN_FORWARD   _DB_SCAN_FORWARD
#define DB_SCAN_BACKWARD   _DB_SCAN_BACKWARD
#define DB_SCAN_MASK   _DB_SCAN_MASK
Transaction Isolation Levels

#define DB_DEFAULT_ISOLATION   _DB_DEFAULT_ISOLATION
#define DB_READ_COMMITTED   _DB_READ_COMMITTED
#define DB_REPEATABLE_READ   _DB_REPEATABLE_READ
#define DB_SERIALIZABLE   _DB_SERIALIZABLE
#define DB_ISOLATION_MASK   _DB_ISOLATION_MASK
Cursor Capability Flags

#define DB_CAN_MODIFY   _DB_CAN_MODIFY
#define DB_CAN_BOOKMARK   _DB_CAN_BOOKMARK
#define DB_CURSOR_MASK   _DB_CURSOR_MASK
Transaction Completion Modes

#define DB_DEFAULT_COMPLETION   _DB_DEFAULT_COMPLETION
#define DB_LAZY_COMPLETION   _DB_LAZY_COMPLETION
#define DB_FORCED_COMPLETION   _DB_FORCED_COMPLETION
#define DB_GROUP_COMPLETION   _DB_GROUP_COMPLETION
#define DB_COMPLETION_MASK   _DB_COMPLETION_MASK
Lock Duration

#define DB_TRY_LOCK   _DB_TRY_LOCK
#define DB_COMMIT_LOCK   _DB_COMMIT_LOCK
#define DB_INSTANT_LOCK   _DB_INSTANT_LOCK
#define DB_MANUAL_LOCK   _DB_MANUAL_LOCK
#define DB_LOCK_DURATION_MASK   _DB_LOCK_DURATION_MASK
#define DB_LOCKING_MASK   _DB_LOCKING_MASK
Flush Mode

#define DB_FLUSH_JOURNAL   _DB_FLUSH_JOURNAL
#define DB_FLUSH_STORAGE   _DB_FLUSH_STORAGE
#define DB_FLUSH_MASK   _DB_FLUSH_MASK
Index Mode

#define DB_MULTISET_INDEX   _DB_MULTISET_INDEX
#define DB_UNIQUE_INDEX   _DB_UNIQUE_INDEX
#define DB_PRIMARY_INDEX   _DB_PRIMARY_INDEX
#define DB_NUMBERED_INDEX   _DB_NUMBERED_INDEX
#define DB_INDEX_MASK   _DB_INDEX_MASK
#define DB_INDEX_MODE_MASK   _DB_INDEX_MODE_MASK
Field Flags

#define DB_NULLABLE   _DB_NULLABLE
#define DB_NOT_NULL   _DB_NOT_NULL
#define DB_NULL_MASK   _DB_NULL_MASK
Insert Flags

#define DB_INSERT_SEEK_NEW   _DB_INSERT_SEEK_NEW
#define DB_INSERT_SEEK_MASK   _DB_INSERT_SEEK_MASK
Update Flags

#define DB_UPDATE_SEEK_NEW   _DB_UPDATE_SEEK_NEW
#define DB_UPDATE_SEEK_NEXT   _DB_UPDATE_SEEK_NEXT
#define DB_UPDATE_SEEK_PRIOR   _DB_UPDATE_SEEK_PRIOR
#define DB_UPDATE_SEEK_MASK   _DB_UPDATE_SEEK_MASK
Delete Flags

#define DB_DELETE_SEEK_NEXT   _DB_DELETE_SEEK_NEXT
#define DB_DELETE_SEEK_PRIOR   _DB_DELETE_SEEK_PRIOR
#define DB_DELETE_SEEK_MASK   _DB_DELETE_SEEK_MASK
Length Indicator Values

#define DB_FIELD_NULL   _DB_FIELD_NULL
#define DB_NTS   _DB_NTS
#define DB_BLOB_CHSIZE   _DB_BLOB_CHSIZE
#define DB_AUTOFIELD   _DB_AUTOFIELD
Seek Flags

#define DB_SEEK_LESS   _DB_SEEK_LESS
#define DB_SEEK_LESS_OR_EQUAL   _DB_SEEK_LESS_OR_EQUAL
#define DB_SEEK_FIRST_EQUAL   _DB_SEEK_FIRST_EQUAL
#define DB_SEEK_LAST_EQUAL   _DB_SEEK_LAST_EQUAL
#define DB_SEEK_GREATER   _DB_SEEK_GREATER
#define DB_SEEK_GREATER_OR_EQUAL   _DB_SEEK_GREATER_OR_EQUAL
#define DB_SEEK_EQUAL   _DB_SEEK_EQUAL
Bind Types

#define DB_BIND_RELATIVE   _DB_BIND_RELATIVE
#define DB_BIND_ABSOLUTE   _DB_BIND_ABSOLUTE
#define DB_BIND_MASK   _DB_BIND_MASK
Index Types

#define DB_INDEXTYPE_DEFAULT   _DB_INDEXTYPE_DEFAULT
#define DB_INDEXTYPE_BTREE   _DB_INDEXTYPE_BTREE
Table Types

#define DB_TABLETYPE_DEFAULT   _DB_TABLETYPE_DEFAULT
#define DB_TABLETYPE_KHEAP   _DB_TABLETYPE_KHEAP
#define DB_TABLETYPE_MEMORY   _DB_TABLETYPE_MEMORY
File Modes
#define DB_READ_ONLY   _DB_READ_ONLY
#define DB_NOLOGGING   _DB_NOLOGGING
#define DB_NOLOCKING   _DB_NOLOCKING
#define DB_UTF8_NAME   _DB_UTF8_NAME
#define DB_ATOMIC_WRITE   _DB_ATOMIC_WRITE
Database Storage Types

#define DB_FILE_STORAGE   _DB_FILE_STORAGE
#define DB_MEMORY_STORAGE   _DB_MEMORY_STORAGE
File Interfaces

#define DB_FILE_DEFFS   _DB_FILE_DEFFS
#define DB_FILE_WIN32   _DB_FILE_WIN32
#define DB_FILE_POSIX   _DB_FILE_POSIX
#define DB_FILE_UCFS   _DB_FILE_UCFS
#define DB_FILE_RAMFS   _DB_FILE_RAMFS
Database Data Type Identifiers

#define DB_COLTYPE_SINT8   _DB_COLTYPE_SINT8
#define DB_COLTYPE_UINT8   _DB_COLTYPE_UINT8
#define DB_COLTYPE_SINT16   _DB_COLTYPE_SINT16
#define DB_COLTYPE_UINT16   _DB_COLTYPE_UINT16
#define DB_COLTYPE_SINT32   _DB_COLTYPE_SINT32
#define DB_COLTYPE_UINT32   _DB_COLTYPE_UINT32
#define DB_COLTYPE_SINT64   _DB_COLTYPE_SINT64
#define DB_COLTYPE_UINT64   _DB_COLTYPE_UINT64
#define DB_COLTYPE_FLOAT32   _DB_COLTYPE_FLOAT32
#define DB_COLTYPE_FLOAT64   _DB_COLTYPE_FLOAT64
#define DB_COLTYPE_CURRENCY   _DB_COLTYPE_CURRENCY
#define DB_COLTYPE_DATE   _DB_COLTYPE_DATE
#define DB_COLTYPE_TIME   _DB_COLTYPE_TIME
#define DB_COLTYPE_DATETIME   _DB_COLTYPE_DATETIME
#define DB_COLTYPE_TIMESTAMP   _DB_COLTYPE_TIMESTAMP
#define DB_COLTYPE_ANSISTR   _DB_COLTYPE_ANSISTR
#define DB_COLTYPE_UTF8STR   _DB_COLTYPE_UTF8STR
#define DB_COLTYPE_UTF16STR   _DB_COLTYPE_UTF16STR
#define DB_COLTYPE_UTF32STR   _DB_COLTYPE_UTF32STR
#define DB_COLTYPE_BINARY   _DB_COLTYPE_BINARY
#define DB_COLTYPE_BLOB   _DB_COLTYPE_BLOB
#define DB_COLTYPE_UNDEFINED   _DB_COLTYPE_UNDEFINED
#define DB_COLTYPE_WCHARSTR   (sizeof(wchar_t) == sizeof(db_utf16_t) ? DB_COLTYPE_UTF16STR : DB_COLTYPE_UTF32STR)
C Language Data Type Identifiers

#define DB_VARTYPE_SINT8   _DB_VARTYPE_SINT8
#define DB_VARTYPE_UINT8   _DB_VARTYPE_UINT8
#define DB_VARTYPE_SINT16   _DB_VARTYPE_SINT16
#define DB_VARTYPE_UINT16   _DB_VARTYPE_UINT16
#define DB_VARTYPE_SINT32   _DB_VARTYPE_SINT32
#define DB_VARTYPE_UINT32   _DB_VARTYPE_UINT32
#define DB_VARTYPE_SINT64   _DB_VARTYPE_SINT64
#define DB_VARTYPE_UINT64   _DB_VARTYPE_UINT64
#define DB_VARTYPE_FLOAT32   _DB_VARTYPE_FLOAT32
#define DB_VARTYPE_FLOAT64   _DB_VARTYPE_FLOAT64
#define DB_VARTYPE_DATE   _DB_VARTYPE_DATE
#define DB_VARTYPE_TIME   _DB_VARTYPE_TIME
#define DB_VARTYPE_DATETIME   _DB_VARTYPE_DATETIME
#define DB_VARTYPE_TIMESTAMP   _DB_VARTYPE_TIMESTAMP
#define DB_VARTYPE_ODBC_DATE   _DB_VARTYPE_ODBC_DATE
#define DB_VARTYPE_ODBC_TIME   _DB_VARTYPE_ODBC_TIME
#define DB_VARTYPE_ODBC_TIMESTAMP   _DB_VARTYPE_ODBC_TIMESTAMP
#define DB_VARTYPE_ANSISTR   _DB_VARTYPE_ANSISTR
#define DB_VARTYPE_UTF8STR   _DB_VARTYPE_UTF8STR
#define DB_VARTYPE_UTF16STR   _DB_VARTYPE_UTF16STR
#define DB_VARTYPE_UTF32STR   _DB_VARTYPE_UTF32STR
#define DB_VARTYPE_BINARY   _DB_VARTYPE_BINARY
#define DB_VARTYPE_BLOB   _DB_VARTYPE_BLOB
#define DB_VARTYPE_UNDEFINED   _DB_VARTYPE_UNDEFINED
#define DB_VARTYPE_WCHARSTR   (sizeof(wchar_t) == sizeof(db_utf16_t) ? DB_VARTYPE_UTF16STR : DB_VARTYPE_UTF32STR)
Data Binding

#define DB_ARRAY_DIM(x)   (sizeof(x) / sizeof(x[0]))
#define DB_BIND_STRUCT_MEMBER(field_no, type, bind_struct, member)   { field_no, type, DB_BIND_OFFSET(bind_struct, member), DB_BIND_SIZE(bind_struct, member), -1, DB_BIND_RELATIVE }
#define DB_BIND_VAR(field_no, type, var)   { field_no, type, DB_BIND_ADDRESS(&var), sizeof(var), DB_BIND_ADDRESS(NULL), DB_BIND_ABSOLUTE }
#define DB_BIND_STR(field_no, type, var)   { field_no, type, DB_BIND_ADDRESS(var), sizeof(var), DB_BIND_ADDRESS(NULL), DB_BIND_ABSOLUTE }
#define DB_BIND_PTR(field_no, type, var, size)   { field_no, type, DB_BIND_ADDRESS(var), size, DB_BIND_ADDRESS(NULL), DB_BIND_ABSOLUTE }
#define DB_BIND_STRUCT_MEMBER_IND(field_no, type, bind_struct, value, ind)   { field_no, type, DB_BIND_OFFSET(bind_struct, value), DB_BIND_SIZE(bind_struct, value), DB_BIND_OFFSET(bind_struct, ind), DB_BIND_RELATIVE }
#define DB_BIND_VAR_IND(field_no, type, var, ind)   { field_no, type, DB_BIND_ADDRESS(&var), sizeof(var), DB_BIND_ADDRESS(ind), DB_BIND_ABSOLUTE }
#define DB_BIND_STR_IND(field_no, type, var, ind)   { field_no, type, DB_BIND_ADDRESS(var), sizeof(var), DB_BIND_ADDRESS(ind), DB_BIND_ABSOLUTE }
#define DB_BIND_PTR_IND(field_no, type, var, size, ind)   { field_no, type, DB_BIND_ADDRESS(var), size, DB_BIND_ADDRESS(ind), DB_BIND_ABSOLUTE }

Typedefs

typedef struct db_t_s * db_t
typedef struct db_row_t_s * db_row_t
typedef struct db_cursor_t_s * db_cursor_t
typedef struct db_sequence_t_s * db_sequence_t
typedef struct db_hlock_t_s * db_hlock_t
typedef struct db_coltype_t_s * db_coltype_t
typedef struct db_vartype_t_s * db_vartype_t
typedef struct db_notify_t_s * db_notify_t
typedef struct db_heap_s * db_heap_t
typedef char db_objname_t
typedef os_wait_time_t db_wtime_t
typedef int32_t db_flags_t
typedef intptr_t db_addr_t
typedef uint16_t db_api_t
typedef struct rc_s * db_result_t
typedef int(DB_CALLBACK * db_encrypt_t )(void *udata, uint32_t offset, void *data, size_t size)
typedef int(DB_CALLBACK * db_decrypt_t )(void *udata, uint32_t offset, void *data, size_t size)
typedef db_largeint_t db_seqvalue_t
typedef struct db_savepoint_t_s * db_savepoint_t
Data Types

typedef char db_ansi_t
typedef uint8_t db_utf8_t
typedef uint16_t db_utf16_t
typedef uint32_t db_utf32_t
typedef float32_t db_float32_t
typedef float64_t db_float64_t
typedef int32_t db_len_t
typedef int32_t db_fieldno_t
typedef void * db_object_t
typedef int32_t db_rep_address_t

Functions

int db_init (db_api_t)
int db_done (void)
db_result_t db_attach_thread (void)
db_result_t db_detach_thread (void)
int db_init_ex (db_api_t, const db_init_t *)
int db_done_ex (db_done_t *)
db_result_t db_set_config (const db_config_t *)
db_result_t db_get_config (db_config_t *)
db_result_t lm_use_local (const lm_local_config_t *)
db_result_t lm_set_config (const lm_config_t *)
db_result_t lm_get_config (lm_config_t *)
db_t db_create_file_storage (const db_fname_t *, const db_file_storage_config_t *)
db_t db_open_file_storage (const db_fname_t *, const db_file_storage_config_t *)
db_t db_create_memory_storage (const db_fname_t *, const db_memory_storage_config_t *)
db_t db_open_memory_storage (const db_fname_t *, const db_memory_storage_config_t *)
db_result_t db_shutdown (db_t, int, void *)
db_result_t db_get_storage_config (db_t, db_storage_config_t *)
db_result_t db_file_storage_config_init (db_file_storage_config_t *)
db_result_t db_file_storage_config_destroy (db_file_storage_config_t *)
db_result_t db_memory_storage_config_init (db_memory_storage_config_t *)
db_result_t db_memory_storage_config_destroy (db_memory_storage_config_t *)
db_result_t db_storage_config_init (db_storage_config_t *)
db_result_t db_storage_config_destroy (db_storage_config_t *)
db_result_t db_begin_tx (db_t, db_flags_t)
db_result_t db_commit_tx (db_t, db_flags_t)
db_result_t db_abort_tx (db_t, db_flags_t)
db_result_t db_flush_tx (db_t, db_flags_t)
int db_is_active_tx (db_t)
db_result_t db_set_tx_default (db_t, db_flags_t)
db_flags_t db_get_tx_default (db_t)
db_result_t db_set_timeout (db_t, db_wtime_t)
db_wtime_t db_get_timeout (db_t)
db_result_t db_stat_bufmgr (db_t, db_bufmgr_stat_t *)
db_result_t db_stat_page (db_t, uint32_t pageno, db_buf_stat_t *)
db_result_t db_stat_buffer (db_t, uint32_t bufno, db_buf_stat_t *)
db_result_t db_backup (db_t, const db_fname_t *dest_file_name, uint32_t file_mode, db_flags_t)
db_result_t db_seqdef_init (db_seqdef_t *)
db_result_t db_seqdef_destroy (db_seqdef_t *)
db_result_t db_create_sequence (db_t, const db_objname_t *, const db_seqdef_t *)
db_result_t db_drop_sequence (db_t, const db_objname_t *)
db_result_t db_describe_sequence (db_t, const db_objname_t *name, db_seqdef_t *)
db_result_t db_indexfield_init (db_indexfield_t *)
db_result_t db_indexfield_destroy (db_indexfield_t *)
db_result_t db_indexdef_init (db_indexdef_t *, db_heap_t heap)
db_result_t db_indexdef_destroy (db_indexdef_t *)
db_result_t db_indexdef_set_indextype (db_indexdef_t *, db_indextype_t)
db_result_t db_indexdef_set_field_count (db_indexdef_t *, db_fieldno_t)
db_result_t db_indexdef_set_field (db_indexdef_t *, db_fieldno_t nfield, const db_indexfield_t *field)
db_result_t db_fielddef_init (db_fielddef_t *)
db_result_t db_fielddef_destroy (db_fielddef_t *)
db_result_t db_paramdef_init (db_paramdef_t *)
db_result_t db_paramdef_destroy (db_paramdef_t *)
db_result_t db_tabledef_init (db_tabledef_t *, db_heap_t heap)
db_result_t db_tabledef_destroy (db_tabledef_t *)
db_result_t db_tabledef_set_tabletype (db_tabledef_t *, db_tabletype_t)
db_result_t db_tabledef_set_field_count (db_tabledef_t *, db_fieldno_t nfields)
db_result_t db_tabledef_set_field (db_tabledef_t *, db_fieldno_t nfield, const db_fielddef_t *)
db_result_t db_tabledef_set_fields (db_tabledef_t *, const db_fielddef_t *, db_fieldno_t nfields)
db_result_t db_tabledef_set_index_count (db_tabledef_t *, db_len_t nindexes)
db_result_t db_tabledef_set_indexes (db_tabledef_t *, const db_indexdef_t *, db_len_t nindexes)
db_result_t db_tabledef_set_index (db_tabledef_t *, db_len_t index, const db_indexdef_t *)
db_result_t db_create_table (db_t, const db_objname_t *, const db_tabledef_t *, db_flags_t)
db_result_t db_drop_table (db_t, const db_objname_t *)
db_result_t db_describe_table (db_t, const db_objname_t *, db_tabledef_t *, db_flags_t)
db_result_t db_add_field (db_t, const db_objname_t *table, const db_fielddef_t *)
db_result_t db_drop_field (db_t, const db_objname_t *table, const db_objname_t *field)
db_result_t db_create_index (db_t, const db_objname_t *table, const db_objname_t *index, const db_indexdef_t *)
db_result_t db_drop_index (db_t, const db_objname_t *table, const db_objname_t *index)
db_result_t db_describe_index (db_t, const db_objname_t *table, const db_objname_t *index, db_indexdef_t *)
db_result_t db_tabledef_set_foreign_key_count (db_tabledef_t *, db_len_t)
db_result_t db_tabledef_set_foreign_keys (db_tabledef_t *, const db_foreign_key_def_t *, db_len_t nkeys)
db_result_t db_tabledef_set_foreign_key (db_tabledef_t *, db_len_t index, const db_foreign_key_def_t *)
db_result_t db_create_foreign_key (db_t, const db_objname_t *table, const db_foreign_key_def_t *)
db_result_t db_drop_foreign_key (db_t, const db_objname_t *table, const db_objname_t *fkname)
db_row_t db_alloc_row (const db_bind_t *, db_fieldno_t nbinds)
db_row_t db_alloc_cursor_row (db_cursor_t)
db_result_t db_free_row (db_row_t)
db_len_t db_get_field_size (db_row_t, db_fieldno_t)
db_vartype_t db_get_field_type (db_row_t, db_fieldno_t)
db_len_t db_get_field_len (db_row_t, db_fieldno_t)
db_result_t db_set_field_len (db_row_t, db_fieldno_t, db_len_t)
void * db_get_field_buffer (db_row_t, db_fieldno_t)
db_flags_t db_get_field_flags (db_row_t hrow, db_fieldno_t nfield)
db_len_t db_get_field_data (db_row_t, db_fieldno_t, db_vartype_t data_type, void *data_ptr, db_len_t data_size)
db_result_t db_set_field_data (db_row_t, db_fieldno_t, db_vartype_t data_type, const void *data_ptr, db_len_t data_length)
int db_is_null (db_row_t, db_fieldno_t)
db_result_t db_set_null (db_row_t, db_fieldno_t)
db_result_t db_bind_field (db_row_t hrow, const db_bind_t *)
db_result_t db_unbind_field (db_row_t, db_fieldno_t)
db_result_t db_table_cursor_init (db_table_cursor_t *)
db_result_t db_table_cursor_destroy (db_table_cursor_t *)
db_cursor_t db_open_table_cursor (db_t, const db_objname_t *table, const db_table_cursor_t *)
db_cursor_t db_prepare_sql_cursor (db_t, const char *, db_flags_t)
db_result_t db_execute (db_cursor_t, db_row_t param_row, db_object_t param_object)
db_result_t db_unexecute (db_cursor_t)
int db_is_prepared (db_cursor_t)
int db_is_browsable (db_cursor_t)
db_result_t db_get_row_num (db_cursor_t hcursor, int64_t *)
int db_get_row_count (db_cursor_t)
db_result_t db_get_row_count_ex (db_cursor_t hcursor, int32_t *)
db_result_t db_get_error_message (db_cursor_t, char **sz_msg)
db_row_t db_alloc_param_row (db_cursor_t)
int db_get_param_count (db_cursor_t)
db_result_t db_get_param (db_cursor_t, db_fieldno_t paramno, db_paramdef_t *)
db_cursor_t db_duplicate_cursor (db_cursor_t, db_flags_t flags)
db_result_t db_close_cursor (db_cursor_t)
db_flags_t db_get_cursor_flags (db_cursor_t)
db_fieldno_t db_find_field (db_cursor_t, const db_objname_t *)
db_fieldno_t db_get_field_count (db_cursor_t)
db_result_t db_get_field (db_cursor_t, db_fieldno_t, db_fielddef_t *)
int db_bof (db_cursor_t)
int db_eof (db_cursor_t)
db_result_t db_seek_first (db_cursor_t)
db_result_t db_seek_next (db_cursor_t)
db_result_t db_seek_prior (db_cursor_t)
db_result_t db_seek_last (db_cursor_t)
db_result_t db_seek (db_cursor_t, db_seek_t, db_row_t, db_object_t, db_fieldno_t nfields)
db_result_t db_fetch (db_cursor_t, db_row_t, db_object_t)
db_result_t db_insert (db_cursor_t, db_row_t, db_object_t, db_flags_t)
db_result_t db_delete (db_cursor_t, db_flags_t)
db_result_t db_update (db_cursor_t, db_row_t, db_object_t)
db_result_t db_update_flags (db_cursor_t, db_row_t, db_object_t, db_flags_t)
db_result_t db_get_bookmark (db_cursor_t, db_oid_t *)
db_result_t db_goto_bookmark (db_cursor_t, const db_oid_t *)
db_result_t db_set_range (db_cursor_t h, db_row_t low_row, db_object_t low_object, db_fieldno_t low_fields, db_row_t high_row, db_object_t high_object, db_fieldno_t high_fields)
db_result_t db_add_filter (db_cursor_t h, db_seek_t relation, db_row_t filter_row, db_object_t filter_row_object, const db_indexfield_t *fields, db_fieldno_t nfields)
db_result_t db_remove_filters (db_cursor_t)
db_result_t db_sort (db_cursor_t cursor, const db_indexfield_t *fields, db_fieldno_t nfields)
int db_is_sorted_by (db_cursor_t cursor, const db_indexfield_t *fields, db_fieldno_t nfields)
db_result_t db_qseek (db_cursor_t, db_seek_t, const db_bind_t *, db_len_t, db_object_t, db_fieldno_t nfields)
db_result_t db_qfetch (db_cursor_t, const db_bind_t *, db_len_t, db_object_t)
db_result_t db_qinsert (db_cursor_t, const db_bind_t *, db_len_t, db_object_t, db_flags_t)
db_result_t db_qupdate (db_cursor_t, const db_bind_t *, db_len_t, db_object_t)
db_result_t db_qupdate_flags (db_cursor_t, const db_bind_t *, db_len_t, db_object_t, db_flags_t)
db_sequence_t db_open_sequence (db_t, const db_objname_t *)
db_sequence_t db_duplicate_sequence (db_sequence_t)
db_result_t db_close_sequence (db_sequence_t)
db_result_t db_next_sequence (db_sequence_t, db_seqvalue_t *)
db_result_t db_curr_sequence (db_sequence_t, db_seqvalue_t *)
db_hlock_t db_lock (db_t, const db_oid_t *, db_flags_t lock_mode)
db_result_t db_unlock (db_t, const db_oid_t *, db_hlock_t)
db_hlock_t db_lock_table (db_t, const db_objname_t *, db_flags_t lock_mode)
db_result_t db_get_tableid (db_t, const db_objname_t *, db_oid_t *)
db_result_t db_oid_init (db_oid_t *, db_heap_t)
db_result_t db_oid_destroy (db_oid_t *)
db_result_t db_oid_copy (db_oid_t *dst, const db_oid_t *src)
int db_oid_equal (const db_oid_t *, const db_oid_t *)
db_result_t db_oid_reset (db_oid_t *dst)
db_result_t db_oid_extract_tableid (db_oid_t *, const db_oid_t *)
int db_is_noid (const db_oid_t *)
int db_is_rowid (const db_oid_t *)
int db_is_tableid (const db_oid_t *)
db_result_t db_config_init (db_config_t *)
db_result_t db_config_destroy (db_config_t *)
db_result_t lm_config_init (lm_config_t *)
db_result_t lm_config_destroy (lm_config_t *)
db_result_t lm_local_config_init (lm_local_config_t *)
db_result_t lm_local_config_destroy (lm_local_config_t *)
db_result_t db_bind_init (db_bind_t *)
db_result_t db_bind_destroy (db_bind_t *)
db_result_t db_watch_table (db_t, const db_objname_t *, db_flags_t, uint32_t utid)
db_result_t db_unwatch_table (db_t, const db_objname_t *)
db_result_t db_wait (db_t, db_wtime_t, db_event_t *)
db_result_t db_wait_ex (db_t, db_wtime_t, db_event_t *, db_row_t row, db_row_t aux_row)
db_result_t db_server_config_init (db_server_config_t *)
db_result_t db_server_config_destroy (db_server_config_t *)
db_result_t db_server_start (const db_server_config_t *)
db_result_t db_server_stop (db_flags_t)
int32_t db_server_connection_count (void)
int db_get_prio (db_t)
int db_set_prio (db_t, int prio)
uintptr_t db_info (db_t, int info_tag)
void db_set_trace (const char *trace_file, uint32_t enable_mask, uint32_t disable_mask)
db_savepoint_t db_set_savepoint (db_t, const db_objname_t *, db_flags_t flags)
db_savepoint_t db_find_savepoint (db_t, const db_objname_t *)
db_result_t db_release_savepoint (db_t, db_savepoint_t)
db_result_t db_rollback_savepoint (db_t, db_savepoint_t)
int db_api_statistics (db_api_statistics_t *, int)
int db_lm_statistics (db_lm_statistics_t *, int)
int db_mem_statistics (db_mem_statistics_t *, int)
db_result_t db_rep_table_query (db_t, const db_objname_t *table_name, db_rep_table_info_t *)
db_result_t db_rep_table_set (db_t, const db_objname_t *table_name, const db_rep_table_info_t *, db_flags_t flags)
db_result_t db_rep_load (db_t, const db_fname_t *journal_name, db_flags_t file_flags)
db_result_t db_rep_snapshot (db_t, const db_objname_t *table, const db_objname_t *peer_name, db_flags_t)
db_result_t db_get_journal_name (db_t, const db_ulargeint_t *, db_fname_t *name_buf, db_len_t buf_len)
db_result_t db_rep_journal_info (db_t, db_rep_journal_info_t *)
db_result_t _db_rep_switch_journal (db_t, db_rep_journal_info_t *)
db_result_t db_rep_peerdef_init (db_rep_peerdef_t *)
db_result_t db_rep_peerdef_destroy (db_rep_peerdef_t *)
db_result_t db_rep_create_peer (db_t, const db_objname_t *, const db_rep_peerdef_t *)
db_result_t db_rep_drop_peer (db_t, const db_objname_t *)
db_result_t db_rep_describe_peer (db_t, const db_objname_t *, db_rep_peerdef_t *)
db_result_t db_rep_alter_peer (db_t, const db_objname_t *, const db_rep_peerdef_t *)
db_result_t db_rep_exchange (db_t, const db_objname_t *, db_flags_t)
db_result_t db_rep_config_init (db_rep_config_t *)
db_result_t db_rep_config_destroy (db_rep_config_t *)
db_result_t db_rep_set_config (db_t, const db_rep_config_t *)
db_result_t db_rep_get_config (db_t, db_rep_config_t *)

Resource Management



#define DB_RM_DETACH   1
#define DB_RECOVER_RESTART   1
db_result_t db_rm_prepare (db_t, const db_xid_t *xid, db_wtime_t, db_flags_t)
db_result_t db_rm_recover (db_t, db_xid_t *, db_len_t, db_len_t *, db_flags_t)
db_result_t db_rm_commit (db_t, const db_xid_t *, db_flags_t)
db_result_t db_rm_rollback (db_t, const db_xid_t *, db_flags_t)

Distributed Transaction Management



#define DB_DTM_NONE   0
#define DB_DTM_PREPARED   1
#define DB_DTM_COMMIT   2
#define DB_DTM_ROLLBACK   3
db_result_t db_dtm_commit (db_t, const db_ansi_t *tx_info, db_t *, int slave_count, db_xid_t *xid, int *unresolved)
db_result_t db_dtm_info (db_t, const db_xid_t *, db_dtm_info_t *)
db_result_t db_dtm_resolve (db_t, const db_xid_t *, db_t *, int slave_count, int *unresolved)
db_result_t db_dtm_recover (db_t, db_xid_t *, db_len_t, db_len_t *, db_flags_t)
db_result_t db_set_commit_timeout (db_t, db_wtime_t)
db_result_t db_get_commit_timeout (db_t, db_wtime_t *)

Detailed Description

Entry point for the ITTIA DB C API.

The C API provides a low-level interface to the database kernel. To access the C API, include ittia/db.h.

#include <ittia/db.h>

 All Data Structures Files Functions Variables Typedefs Defines
Copyright © 2005-2011 ITTIA®. All rights reserved.