Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-20042

Implement EXTRA2_FIELD_DATA_TYPE_INFO in FRM

    XMLWordPrintable

Details

    Description

      This task will implement a new frm segment EXTRA2_FIELD_DATA_TYPE_INFO.
      Pluggable data types will write their exact data type information in this segment: the data type name and all attributes.

      In the standard data type sergment, pluggable data types will still write basic things (like normal fields do) such as:

      • The MYSQL_TYPE_XXX replacement type code
      • Decimals
      • Length
      • Collation ID
      • Flags

      For example, INET6 will later write this information in the standard segment:

      • Type code = MYSQL_TYPE_STRING
      • Field length = 16
      • Collation ID = 63 (my_charset_bin)

      and additionally write "inet6" into the new segment EXTRA2_FIELD_DATA_TYPE_INFO.

      Only extended data types will write to EXTRA2_FIELD_DATA_TYPE_INFO.
      If a table does not have any columns with extended types, EXTRA2_FIELD_DATA_TYPE_INFO won't be written.

      Let's use this format for every field:

      1. fieldnr, in net_write_length() format
      2. data type info length, in net_write_length() format
      3. data type info string, according to 2

      We don't have extended data types yet, so this task will make sure the new functionality works using some DBUG_EXECUTE_IFs:

      • to force some built-in data types write EXTRA2_FIELD_DATA_TYPE_INFO
      • to print information about EXTRA2_FIELD_DATA_TYPE_INFO as warnings

      This will guarantee that the full cycle is tested:

      • writing EXTRA2_FIELD_DATA_TYPE_INFO in build_frm_image()
      • parsing EXTRA2_FIELD_DATA_TYPE_INFO in TABLE_SHARE::init_from_binary_frm_image()

      Attachments

        Issue Links

          Activity

            People

              bar Alexander Barkov
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.