Skip to content
  • Sivert Sorumgard's avatar
    c1d44695
    Bug#28211486: Sql layer must check/set server version number in dd tablespace · c1d44695
    Sivert Sorumgard authored
    This patch will:
    
    - Add two new handlerton functions to get and set the server version number
      stored in the dictionary tablespace header.
    - Implement the two functions for InnnoDB. Setting the server version is
      implemented by modifying the existing function 'upgrade_space_version()'.
    - Add a new function to the bootstrap context singleton to keep track of
      server versions from which upgrade is supported. Currently, this set
      contains all post-GA 8.0 versions.
    - Add a check during server bootstrap where we get hold of the server version
      number from the dictionary tablespace, and verify that this is a version
      from which we are allowed to upgrade.
    - Move the update of the actual server version number in the bootstrap context
      from the end of do_upgrade_checks() to update_versions(), and also update the
      server version number in the dictionary tablespace header at the same time.
    - Introduce new MTR include predicate not_freebsd.inc and add that one and
      freebsd.inc to excludenoskip.list.
    
    Semi-related to the issues above, this patch will also:
    
    - Add a new MTR test to list the contents of the DD table 'mysql.dd_properties'
      in a human readable format. This will catch accidential changes to the
      contents of this table.
    - Add a zipped datadir from 8.0.13 and extend the relevant dd_schema_definition
      test to verify correct upgrade from 8.0.13.
    - Refactor the existing test dd_schema_definition_after_upgrade_debug and
      separate out common code as an include file. The test will also verify that
      the contents of the mysql.dd_properties table is the same for an upgraded
      server as it is for a newly initialized server (with the exception of ids,
      root page numbers, etc.).
    - Swap the order of the steps in migrate_meta_data() adressing the mysql.tables
      DD table. We need to first complete the in place updates before inserting the
      meta data into the new table version.
    
    Unrelated to the above, this patch will also:
    
    - Update and enable a test cases in main.partition, but keep the original
      test case commented out until support for partitions in shared tablespaces
      is re-implemented.
    - Remove sql/dd/mtr_readme.txt since this file is now obsolete.
    - Change have_mac_os.inc to check also for MacOS, not just the obsoleted OSX.
    - Fix the test resource_group_unsupported, which was using illegal syntax.
    
    Change-Id: Idac1ea7bf3a264e7035e048179f7de89c435f272
    c1d44695
    Bug#28211486: Sql layer must check/set server version number in dd tablespace
    Sivert Sorumgard authored
    This patch will:
    
    - Add two new handlerton functions to get and set the server version number
      stored in the dictionary tablespace header.
    - Implement the two functions for InnnoDB. Setting the server version is
      implemented by modifying the existing function 'upgrade_space_version()'.
    - Add a new function to the bootstrap context singleton to keep track of
      server versions from which upgrade is supported. Currently, this set
      contains all post-GA 8.0 versions.
    - Add a check during server bootstrap where we get hold of the server version
      number from the dictionary tablespace, and verify that this is a version
      from which we are allowed to upgrade.
    - Move the update of the actual server version number in the bootstrap context
      from the end of do_upgrade_checks() to update_versions(), and also update the
      server version number in the dictionary tablespace header at the same time.
    - Introduce new MTR include predicate not_freebsd.inc and add that one and
      freebsd.inc to excludenoskip.list.
    
    Semi-related to the issues above, this patch will also:
    
    - Add a new MTR test to list the contents of the DD table 'mysql.dd_properties'
      in a human readable format. This will catch accidential changes to the
      contents of this table.
    - Add a zipped datadir from 8.0.13 and extend the relevant dd_schema_definition
      test to verify correct upgrade from 8.0.13.
    - Refactor the existing test dd_schema_definition_after_upgrade_debug and
      separate out common code as an include file. The test will also verify that
      the contents of the mysql.dd_properties table is the same for an upgraded
      server as it is for a newly initialized server (with the exception of ids,
      root page numbers, etc.).
    - Swap the order of the steps in migrate_meta_data() adressing the mysql.tables
      DD table. We need to first complete the in place updates before inserting the
      meta data into the new table version.
    
    Unrelated to the above, this patch will also:
    
    - Update and enable a test cases in main.partition, but keep the original
      test case commented out until support for partitions in shared tablespaces
      is re-implemented.
    - Remove sql/dd/mtr_readme.txt since this file is now obsolete.
    - Change have_mac_os.inc to check also for MacOS, not just the obsoleted OSX.
    - Fix the test resource_group_unsupported, which was using illegal syntax.
    
    Change-Id: Idac1ea7bf3a264e7035e048179f7de89c435f272
Loading