Spec-Zone.ru › MariaDB

Плагины схемы информации: операторы SHOW и FLUSH

Плагины схемы информации могут поддерживать операторы SHOW и FLUSH.

SHOW

Поддержка операторов SHOW включена автоматически. Плагину нужно только указать имена столбцов для оператора SHOW в члене old_name структуры описания поля. Столбцы с old_name, установленным в 0, будут скрыты от оператора SHOW. Если все столбцы скрыты, оператор SHOW не будет работать для этого плагина.

Обратите внимание, что оператор SHOW — это удобный сокращённый вариант; он легче набирается и, предположительно, легче отображается — если таблица схемы информации содержит много столбцов, оператор SHOW предполагается, что отображает только самые важные столбцы и хорошо вписывается на терминал 80x25.

Рассмотрим пример, плагин LOCALES:

static ST_FIELD_INFO locale_info_locale_fields_info[]=
{
  {"ID", 4, MYSQL_TYPE_LONGLONG, 0, 0, "Id", 0},
  {"NAME", 255, MYSQL_TYPE_STRING, 0, 0, "Name", 0},
  {"DESCRIPTION", 255,  MYSQL_TYPE_STRING, 0, 0, "Description", 0},
  {"MAX_MONTH_NAME_LENGTH", 4, MYSQL_TYPE_LONGLONG, 0, 0, 0, 0},
  {"MAX_DAY_NAME_LENGTH", 4, MYSQL_TYPE_LONGLONG, 0, 0, 0, 0},
  {"DECIMAL_POINT", 2, MYSQL_TYPE_STRING, 0, 0, 0, 0},
  {"THOUSAND_SEP", 2, MYSQL_TYPE_STRING, 0, 0, 0, 0},
  {"ERROR_MESSAGE_LANGUAGE", 64, MYSQL_TYPE_STRING, 0, 0, "Error_Message_Language", 0},
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, 0}
};

Хотя таблица INFORMATION_SCHEMA.LOCALES имеет 8 столбцов, оператор SHOW LOCALES отобразит только 4 из них:

MariaDB [test]> show locales;
+-----+-------+-------------------------------------+------------------------+
| Id  | Name  | Description                         | Error_Message_Language |
+-----+-------+-------------------------------------+------------------------+
|   0 | en_US | English - United States             | english                |
|   1 | en_GB | English - United Kingdom            | english                |
|   2 | ja_JP | Japanese - Japan                    | japanese               |
|   3 | sv_SE | Swedish - Sweden                    | swedish                |
...

FLUSH

Для поддержки оператора FLUSH плагин должен объявить обратный вызов reset_table. Например, в плагине QUERY_RESPONSE_TIME:

static int query_response_time_info_init(void *p)
{
  ST_SCHEMA_TABLE *i_s_query_response_time= (ST_SCHEMA_TABLE *) p;
  i_s_query_response_time->fields_info= query_response_time_fields_info;
  i_s_query_response_time->fill_table= query_response_time_fill;
  i_s_query_response_time->reset_table= query_response_time_flush;
  query_response_time_init();
  return 0;
}
Содержание, воспроизводимое на этом сайте, является собственностью соответствующих владельцев, и это содержание не просматривается заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/information-schema-plugins-show-and-flush-statements/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API