Skip to content

mariadb_field_attr

Georg Richter edited this page Jun 11, 2021 · 2 revisions

Name

mariadb_field_attr - returns extended metadata information for pluggable field types

Synopsis

#include <mysql.h>

int *mariadb_field_attr(MARIADB_CONST_STRING *attr,
                        const MYSQL_FIELD *field,
                        enum mariadb_field_attr_t type)

Description

Returns extended metadata information for pluggable field types like JSON and GEOMETRY.

Parameter

  • attr: A pointer which returns extended metadata information
  • field: Specifies the field which contains extended metadata information
  • type: Specifies type of metadata information. Supported types are MARIADB_FIELD_METADATA_DATA_TYPE_NAME and MARIADB_FIELD_METADATA_FORMAT_NAME.

Return value

Returns zero on success or non zero if the field doesn't provide extended metadata information.

Notes

  • Pluggable field type support is available in MariaDB server version 10.5.2 and later
  • To check if the server supports pluggable field types, check the extended server capabilities which can be obtained by api function mariadb_get_info()

Example

#include <mysql.h>

int display_extended_field_attribute(MYSQL *mysql)
{
  MYSQL_RES *result;
  MYSQL_FIELD *fields;

  if (mysql_query(mysql, "CREATE TEMPORARY TABLE t1 (a POINT)"))
    return 1;

  if (mysql_query(mysql, "SELECT a FROM t1"))
    return 1;

  if (!(result= mysql_store_result(mysql)))
    return 1;

  if ((fields= mysql_fetch_fields(result)))
  {
    MARIADB_CONST_STRING field_attr;

    if (!mariadb_field_attr(&field_attr, &fields[0],
                            MARIADB_FIELD_ATTR_DATA_TYPE_NAME))
    {
      printf("Extended field attribute: %s\n", field_attr.str);
    }
  }
  mysql_free_result(result);
  return 0;
}

History

mariadb_field_attr was added in MariaDB Connector/C 3.1.8

See also

Clone this wiki locally