[MDEV-19843] Modify ST_FIELD_INFO to use Type_handler and LEX_CSTRING Created: 2019-06-24  Updated: 2019-06-24  Resolved: 2019-06-24

Status: Closed
Project: MariaDB Server
Component/s: Information Schema
Fix Version/s: 10.5.0

Type: Task Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-4912 Data type plugin API version 1 Closed
is blocked by MDEV-19772 Add helper classes for ST_FIELD_INFO Closed
is blocked by MDEV-19810 Reuse new I_S table definition helper... Closed
is blocked by MDEV-19818 Reuse new I_S table definition helper... Closed
is blocked by MDEV-19832 Reuse new I_S table definition helper... Closed
is blocked by MDEV-19833 Reuse new I_S table definition helper... Closed
is blocked by MDEV-19836 Reuse new I_S table definition helper... Closed

 Description   

ST_FIELD_INFO has two problems:

  • It's not friently for user plugins, which may want to create INFORMATION_SCHEMA tables with their own data types.
  • When a Field is created inside Type_handler_xxx::make_schema_field(), strlen() is called for ST_FIELD_INFO::field_name, for every column, every time an INFORMATION_SCHEMA query is done. This is not performance wise.
  • In ST_FIELD_INFO, replace enum_field_types field_type to const Type_handler *handler.
  • In ST_FIELD_INFO, replace const char *field_name to LEX_CSTRING field_name.
    which will solve the two mentioned problems.

Generated at Thu Feb 08 08:54:47 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.