mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-28344:sys.ps_setup_save and dependent procedures fail with ER_ILLEGAL_HA_CREATE_OPTION
- The problem: ============== - Commitf7216fa63d
created the check function for default temporary storage engine and in case the SE doesn't support temporary tables the error `ER_ILLEGAL_HA_CREATE_OPTION` is raised. Before that commit in such cases temporary tables were created by silently substituting default SE (RocksDB, Connect, PerfSchema) with MyISAM. - The test `pr_diagnostics.test` was modified in that commit with raising the error, since I didn't check the root cause of test itself. - The solution: =============== - This commit update the root case: procedure `ps_setup_save()` that uses temporary tables created from performance schema tables definition using `LIKE`, what is not supported. The suggested fix is to use InnoDB table by using `AS SELECT`. - Note that test `pr_diagnostics` will raise this error for `medium/full` third argument, but not for `current` value of third argument. - Additionally this patch updates the test case of commitf7216fa
, by adding missing relation between temporary tables and Performance schema in `perfschema.misc` test. - Reviewed by: <wlad@mariadb.com>
This commit is contained in:
@ -174,3 +174,16 @@ select object_type, object_schema, object_name
|
||||
from performance_schema.objects_summary_global_by_type
|
||||
where object_schema="test";
|
||||
object_type object_schema object_name
|
||||
#
|
||||
# MDEV-28344: sys.ps_setup_save and dependent procedures fail
|
||||
# with ER_ILLEGAL_HA_CREATE_OPTION
|
||||
#
|
||||
CREATE TEMPORARY TABLE t1 (t int) ENGINE = PERFORMANCE_SCHEMA;
|
||||
ERROR HY000: Table storage engine 'PERFORMANCE_SCHEMA' does not support the create option 'TEMPORARY'
|
||||
CREATE TEMPORARY TABLE t1 LIKE performance_schema.setup_actors;
|
||||
ERROR HY000: Table storage engine 'PERFORMANCE_SCHEMA' does not support the create option 'TEMPORARY'
|
||||
SET @default_storage_engine_old = @@default_storage_engine;
|
||||
SET default_storage_engine = performance_schema;
|
||||
CREATE TEMPORARY TABLE t1 (t int);
|
||||
ERROR HY000: Table storage engine 'PERFORMANCE_SCHEMA' does not support the create option 'TEMPORARY'
|
||||
SET @@default_storage_engine = @default_storage_engine_old;
|
||||
|
Reference in New Issue
Block a user