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:

  • 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_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

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.