Mark CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE, CREATE TABLESPACE, & ALTER TABLESPACE RENAME transactions RW. When InnoDB is not the DDSE, the InnoDB transactions for these commands were not marked RW, consequently InnoDB prepare was skipped for them, breaking crash recovery for these commands. Add tests.
Fix GTID persistence in InnoDB in multiple-engine transactions if binlog is disabled. This requires checking for this condition and starting the internal InnoDB transaction in innobase_xa_prepare, similar to existing code in innobase_commit. Add tests.
Fix error handling for a CREATE TABLESPACE failure. Register the InnoDB transaction in innodb_create_tablespace with the server 2PC, add a regression testcase based on innodb.create_tablespace_debug.
Fix the check in innobase_commit that tried to start any non-prepared InnoDB transactions in case GTID needed to be persisted. The previous checks used trx_state_eq, which is not suitable for negative checks due to internal asserts. This fixes several test failures in existing tests.
Add a comment why srv_do_purge needs to call trx_purge_truncate_undo_spaces if InnoDB is not the DDSE.
After crash recovery runs, if the DDSE is not InnoDB, reset dictionary tables and tablespaces in InnoDB too. This fixes the issue where the crash recovery changes the data dictionary, but InnoDB has the pre-recovery view.
Adapt innodb_undo.undo_tablespace_encrypt to work with either DDSE, as needed by rocksdb_dd_innodb.undo_tablespace_encrypt.
Run the InnoDB regression tests in rocksdb_dd_innodb suite with MyRocks DDSE, as originally intended.