MariaDB Connector/C Types and Definitions
Contents
MariaDB Connector/C provides the following types and definitions.
Enumeration Types
enum mysql_option
enum mysql_option
is used as a parameter in mysql_optionsv() and mysql_get_optionsv() API functions. For a list of integral constants and their meanings please check the documentation of mysql_get_optionsv().
enum enum_mysql_timestamp_type
enum enum_mysql_timestamp_type
is used in the MYSQL_TIME structure and indicates the type. It has the following constants:
- MYSQL_TIMESTAMP_NONE
- MYSQL_TIMESTAMP_ERROR
- MYSQL_TIMESTAMP_DATE
- MYSQL_TIMESTAMP_DATETIME
- MYSQL_TIMESTAMP_TIME
enum mysql_set_option
enum mysql_set_option
is used as a parameter in mysql_set_server_option() and has the following constants:
- MYSQL_OPTIONS_MULTI_STATEMENTS_ON
- MYSQL_OPTIONS_MULTI_STATEMENTS_OFF
enum enum_field_types
enum field_types
describes the different field types used by MariaDB ] and has the following constants:
- MYSQL_TYPE_DECIMAL
- MYSQL_TYPE_TINY
- MYSQL_TYPE_SHORT
- MYSQL_TYPE_LONG
- MYSQL_TYPE_FLOAT
- MYSQL_TYPE_DOUBLE
- MYSQL_TYPE_NULL
- MYSQL_TYPE_TIMESTAMP
- MYSQL_TYPE_LONGLONG
- MYSQL_TYPE_INT24
- MYSQL_TYPE_DATE
- MYSQL_TYPE_TIME
- MYSQL_TYPE_DATETIME
- MYSQL_TYPE_YEAR
- MYSQL_TYPE_NEWDATE
- MYSQL_TYPE_VARCHAR
- MYSQL_TYPE_BIT
- MYSQL_TYPE_TIMESTAMP2
- MYSQL_TYPE_DATETIME2
- MYSQL_TYPE_TIME2
- MYSQL_TYPE_JSON
- MYSQL_TYPE_NEWDECIMAL
- MYSQL_TYPE_ENUM
- MYSQL_TYPE_SET
- MYSQL_TYPE_TINY_BLOB
- MYSQL_TYPE_MEDIUM_BLOB
- MYSQL_TYPE_LONG_BLOB
- MYSQL_TYPE_BLOB
- MYSQL_TYPE_VAR_STRING
- MYSQL_TYPE_STRING
- MYSQL_TYPE_GEOMETRY
enum mysql_enum_shutdown_level
enum mysql_enum_shutdown_level
is used as a parameter in mysql_server_shutdown() and has the following constants:
- SHUTDOWN_DEFAULT
- KILL_QUERY
- KILL_CONNECTION
enum enum_stmt_attr_type
enum_stmt_attr_type
is used to set different statement options. For a detailed description please check mysql_stmt_attr_set() function.
enum enum_cursor_type
enum_cursor_type
specifies the cursor type and is used in mysql_stmt_attr_set() function. Currently the following constants are supported:
- CURSOR_TYPE_READ_ONLY
- CURSOR_TYPE_NO_CURSOR
enum enum_indicator_type
enum_indicator_type
describes the type of indicator used for prepared statements bulk operations.
STMT_INDICATOR_NTS | String is zero terminated |
STMT_INDICATOR_NONE | No indicator in use |
STMT_INDICATOR_NULL | Value is NULL |
STMT_INDICATOR_DEFAULT | Use default value |
STMT_INDICATOR_IGNORE | Ignore the specified value |
STMT_INDICATOR_IGNORE_ROW | Skip the current row |
Definitions
Field Flags
The following field flags are used in MYSQL_FIELD structure.
Flag | Value | Description |
NOT_NULL_FLAG | 1 | Field can't be NULL |
PRI_KEY_FLAG | 2 | Field is part of primary key |
UNIQUE_KEY_FLAG | 4 | Field is part of unique key |
MULTIPLE_KEY_FLAG | 8 | Field is part of a key |
BLOB_FLAG | 16 | Field is a blob |
UNSIGNED_FLAG | 32 | Field is unsigned integer |
ZEROFILL_FLAG | 64 | Field is zero filled |
BINARY_FLAG | 128 | Field is binary |
ENUM_FLAG | 256 | Field is enum |
AUTO_INCREMENT_FLAG | 512 | Field is an autoincrement field |
TIMESTAMP_FLAG | 1024 | Field is a timestamp |
SET_FLAG | 2048 | Field is a set |
NO_DEFAULT_VALUE_FLAG | 4096 | Field has no default value |
ON_UPDATE_NOW_FLAG | 8192 | If a field is updated it will get the current time value (NOW()) |
NUM_FLAG | 32768 | Field is numeric |
Server Status
The server_status can be obtained by the mariadb_get_infov() function using the MARIADB_CONNECTION_SERVER_STATUS
option.
SERVER_STATUS_IN_TRANS | 1 | A transaction is currently active |
SERVER_STATUS_AUTOCOMMIT | 2 | Autocommit mode is set |
SERVER_MORE_RESULTS_EXISTS | 8 | more results exists (more packet follow) |
SERVER_QUERY_NO_GOOD_INDEX_USED | 16 | |
SERVER_QUERY_NO_INDEX_USED | 32 | |
SERVER_STATUS_CURSOR_EXISTS | 64 | when using COM_STMT_FETCH, indicate that current cursor still has result |
SERVER_STATUS_LAST_ROW_SENT | 128 | when using COM_STMT_FETCH, indicate that current cursor has finished to send results |
SERVER_STATUS_DB_DROPPED | 1<<8 | database has been dropped |
SERVER_STATUS_NO_BACKSLASH_ESCAPES | 1<<9 | current escape mode is "no backslash escape" |
SERVER_STATUS_METADATA_CHANGED | 1<<10 | A DDL change did have an impact on an existing PREPARE (an automatic reprepare has been executed) |
SERVER_QUERY_WAS_SLOW | 1<<11 | Last statement took more than the time value specified in server variable long_query_time . |
SERVER_PS_OUT_PARAMS | 1<<12 | this resultset contain stored procedure output parameter |
SERVER_STATUS_IN_TRANS_READONLY | 1<<13 | current transaction is a read-only transaction |
SERVER_SESSION_STATE_CHANGED | 1<<14 | session state change. see Session change type for more information |
Macros
IS_PRI_KEY(flag) | True if the field is part of a primary key |
IS_NOT_NULL(flags) | True if the field is defined as not NULL |
IS_BLOB(flags) | True if the field is a text or blob field |
IS_NUM(column_type) | True if the column type is numeric |
IS_LONGDATA(column_type) | True if the column is a blob or text field |