Types & Definitions
From; https://mariadb.com/kb/en/mariadb-connectorc-types-and-definitions/





MariaDB Connector/C Types and Definitions
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:
enum mysql_set_option enum mysql_set_option is used as a parameter in mysql_set_server_option() and has the following constants:
enum enum_field_types enum field_types describes the different field types used by MariaDB ] and has the following constants:
enum mysql_enum_shutdown_level enum mysql_enum_shutdown_level is used as a parameter in mysql_server_shutdown() and has the following constants:
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:
enum enum_indicator_type enum_indicator_type describes the type of indicator used for prepared statements bulk operations.
STMT_INDICATOR_NTSString is zero terminated
STMT_INDICATOR_NONENo indicator in use
STMT_INDICATOR_NULLValue is NULL
STMT_INDICATOR_DEFAULTUse default value
STMT_INDICATOR_IGNOREIgnore the specified value
STMT_INDICATOR_IGNORE_ROWSkip the current row

Definitions
Field Flags The following field flags are used in MYSQL_FIELD structure.
FlagValueDescription
NOT_NULL_FLAG1Field can't be NULL
PRI_KEY_FLAG2Field is part of primary key
UNIQUE_KEY_FLAG4Field is part of unique key
MULTIPLE_KEY_FLAG8Field is part of a key
BLOB_FLAG16Field is a blob
UNSIGNED_FLAG32Field is unsigned integer
ZEROFILL_FLAG64Field is zero filled
BINARY_FLAG128Field is binary
ENUM_FLAG256Field is enum
AUTO_INCREMENT_FLAG512Field is an autoincrement field
TIMESTAMP_FLAG1024Field is a timestamp
SET_FLAG2048Field is a set
NO_DEFAULT_VALUE_FLAG4096Field has no default value
ON_UPDATE_NOW_FLAG8192If a field is updated it will get the current time value (NOW())
NUM_FLAG32768Field 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_TRANS1A transaction is currently active
SERVER_STATUS_AUTOCOMMIT2Autocommit mode is set
SERVER_MORE_RESULTS_EXISTS8more results exists (more packet follow)
SERVER_QUERY_NO_GOOD_INDEX_USED16
SERVER_QUERY_NO_INDEX_USED32
SERVER_STATUS_CURSOR_EXISTS64when using COM_STMT_FETCH, indicate that current cursor still has result
SERVER_STATUS_LAST_ROW_SENT128when using COM_STMT_FETCH, indicate that current cursor has finished to send results
SERVER_STATUS_DB_DROPPED1<<8database has been dropped
SERVER_STATUS_NO_BACKSLASH_ESCAPES1<<9current escape mode is "no backslash escape"
SERVER_STATUS_METADATA_CHANGED1<<10A DDL change did have an impact on an existing PREPARE (an automatic reprepare has been executed)
SERVER_QUERY_WAS_SLOW1<<11Last statement took more than the time value specified in server variable long_query_time.
SERVER_PS_OUT_PARAMS1<<12this resultset contain stored procedure output parameter
SERVER_STATUS_IN_TRANS_READONLY1<<13current transaction is a read-only transaction
SERVER_SESSION_STATE_CHANGED1<<14session 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