Uploaded image for project: 'Percona Server for MySQL'
  1. Percona Server for MySQL
  2. PS-4741

Fix and re-record mtr tests due to changes in 8.0



    • Type: Bug
    • Status: Done
    • Priority: Medium
    • Resolution: Done
    • Affects Version/s: 8.0.x
    • Fix Version/s: 8.0.12-2rc1
    • Component/s: TokuDB
    • Labels:


      • General test cleanup on touched tests:
        • remove DROP TABLE x IF EXISTS
        • remove set default_storage_engine=tokudb and use explicit create table ... engine=tokudb
        • capitalization consistency within the test
        • using include/assert.inc instead of relying on simple result of SELECT <something>
        • use include/expect_crash.inc and include/start_mysqld.inc
      • DEFAULT CHARSET changes produce new warning when utf8 is used : Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
      • DEFAULT CHARSET changes size of individual character, thius limiting VARCHAR key size to 768 characters or 3072 bytes.
      • DEFAULT CHARSET changes results of SHOW CREATE TABLE as new default charset and collation are DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci.
      • EXPLAIN Extra result column has different content based on new optimizer changes and Backwards index scan.
      • EXPLAIN type sometimes differs now due to optimizer changes.
      • Non deterministic queries (SELECT without ORDER BY) and new optimizer changes (same results, different result ordering).
      • search_pattern_in_file.inc changes due to this commit https://github.com/mysql/mysql-server/commit/790e766822b2603f91f8758e534051e721045f16
      • Fix tests that are built assuming that log_bin is off where in 8.0 it is now on by default.
      • Event scheduler Daemon appearing in information_schema.processlist
      • 8.0 now prohibits changing the value of lower_case_table_names after -initialize. See https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names.  Tests must now be bootstrapped with lctn setting via -bootstrap --lower-case-table-names=1
      • 8.0 deprecates have_innodb.inc Remove all instances.
      • 8.0 deprecates not_gtid_enabled.inc, Remove all instances and fix tests that require gtid_mode=off with assertion.
      • 8.0 deprecates not_embedded.inc. Remove all instances.
      • 8.0 deprecates have_perfschema.inc. Remove all instances.
      • 8.0 changes perfschema/include/start_server_common.inc. All derived tests need re-recording.
      • 8.0 changes extra/rpl_tests/*. All derived test need re-recording.
      • 8.0 deprecates -log-warnings, use -log-error-verbosity instead.


      Second pass all of the above ^^ plus some more:

      • Disabled tests known to fail due to unsupported features.
      • Default character set changes
        • Ordering of result sets from performance_schama changed due to different collation
        • Need to specify latin1 as character set for certain tests that use LOAD DATA INFILE.
      • Reworked tests that made use of or depended on sql_mode=maxdb which is deprecated in 8.0, see worklog https://dev.mysql.com/worklog/task/?id=9465
      • Added --error ER_CHECK_NOT_IMPLEMENTED to expect new error where DESC is used and removed DESC for test continuation or otherwise removed test sequence where now DESC is not applicable to results.
      • Added --error ER_INVALID_DEFAULT to expect new error where bad column default values are used and otherwise fixed test sequence.
      • Added --error ER_BAD_NULL_ERROR to expect error on NULL insertion due to test poorly handling sql_mode that was removed as part of the sql_mode=maxdb fix
      • Re-record tests that now return I_S column names in CAPS
      • Remove EXPLAIN EXTENDED and just use EXPLAIN as 8.0 deprecates the EXTENDED keyword.
      • Differences in reported row_format due to data dictionary changes.
      • Re-recorded tests due to changed error strings
      • Re-recorded tests that utilize mysql.slave_relay_log_info, mysql.slave_worker_info, and mysql.slave_relay_log_info which now have different structure and content.
      • Re-recorded tests that record default sql_mode
      • Re-recorded tests that record default optimizer_switch
      • Removed --source include/have_mrr.inc as it is gone in 8.0 as part of commit https://github.com/mysql/mysql-server/commit/d450ab5d679b68951c4ee2232cf785f63caab21f
      • Fixed tests still using now removed tokudb_support_xa
      • Added --information-schema-stats-expiry=0 to suite.opt to stabilize suite for tests that depend on accuracy of I_S metadata tables
      • Removed type_temporal_upgrade test similar to upstream 8.0 since conditions are no longer of concern or valid.
      • Remove all have_ctype*.inc as the were removed from mtr suite via commit https://github.com/mysql/mysql-server/commit/3c8ad04b893d7f75761c5336b942402d328912a3

        Smart Checklist




              george.lorch George Lorch
              george.lorch George Lorch
              0 Vote for this issue
              1 Start watching this issue



                  Time Tracking

                  Original Estimate - Not Specified
                  Not Specified
                  Remaining Estimate - 0 minutes
                  Time Spent - 4 days