The MYSQLX admin command dispatch was sending the raw alias query text
(e.g., 'LOAD MYSQLX USERS TO RUN') to dispatch_plugin_admin_command(),
but the plugin only registered the canonical forms (e.g., 'LOAD MYSQLX
USERS TO RUNTIME'). This caused all alias variants to fail with 'MYSQLX
plugin is not loaded' even when the plugin was loaded and the canonical
command worked.
Add resolve_admin_alias_to_canonical() helper that matches an alias
against a vector and returns the specified canonical command string.
Update the MYSQLX dispatch block to resolve each alias to its canonical
form before dispatching to the plugin manager.
Tested all 20 variants (8 command groups x 2-4 aliases each):
- LOAD/SAVE MYSQLX USERS/ROUTES/BACKEND_ENDPOINTS/VARIABLES
- TO RUNTIME, FROM MEMORY, TO RUN, FROM MEM, TO MEMORY, FROM RUNTIME,
TO MEM, FROM RUN aliases all work correctly.
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(LOAD_MYSQLX_USERS_FROM_MEMORY,"LOAD MYSQLX USERS TO RUNTIME",query_no_space,query_no_space_length);
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(SAVE_MYSQLX_USERS_TO_MEMORY,"SAVE MYSQLX USERS TO MEMORY",query_no_space,query_no_space_length);
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(LOAD_MYSQLX_ROUTES_FROM_MEMORY,"LOAD MYSQLX ROUTES TO RUNTIME",query_no_space,query_no_space_length);
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(SAVE_MYSQLX_ROUTES_TO_MEMORY,"SAVE MYSQLX ROUTES TO MEMORY",query_no_space,query_no_space_length);
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(LOAD_MYSQLX_BACKEND_ENDPOINTS_FROM_MEMORY,"LOAD MYSQLX BACKEND ENDPOINTS TO RUNTIME",query_no_space,query_no_space_length);
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(SAVE_MYSQLX_BACKEND_ENDPOINTS_TO_MEMORY,"SAVE MYSQLX BACKEND ENDPOINTS TO MEMORY",query_no_space,query_no_space_length);
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(LOAD_MYSQLX_VARIABLES_FROM_MEMORY,"LOAD MYSQLX VARIABLES TO RUNTIME",query_no_space,query_no_space_length);
if(!mysqlx_canonical)mysqlx_canonical=resolve_admin_alias_to_canonical(SAVE_MYSQLX_VARIABLES_TO_MEMORY,"SAVE MYSQLX VARIABLES TO MEMORY",query_no_space,query_no_space_length);