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

Implement EXTRA2_FIELD_DATA_TYPE_INFO in FRM

    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

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

                Dates

                • Created:
                  Updated:
                  Resolved: