Type identifiers
A type identifier, MI_TYPEID, is a DataBlade® API data type structure that identifies a data type uniquely. For extended data types, the type identifier is database-dependent; that is, the same type identifier might identify different data types for different databases.
You can determine the data type that a type identifier
represents with the following DataBlade®
API functions.
Type-identifier check | DataBlade® API function |
---|---|
Are two type identifiers equal? | mi_typeid_equals() |
Does the type identifier represent a built-in data type? | mi_typeid_is_builtin() |
Does the type identifier represent a collection (SET, MULTISET, LIST) data type? | mi_typeid_is_collection() |
Does the type identifier represent a complex data type (row type or collection)? | mi_typeid_is_complex() |
Does the type identifier represent a distinct data type? | mi_typeid_is_distinct() |
Does the type identifier represent a LIST data type? | mi_typeid_is_list() |
Does the type identifier represent a MULTISET data type? | mi_typeid_is_multiset() |
Does the type identifier represent a row type (named or unnamed)? | mi_typeid_is_row() |
Does the type identifier represent a SET data type? | mi_typeid_is_set() |
Restriction: To a DataBlade®
API module,
the type identifier (MI_TYPEID) is an opaque C data structure.
Do not access its internal fields directly. The internal structure
of a type identifier might change in future releases. Therefore, to
create portable code, always use the accessor functions for this structure
to determine data type.
The DataBlade®
API uses
type identifiers in the following situations.
Type identifier usage | DataBlade® API function | More information |
---|---|---|
To indicate a column type in a row descriptor | mi_column_type_id() | Obtain column information |
To indicate data type of arguments in a user-defined routine (UDR) | mi_fp_argtype(), mi_fp_setargtype() | Determine the data type of UDR arguments |
To indicate data type of return type of a UDR | mi_fp_rettype(), mi_fp_setrettype() | Determine the data type of UDR return values |
To indicate data type of a column with which an input parameter in a prepared statement is associated | mi_parameter_type_id() | Obtain input-parameter information |
To identify a UDR by the data types of its arguments to generate its function descriptor | mi_routine_get_by_typeid() | Look up a UDR |
To identify a cast function by the source and target data types to generate its function descriptor | mi_cast_get() | Look up cast functions |
To identify the element type of a collection | mi_collection_create() | Create a Collection |