data types
To ensure portability across dissimilar computer architectures, the provides a set of data types, which begin with the mi_ prefix. Most of these data types correspond to common SQL or C-language data types.
| data type | Standard C or ESQL/C data type | SQL data type |
|---|---|---|
| Character data types: | ||
| mi_char | C: char | CHAR, VARCHAR, IDSSECURITYLABEL, GLS: NCHAR, NVARCHAR |
| mi_char1 | C: char | CHAR(1) |
| mi_unsigned_char1 | C: unsigned char | None |
| mi_wchar (deprecated) | C: unsigned two-byte integer | None |
| mi_string | C: char * | CHAR, VARCHAR, GLS: NCHAR, NVARCHAR |
| mi_lvarchar | : lvarchar (though lvarchar is null-terminated and mi_lvarchar is not) | LVARCHAR Within C UDRs: for CHAR, NCHAR, TEXT, VARCHAR, and NVARCHAR arguments and return value |
| Integer numeric data types: | ||
| mi_sint1 | C: signed one-byte integer | None |
| mi_int1 | C: unsigned one-byte integer, char | None |
| mi_smallint | C: signed two-byte integer (short integer on many systems) | SMALLINT |
| mi_unsigned_smallint | C: unsigned two-byte integer | None |
| mi_integer | C: signed four-byte integer (long integer on many systems) |
INTEGER, SERIAL |
| mi_unsigned_integer | C: unsigned four-byte integer | None |
| mi_int8 | C: signed eight-byte integer; : int8, ifx_int8_t | INT8, SERIAL8 |
| mi_unsigned_int8 | C: unsigned eight-byte integer; : int8, ifx_int8_t | None |
| mi_bigint | C: unsigned eight-byte integer | BIGINT, BIGSERIAL |
| mi_unsigned_bigint | C: unsigned eight-byte integer | None |
| Fixed-point numeric data types: | ||
| mi_decimal, mi_numeric | : decimal, dec_t | DECIMAL(p,s) (fixed-point) |
| mi_money | : decimal, dec_t | MONEY |
| Floating-point numeric data types: | ||
| mi_decimal | : decimal, dec_t | DECIMAL(p) (floating-point) |
| mi_real | C: float | SMALLFLOAT, REAL |
| mi_double_precision | C: double | FLOAT, DOUBLE PRECISION |
| Date and time data types: | ||
| mi_date | C: four-byte integer; : date | DATE |
| mi_datetime | : datetime, dtime_t | DATETIME |
| mi_interval | : interval, intrvl_t | INTERVAL |
| Varying-length data types: | ||
| mi_lvarchar | C: void * : lvarchar (though lvarchar is null-terminated and mi_lvarchar is not) |
LVARCHAR, Opaque types Within C UDRs: for CHAR, NCHAR, TEXT, VARCHAR, and NVARCHAR arguments and return value |
| mi_sendrecv | C: void * | SENDRECV, opaque-type support functions: send, receive |
| mi_impexp | C: void * | IMPEXP, opaque-type support functions: import, export |
| mi_impexpbin | C: void * | IMPEXPBIN, opaque-type support functions: importbin, exportbin |
| mi_bitvarying | C: void * | BITVARYING |
| Complex data types: | ||
| MI_COLLECTION | C: void * | SET, LIST, MULTISET |
| MI_ROW | C: void * | ROW (unnamed row type), Named row type |
| Other data types: | ||
| mi_boolean | C: char: boolean | BOOLEAN |
| mi_pointer | C: void * | POINTER |
| MI_LO_HANDLE | None | CLOB, BLOB Smart large objects |
| SQL data type | Information about corresponding data types |
|---|---|
| BITVARYING | The mi_bitvarying data type |
| BLOB | Smart large objects |
| BOOLEAN | Boolean data types |
| BYTE | Simple large objects |
| CHAR | Character data types |
| CLOB | Smart large objects |
| DATE | Date and time data types |
| DATETIME | Date and time data types |
| DECIMAL | Numeric data types |
| Distinct | Extend data types |
| FLOAT | Numeric data types |
| INT8 | Numeric data types |
| INTEGER | Numeric data types |
| INTERVAL | Date and time data types |
| LIST | Complex data types |
| LVARCHAR | Varying-length data type structures |
| MONEY | Numeric data types |
| MULTISET | Complex data types |
| NCHAR | Character data types |
| NVARCHAR | Character data types |
| Opaque | Extend data types |
| POINTER | Pointer data types (Server) |
| ROW | Complex data types |
| SERIAL | Numeric data types |
| SERIAL8 | Numeric data types |
| SET | Numeric data types |
| SMALLFLOAT | Numeric data types |
| SMALLINT | Numeric data types |
| TEXT | Simple large objects |
| VARCHAR | Character data types |